Android Introduction
Platform Overview
@2011 Mihail L. Sichitiu
What is Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
@2011 Mihail L. Sichitiu
OHA (Open Handset Alliance)
A
business alliance consisting of 47 companies to develop open standards for mobile devices
@2011 Mihail L. Sichitiu
Phones
HTC G1, Droid, Tattoo
Motorola Droid (X)
Suno S880
Samsung Galaxy
@2011 Mihail L. Sichitiu
Sony Ericsson
4
Tablets
Velocity Micro Cruz
Gome FlyTouch
Acer beTouch
Dawa D7
Toshiba Android SmartBook
@2011 Mihail L. Sichitiu
Cisco Android Tablet
5
MarketShare
Feb10 RIM Apple 42.1% 25.4% May10 41.7% 24.4% Apr11 29% 25%
Google
Microsoft Palm
9%
15.1% 5.4%
13%
13.2% 4.8%
33%
7.7% 2.9%
@2011 Mihail L. Sichitiu
Architecture
@2011 Mihail L. Sichitiu
Android S/W Stack - Application
Android provides a set of core applications:
Email Client SMS Program Calendar Maps Browser Contacts Etc
All applications are written using the Java language.
@2011 Mihail L. Sichitiu 8
Android S/W Stack App Framework
Enabling
and simplifying the reuse of components
Developers have full access to the same framework APIs used by the core applications. Users are allowed to replace components.
@2011 Mihail L. Sichitiu
Android S/W Stack App Framework (Cont)
Features
Feature View System Content Provider Resource Manager Notification Manager Activity Manager Role Used to build an application, including lists, grids, text boxes, buttons, and embedded web browser Enabling applications to access data from other applications or to share their own data Providing access to non-code resources (localized strings, graphics, and layout files) Enabling all applications to display customer alerts in the status bar Managing the lifecycle of applications and providing a common navigation backstack
@2011 Mihail L. Sichitiu
10
Android S/W Stack - Libraries
Including
a set of C/C++ libraries used by components of the Android system Exposed to developers through the Android application framework
@2011 Mihail L. Sichitiu
11
Android S/W Stack - Runtime
Core Libraries
Providing most of the functionality available in the core libraries of the Java language APIs
Data Structures Utilities File Access Network Access Graphics Etc
@2011 Mihail L. Sichitiu
12
Android S/W Stack Runtime (Cont)
Dalvik Virtual Machine
Providing environment on which every Android application runs
Each Android application runs in its own process, with its own instance of the Dalvik VM. Dalvik has been written such that a device can run multiple VMs efficiently.
Register-based virtual machine
@2011 Mihail L. Sichitiu
13
Android S/W Stack Runtime (Cont)
Dalvik Virtual Machine (Cont)
Executing the Dalvik Executable (.dex) format
.dex format is optimized for minimal memory footprint. Compilation
Relying on the Linux Kernel for:
Threading Low-level memory management
@2011 Mihail L. Sichitiu 14
Android S/W Stack Linux Kernel
Relying on Linux Kernel 2.6 for core system services
Memory and Process Management Network Stack Driver Model Security
Providing an abstraction layer between the H/W and the rest of the S/W stack
@2011 Mihail L. Sichitiu 15