Module 1
Introduction to Android OS: Android Description – Open Handset Alliance – Android.
Ecosystem – Android versions – Android Activity – Features of Android – Android Architecture
Stack Linux Kernel. Configuration of Android Environment: Operating System – Java JDK Android
SDK – Android Development Tools (ADT) – Android Virtual Devices (AVDs) – Emulators Dalvik
Virtual Machine – Differences between JVM and DVM – Steps to Install and Configure Eclipse
and SDK.
What is Android?
Android is a Stack of software for mobile devices that are an Operating System, Middleware
and key Applications
Android is a Linux-based operating system which is designed for touch screen mobile devices
like smart phones and tablet computers.
It is an open source technology that allows the software to be freely modified and distributed
by device manufacturers, wireless carriers and developers.
Android was unveiled during 2007 along with the founding of the Open Handset Alliance.
What is Open Handset Alliance?
• Open handset alliance OHA was formed in November 2007. The OHA is the group that is
in charge of the Android smartphones operating system.
• It was created by Google. The open handset alliance is a business alliance that consists
of 47 companies for developing open standard platform for mobile devices.
• The members of OHA include handset manufactures, chip makers, commercialization
companies, software companies, and mobile operators
Android Ecosystem
The stakeholders are the consumers that own Android devices. But there are others as well:
Google: it develops android
OEM(Original Equipment Manufacturers): they manufacture the hardware and as well
the custom application components.
Application Development Companies: They are the major contributors to the
ecosystem and employ Android developers and also contract out the product
development to services companies
Freelance Android developers: Developers have the skill set to contribute to the
ecosystem for android development, they are who create their own applications, and
publish them on Google playstore. Freelancers can also generate money by developing
applications for product companies.
Why Android?
Android versions
Features of Android
Android Architecture
The Android OS can be referred to as a software stack of different layers, where every layer is a
group of several programs components. It includes operating systems, middleware and
important applications. Every layer in the architecture provides different services.
Android has following layers
Applications
Application Framework
Libraries Android Runtime
Linux Kernel
1) Application
At this top layer, you will find applications that ship with the Android device (such as
Phone, Contacts, Browser, etc.), as well as applications that you download and install
from the Android Market. Any applications that you write are located at this layer.
2) Application Framework:
The Android application framework provides APIs for developers of the application
layer, which is actually an application framework. This layer contain following basic
components:
Activity Manager: This layer manages the lifecycle of application and provides a
common navigation backstack
Window Manager: As the name suggest it manages the window surface. Then it
organizes the screen layout and locates the drawing surface and also performs
other windows related jobs
View Manager: View the window
Content Manager: Enables application to access data from other applications or
to share their own data
Notification Manager: we get the notification from the system when the battery
is low. If the programmer wants he can also enable all applications to display
customer alerts in the status bar
Package Manager: It manages the packages of the applications.
Telephony Manager: handle the receiver call or voice calls.
Resource Manager: Provide access to the non-code resources ( Graphics,
localized strings and layout files)
Location Manager: provides access to the system location services
XMPP Service Manager: manages services like music application, browser,
ringtone etc.
3) Libraries
3rd layer of the android architecture Is the libraries layer. It is written in C and C++
libraries
Following are the major components of this layer:
Surface manager: Handles all the surfaces rendered by each component of the
frame
Open GL ES: For rendering 2D and 3D graphics on embedded and mobile system
SQLite database: It is a lightweight RDBMS
Media Framework: is a set of APIs for developers which enables them to create a
multimedia application on an android platform.
SGL: Scalable graphics libraries responsible for implementing low level graphics
by using JNI
Free type: Support the font quality, the image(bitmap images)
SSL: Secured socket layer, for establishing secure communication between an
app and a server, ensuring data privacy and integrity
Webkit: Provides browser support. It support browsers like Google Chromes,
Apple safari etc.
Lib C : C libraries. Provides C libraries headers
4) Android Runtime
Android Runtime consists of Dalvik Virtual Machine and Core Libraries.
DVM(Dalvik Virtual Machine) : Dalvik Virtual Machine (DVM) is the custom program
introduced for Android apps. It takes the Java code and creates an optimized version of
it in a file with .dex(extension) which is known as Dalvik executable. This format allows
the apps to run quickly with fewer resources, i.e. on mobile phones and low-memory,
slower devices.
Core Libraries: These are different from Java SE and Java ME libraries. But these libraries
provide most of the functionalities defined in the Java SE libraries
5) Linux Kernel
This is the kernel on which Android is based. This layer contains all the low level device
drivers for the various hardware components of an Android device.
Following are the drivers:
Display driver
Camera driver
Bluetooth driver
Binder driver(IPS)
USB driver
WiFi driver
Keypad driver
Audio driver
Power management driver
Configuration of Android Environment
1) Operating System
2) Java JDK
3) Android SDK
4) Android Development Tools (ADT)
5) Android Virtual Devices (AVDs)
6) Emulators
7) Dalvik Virtual Machine
8) Differences between JVM and DVM
Steps to Install and Configure Eclipse and SDK.
Download “Eclipse IDE for Java developers” from http://www.eclipse.org/downloads/
Once the Eclipse IDE is downloaded, unzip its content (the eclipse folder) into a folder,
say C:\Android\.
You can download the Android SDK from http://developer.android.com/sdk/index.html.
Once the SDK is downloaded, unzip its content (the android-sdk-windows folder) into
the C:\Android\ folder, or whatever name you have given to the folder you just created.
The Android Development Tools (ADT) plug-in for Eclipse is an extension to the Eclipse
IDE that supports the creation and debugging of Android applications. To install the ADT,
first launch Eclipse by double-clicking on the eclipse.exe file located in the eclipse folder.
When Eclipse is first started, you will be prompted for a folder to use as your workspace.
In Eclipse, a workspace is a folder where you store all your projects. Take the default
suggested and click OK.
Once Eclipse is up and running, select the Help ➪ Install New Software… menu item
After a while, you will see the Developer Tools item appear in the middle of the window.
Expand it, and it will reveal its content: Android DDMS, Android Development Tools, and
Android Hierarchy Viewer. Check all of them and click Next.
When you see the installation details, as shown in Figure, click Next.
You will be asked to review the licenses for the tools. Check the option to accept the
license agreements. Click Finish to continue.
Eclipse will now proceed to download the tools from the Internet and install them. This
will take some time, so be patient.
Once the ADT is installed, you will be prompted to restart Eclipse. After doing so, go to
Window ➪Preferences
In the Preferences window that appears, select Android. You will see an error message
saying that the SDK has not been set up. Click OK to dismiss it.
Enter the location of the Android SDK folder. In this example, it would be
C:\Android\android-sdk-windows. Click OK.