Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 42

 What is Android?

• Android is a mobile operating system that is based on a modified version of


Linux with a Java programming interface.

• It was originally developed by a start-up of the same name, Android, Inc. In


2005, as part of its strategy to enter the mobile space, Google purchased Android
and took over its development work.

• Android was developed by the Open Handset Alliance (OHA), which is led by
Google. The Open Handset Alliance (OHA) is consortium of multiple companies
like Samsung, Sony, Intel and many more to provide a service and deploy
handsets using android platform.
• Android gives a chance to reuse the application components and the replacement
of native applications
• The most distinguished feature of Android is that it gives equal opportunities to
native apps and third party apps to use its resources
• Android platform can be broken down into five sections: Applications ,
Application framework, Middleware libraries ,Operating system ,SDK and developer
tools.
• Several different types of applications are available on most Android devices.
• Core open source applications are included as part of Android itself, such as the
Browser, Camera, Gallery, Music, Phone and more. These are typically included with
every Android device.
• There are also non-open source Google apps that are included with most official
builds, including Market(Google Playstore), Gmail, Maps, YouTube and more.
• Third-party applications are available in the Android Market, which can be either
open source or proprietary.
 Android versions:

• The version history of the Android mobile operating system began with public
release of the Android betaon November 5,2007.The first commercial version ,
Android 1.0 was released on September 23,2008.

• The code names of android are Cupcake, Donut, Eclair, Froyo, Gingerbread,
Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat, Lolipop,
Marshmallow,Nougat,Oreo,Pie and Android 10. Let's understand the android
history in a sequence.
• Android Version 1.0 to 1.1: No codename
• Android officially publish its Android version 1.0 in September 2008. It is the initial
version of Android operating system. It supports Web browser to show HTML and
XHTML web pages, camera, access web email server (POP3, IMAP4, and SMTP).
This version contains Google Calendar, Google Maps, Google Sync, Google Search,
Google Talk, Instant messaging, Media player, Notifications appear in the status bar,
wallpaper, YouTube video player, Alarm Clock, Calculator, Dialer, Pictures (Gallery),
Wi-Fi and Bluetooth support.

• Android version 1.5: Cupcake


• On April 27, 2009, the Android updated to 1.5 with the codename of the dessert item
(Cupcake). It has Linux kernel 2.6.27. It supports third-party virtual keyboard, Video
recording and playback in MPEG-4, Copy and paste feature, Animated screen
translations, auto-rotation option, ability to upload a video to YouTube, upload photos
to Picasa, check phone usage history.
• Android version 1.6: Donut
• On September 15, 2009, Android 1.6 was released with the name Donut. It contains numerous new
features such as voice and text entry search, bookmark history, contacts, web, "speak" a string of text,
faster camera access, user can select multiple photos for deletion, support text-to-speech engine, WVGA
screen resolutions.

• Android version 2.0 to 2.1: Eclair


• On October 26, 2009, Android 2.0 was released, whose codename was Eclair. It was based on Linux kernel
2.6.29. It contains the several new features as expanded account sync, Microsoft Exchange email support,
Bluetooth 2.1, ability to tap a Contact photo and select to call, SMS, ability to search all saved SMS, MMS
messages, delete the oldest message automatically when the defined limit is reached, Minor API, bug fixes.

• Android version 2.2 to 2.2.3: Froyo


• On May 20, 2010, Android 2.2 (Froyo) was released based on Linux kernel 2.6.32. It contains several
features as speed, memory, performance optimization. JIT compilation, Integration of Chrome's V8,
JavaScript engine into the Browser application, support Android Cloud to Device Messaging service,
Adobe Flash support, security updates, and performance improvement.
• Android version 2.3 to 2.3.7: Gingerbread
• On December 6, 2010, the Android 2.3 (Gingerbread) was released based on Linux kernel 2.6.35. It
includes the following changes: support for extra-large screen size and resolutions, updated user interface
design with increased simplicity and speed, enhanced copy/paste functionality, select a word by press-
holding, support Near Field Communication (NFC), headphone virtualization, new Download Manager.
• It has improved bug fixes for Nexus S, voice or video chat using Google Talk, network performance for
Nexus S 4G, Gmail application, battery efficiency, fixed a voice search bug, Google Wallet support for
Nexus S 4G.

• Android version 3.0 to 3.2.6: Honeycomb


• On February 22, 2011, Android 3.0 (Honeycomb) was launched for the first tablet for Android-based on
Linux kernel 2.6.36. It contains the features like "holographic" user interface for tablet, added system Bar,
simplified multitasking tapping Recent Application in system Bar, redesign the keyboard making fast
typing, quick access to camera exposure, hardware acceleration, support for multi-core processor, UI
refinements, connectivity for USB accessories, support for joysticks and gamepads, high-performance Wi-
Fi lock, improved hardware support, Google Books, fixed data connectivity issues when coming out of
Airplane mode.
• Android version 4.0 to 4.0.4: Ice Cream Sandwich
• On October 19, 2011, Android 4.0.1 (Ice Cream Sandwich) was launched, which was based on Linux kernel
3.0.1. It was the last version of officially support Adobe System Flash player. It introduces the numerous new
features: refinements to "Holo" interface with new Roboto font family, separation of widgets in a new tab,
integrated screenshot capture, improved error correction on the keyboard, improved copy and paste
functionality, build-in photo editor, fixed minor bugs, improvement to graphics, spell-checking, better camera
performance.
• Android version 4.1 to 4.3.1: Jelly Bean
• On June 27, 2012, Google announced Android 4.1(Jelly Bean) in the Google I/O conference. It is based on
Linux kernel 3.0.31. It updates to following features: smoother user interface, enhance accessibility,
expandable notification, fixed bug on Nexus 7, one-finger gestures to expand/collapse notifications, lock
screen improvement, multiple user accounts (tablets only), new clock application, Bluetooth low energy
support, volume for incoming call, 4K resolution support, native emoji support, bug fixes for the Nexus 7
LTE.
• Android version 4.4 to 4.4.4: KitKat
• On September 3, 2013, Google announced Android 4.4 (KitKat). Initially, its code name was "Key Lime
Pie". Google started on Google's Nexus 5 on October 31, 2013. The minimum required amount of RAM
should available to Android is 340 MB. The other devices with less than 512 MB of RAM must report
themselves as "low RAM" devices. It includes several new features as clock no longer display bold hours,
wireless printing capability, WebViews are based on Chromium engine, sensor batching, built-in screen
recording feature, better application compatibility, camera application loads Google+ Photo instead of
• Android version 5.0 to 5.1.1: Lollipop
• Android 5.0 "Lollipop" was initially named "Android L" on June 25, 2014. It was officially introduced on
November 12, 2014. Lollipop provides several features like redesigned user interface, support for 64-bit
CPUs, support for print previews, material design, Project Volta for battery life improvement, multiple user
accounts, audio input, and output through USB devices, join Wi-Fi networks, support for multiple SIM
cards, device protection, high-definition voice calls, native Wi-Fi calling support.
• Android version 6.0 - 6.0.1: Marshmallow
• Android 6.0 "Marshmallow" was disclosed under the codename "Android M" on May 28, 2015, for Nexus
5 and Nexus 6 phones, Nexus 9 tablet.
• On October 5, 2015, Android lunches "Marshmallow" for all android devices. It contains the various new
features as App Standby feature, introduce the Doze mode to save battery life, native fingerprint reader
support, run-time permission requests, USB-C support, Unicode 7.0 & 8.0 emoji support.
• Android version 7.0 to 7.1.2: Nougat
• Android 7.0 "Nougat" was the major release for the Android operating system. Its initial codename was
"Android N". It was first released as a developer preview on March 9, 2016, with factory images for the
Nexus device.
• On August 22, 2016, the final preview built was released with following features: file-based encryption,
zoom in the screen, multi-window support, new Data Saver mode, JIT compiler makes 75 percent faster app
installation, picture-in-picture support, support manager APIs, circular app icons support, send GIFs directly
from the default keyboard, battery usage alerts.
• Android version 8.0 to 8.1: Oreo
• Android 8.0 "Oreo" was the 8th major release of the Android operating system. It was first released for
developer preview on March 21, 2017. The final developer preview was released on July 24, 2017.

• On August 21, 2017, its stable version was released with several features: picture-in-picture support, support
for Unicode 10.0 emoji (5.0), restructured settings, adoptive icons, notification channels, notification dots, 2
times faster boot time, Google Play Protect, Integrated printing support, Neural network API, shared memory
API, Android Oreo Go Edition, autofill framework, automatic light, and dark themes.

• Android version 9.0: Pie


• Android 9.0 "Pie" was the ninth major version of the Android operating system. It was first announced and
preview launched by Google on March 7, 2018. It was officially released on August 6, 2018. It has the
following features: the clock has moved to the left of the notification bar, the "screenshot" button has been
added, battery percentage always shown on display.
• Android version 10:
• Android 10 is the tenth extensive version of the Android operating system. Android 10 has developed under
the codename "Android Q". It was initially announced by Google on March 13, 2019 and its first beta
version was released on same day and its second beta was released on April 3, 2019.

• The stable version of Android 10 was released on September 3, 2019. It contains features like new
permissions to access location in the background, floating setting panel, support for an AV1 video codec,
support for biometric authentication, support the WPA3 Wi-Fi security.

• Android 11
• Android 11 operating system is the eleventh big release of Android. It is the 18th version of Android
mobile OS, which was released on 8 September 2020. The alphabetic naming system of Android, based on
deserts, was stopped since Android 10. So therefore, this operating system has branded with "Android 11".
 Open Handset Alliance (OHA):
• In 2005,Google acquired Android Inc.,and took over its development work to enter
into the mobile space. Since then it is Led by Google.
• In November 2007 Google formed OPEN HANDSET ALLIANCE(OHA) in order to
develop an open source software platform for use in mobile devices. However, several
major wireless companies and manufacturers are absent from the coalition, including
Nokia, Symbian, Apple, RIM, Microsoft, Verizon and Cingular.
• The OHA was established on November 5, 2007, led by Google with 34
members,including mobile handset makers, application developers, some
mobile network operators and chip makers.
• Now Open Handset Alliance (OHA) is alliance of 84 firms to develop
open standards for mobile devices.It include HTC, Sony, Dell, Intel, Motorola,
Qualcomm, Google, Samsung Electronics etc.
• Its goal is to develop open standards for mobile devices, promote innovation in
mobile phones and provide a better experience for consumers at a lower cost.
• This alliance shares a common goal of fostering innovation on mobile devices and
giving consumers a far better user experience.
• Android is open to everyone: developers, designers, and device makers. That
means more people can experiment, imagine, and create the world has never
seen.Android is open to everyone: developers, designers, and device makers. That
means more people can experiment, imagine, and create the world has never seen.
 Android ecosystem:
• Ecosystem in Market terminology refers to the inter-dependence between demand and
supply.

• To become an android developer it is important to understand the android ecosystem


and its interdependencies. Android is a mobile OS that is a modified version of the
Linux kernel also it is open-source software. Android is specifically designed for
touchscreen mobile phones or smartphones.

• Android ecosystem is all about the interdependence between android


developers(Google), Equipment Manufacturers, and users, as this is an ecosystem one
cannot exist without the other. It is created around the google-play-mobile application
market place including Orchestrate (Google) customers and applications.
• Important Components of the Android Ecosystem
1. Google
2. User
3. Equipment makers
4. Developers
• Google:
• Google developed android and provided a platform for development. It collects user data
such as search history and contacts from the google play services to improve app
services that encourage content providers and innovators to build and improve
applications. Google organizes information globally and makes it accessible.
• Users buy devices and applications.
• Android users has more space for customizing their device. And they perceived to have
greater level of support.
• Android users are also more likely to prefer saving their cost and love the openness of
the platform.
• Equipment makers
• Manufactures hardware equipment on which android os and android apps work.
• sell devices, sometimes bundled with applications.
• Android equipments are available in market in huge amount. Some of them are
mobiles,smart watches ,E-reader devices, Smart Tv etc.
• Developers buy devices, then make and sell applications.
• Android developer is specialist software developer in designing applications of
android.
• Some of following task are done by android developer:
 Design and build advanced application for the android platform.
 Collaborate and define with development teams for design and new features.
 Troubleshoot and fix bugs in new and existing applications.
 Evaluate and implement new development tools.
 Need of Android:
There are many reasons to choose android operating system like
1. Open source 2. Large developer and community reach 3. Increased marketing 4.
Inter App integration 5. Reduced cost of development 6. Higher success ratio 7. Rich
development environment 8. Variety 9. Widgets 10. Multi-tasking 11. Google
integration
1. Reduced cost of development: The development tools like Android studio, Android
SDK, JDK, and Eclipse IDE etc. are free to download for the android mobile
application development.
2. Open Source: The Android OS is an open-source platform based on the Linux kernel
and multiple open-source libraries. In this way developers are free to contribute or
extend the platform as necessary for building mobile apps which run on Android
devices.
3. Multi-Platform Support: In market, there are a wide range of hardware devices
powered by the Android OS, including many different phones and tablet. Even
development of android mobile apps can occur on Windows, Mac OS or Linux.
4. Multi-Carrier Support: World wide a large number of telecom carriers like Airtel,
Vodafone, Idea Cellular, AT and T Mobility, BSNL etc. are supporting Android powered
phones
.5. Open Distribution Model: Android Market place (Google Play store) has very few
restrictions on the content or functionality of an android app. So the developer can distribute
theirs app through Google Play store and as well other distribution channels like Amazon's
app store.

6. Multi-tasking: Multi-tasking is available on virtually all smartphone platforms but


hardly does any operating system do it better than android. Some manufacturers, e.g.
Samsung allows for multi-window tasking. This allows users to view multiple apps at the
same time. 7. Variety: Android has provided a medium that has allowed smartphone
manufacturers like Samsung, HTC, ZTE, Sony and Motorola to allow their imagination run
wild. On Android platform, there is something for everyone regardless of taste or budget.
Android offers flexibility that is not obtainable with other platforms.
. 8. Widgets: Widget is another thing that is working absolutely well on Android devices.
It has worked so excellently, other operating systems and mobile app development are
starting to adopt something similar, e.g. the Live Tile System in Windows phone. Widget
allows users to access all the necessary information they want right from the screen, at a
glance, without having to launch an app.
9. Google Integration: Android devices work seamlessly with all of Google's products;
Google Docs, Gmail, YouTube, Google Music, Google Maps, Google Chrome, Google+
etc. Google is regarded as the king of the web. This is a major attraction for most people,
as having an android device gives them instant access to all of this important software.
 Android features:
• Open source:Android is a powerful open source operating system which provides a lot
of great features like:

• It's an open source and we can customize the OS based on our requirements.

• Multi-tasking:It supports a multi-tasking, we can move from one task window to


another and multiple applications can run simultaneously.

• Reuse the application components:It will give a chance to reuse the application
components and the replacement of native applications.

• Multimedia:It has an extensive support for multimedia hardware control to perform


playback or recording using camera and microphone.
• By using WIFI technology we can pair with other devices using apps.
• It support a connectivity for GSM, CDMA, WIFI, NFC, Bluetooth, etc. for
telephony or data transfer.
• It will allow us to make or receive a calls/ SMS messages and we can send or
retrieve a data across mobile networks.
• Android have a multiple APIs to support a location-based services such as GPS.
• We can perform all data storage related activities by using light weight database
SQLite.
• It have a wide range of media supports like AVI, MKV, FLV, MPEG4 etc. to play
or record variety of audio/ video and having a different image formats like JPEG,
PNG, GIF, BMP, MP3, etc
• It has an integrated open source webkit layout based web browser to support HTML5,
CSS3.
• Beautiful Ul:
Android OS basic screen provides a beautiful and intuitive user interface.
• Multi-touch:
Android has native support for multi-touch
• Wi-Fi Direct:
A technology that lets apps discover and pair directly. over a high-bandwidth peer-to-peer
connection.
• Alternate Keyboards:
Android supports multiple keyboards and makes them easy to install; the SwiftKey, Skype and
8 pen apps all offer ways to quickly change up your keyboard style
• Custom Home Screens:
While it's possible to hack certain phones to customize the home screen, Android comes
with this capability from the get-go. Download a third-party launcher like Nova, Apex or
Slide and you can add gestures, new shortcuts, or even performance enhancements for
older-model devices.
• We can access the hardware components like Camera, GPS and Accelerometer.
• It has a support for 2D/3D Graphics.
 Tools and software required for Developing an Android
Application:
• Generally to build an application for Android we should have Java Development
kit(JDK),Android SDK , and a development environment.
• Android application development can be performed by either of the following
operating systems:
1.Microsoft Windows XP or later version
2. Mac OS X 10.5.8 or later version with Intel chip
3. Linux including GNU C Library 2.7 or later
• all the required tools to develop Android applications are freely available and can
be downloaded from the Web. Following is the list of software's you will need
before you start your Android application programming.
1. JDK
2. Android IDEs(Android studio /Eclipse IDE) 3.Android SDK
1. Set-up Java Development Kit (JDK)
You can download the latest version of Java JDK from Oracle's Java site- Java SE
Downloads. You will find instructions for instaling JDK in downloaded files, follow the
given instructions to Install and configure the setup. Finally set PATH and
JAVA_HOME environment variables to refer to the directory that contains java and
javac, typically java_install_dir/bin and Java install_dir respectively.
2. . IDE (Eclipse or Android Studio) : Although the SDK can be used to write Android
programs in the command prompt, the most common method is by using an Integrated
Development Environment (IDE). Eclipse is quite reputed and trusted IDE. And a lot
of people use it for Android development too. But now a days Android Studio is
preferable, especially for a beginner. Because i) Android Studio is a Google product -
these are the same guys who develop Android.
ii) Android Studio uses Grade Build system. Which is quite faster than Eclipse's
Apache Ant
iii) Android Studio's Autocomplete feature quite better than that of Eclipse
iv) Designing UI has always been complex but Android Studio has completely
changed this.
v) The new interface design in Android Studio is faster, responds to changes more
rapidly and has more customization options than Eclipse
3. Android SDK :
The Android SDK (software development kit) is a set of development tools used to
develop applications for Android platform. The Android SDK includes the following:
1.Required libraries 2.Debugger 3.An emulator 4.Relevant documentation for the
Android Application Program Interfaces (APIs) source code .Tutorials for the
Android OS 5.Sample source code 6.Tutorials for the Android OS
 Android Architecture:
• Android operating system is a stack of software components which is roughly
divided into five sections.

• 1) Linux kernel 2) Native libraries (middleware) 3) Android runtime 4)


Application framework 5)
Android Architecture:
• 1.Linux kernel

• It is the core of android OS architecture that exists at the root of android

architecture. Linux kernel is responsible for device drivers, power management,

memory management, device management and resource access.

• Positioned at the bottom of the Android software stack, the Linux Kernel

provides a level of abstraction between the device hardware and the upper layers

of the Android software stack. It provides a network stack and device drivers for

hardware such as the device display, Wi-Fi and audio.


2. Native libraries:
On the top of Linux kernel, their are Native libraries such as Webkit, OpenGL, FreeType,
SQLite, Media, C runtime library (libc) etc. The WebKit library is responsible for browser
support, SQLite is for database, FreeType for font support, Media for playing. and recording
audio and video formats, SSL libraries responsible for Internet security etc.
• SQLite Library used for data storage and light in terms of mobile memory footprints and
task execution.
• WebKit Library mainly provides Web Browsing engine and a lot more related features.
• The surface manager library is responsible for rendering windows and drawing surfaces
of various apps on the screen.
• The media framework library provides media codecs for audio and video.
• The OpenGl (Open Graphics Library) and SGL (Scalable Graphics Library) are the
graphics libraries for 3D and 2D rendering, respectively.
• The FreeType Library is used for rendering fonts.
In addition to a set of standard Java development libraries (providing support for such general
purpose tasks as string handling, networking and file manipulation), the Android development
environment also includes the Android Libraries. These are a set of Java-based libraries that
are specific to Android development. Examples of libraries in this category include the
application framework libraries in addition to those that facilitate user interface building,
graphics drawing and database access.
A summary of some key core Android libraries available to the Android developer is as
follows:
android.app: Provides access to the application model and is the cornerstone of all
Android applications.
android.content: Facilitates content access, publishing and messaging between
applications and application components.
android.database: Used to access data published by content providers and includes
SQLite database management classes.
android.graphics: A low-level 2D graphics drawing API including colors, points, filters,
rectangles and canvases.
android.hardware: Presents an API providing access to hardware such as the accelerometer
and light sensor.
android.opengl: A Java interface for 3D graphics rendering API.
android.os: Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
android.media: Provides classes to enable playback of audio and video.
android.net: A set of APIs providing access to the network stack. Includes android.net.wifi,
which provides access to the device's wireless stack.
android.print: Includes a set of classes that enable content to be sent to configured printers
from within Android applications.
android.provider: A set of convenience classes that provide access to standard Android
content provider databases such as those maintained by the calendar and contact
applications.
android.text: Used to render and manipulate text on a device display.
android.view: The fundamental building blocks of application user interfaces.
android.widget: A rich collection of pre-built user interface components such as buttons,
labels, list views, layout managers, radio buttons etc.
android.webkit: A set of classes intended to allow web-browsing capabilities to be built into
applications.
3.Android Runtime:
• In android runtime, there are core libraries and' DVM (Dalvik Virtual Machine) which is
responsible to run android application. DVM is like JVM but it is optimized for mobile
devices. It consumes less memory and provides fast performance.
• application. DVM is like JVM but it is optimized for mobile devices. It consumes less
memory and provides fast performance. The Dalvik VM makes use of Linux core
features like memory management and multi-threading.
• Dalvik is a specialized virtual machine designed specifically for Android and optimized
for battery-powered mobile devices with limited memory and CPU.
• Android apps execute on Dalvik VM, a "clean-room" implementation of JVM .
• DVM is register-based VM, unlike Oracle's stack-based JVM.
4. Android framework: On the top of Native libraries and android runtime, there is android
framework. Android framework includes Android API's such as UI (User Interface), telephony,
resources, locations, Content Providers (data) and package managers. It provides a lot of classes
and interfaces for android application development.
The Android framework includes the following key services:
• Activity Manager: Manages the life cycle of an applications and maintains the back stack as
well so that the applications running on different processes has smooth navigations.
• Package Manager: Keeps track of which applications are installed in your device.
• Window Manager: Manages windows which are java programming abstractions on top of
lower level surfaces provided by surface manager.
• Telephony Managers: Manages the API which is used to build the phone applications.
• .Content Providers: Provide feature where one application can share the data with
another application, like phone number, address, etc.
• View Manager: Buttons, Edit text, all the building blocks of UI, event dispatching etc.
• Resource Manager: Provides access to strings, colour settings and user interface layouts.

• Notifications Manager: Allows applications to display alerts and notifications to the user.
• Telephony Manager: Provides information to the application about the telephony services
available.
• Location Manager: Provides access to the location services allowing an application to
receive updates about location changes
5. Applications:
• On the top of android framework, there are applications. All applications such as home,
contact, settings, games, browsers are using android framework that uses android runtime and
libraries.
• Android runtime and native libraries are using Linux kernel. Any applications that you write
are located at this layer.

You might also like