Android is an open-source, Linux-based operating system designed primarily for touchscreen mobile devices. It is developed by Google and the Open Handset Alliance. The Android code is released under the Apache license as the Android Open Source Project. Key aspects of the Android architecture include the Linux kernel, native libraries, Dalvik virtual machine, application framework, and applications. Applications are written in Java and use Android components like activities, services, content providers, and broadcast receivers to perform functions. The Dalvik VM executes applications in a sandbox for security.
2. • A robust, free, open-source operating
system for mobile devices.
• Linux-based operating system designed
WHAT IS primarily for touchscreen mobile
ANDROID OS? devices such as smartphones and
tablets computers, developed by
Google in conjunction with Open
Handset Alliance.
• Google releases the Android code as
open source under the Apache license as
Android Open Source Project (AOSP),
led by a team at Google led by Andy
Rubin.
• open customizable nature.
• Android applications are written in java
and run in virtual machines. For this
purpose Android features the Dalvik
virtual machine which executes its own
byte code.
3. INTERFACE & • Interface
VERSION • Version History
HISTORY
Version Release date Features
4.1.x Jelly Bean July 9, 2012 Audio chaining, Enhanced accessibility, Expandable notifications, Improved voice
search, Google Wallet, Multichannel audio, USB audio
4.0.x Ice Cream October 19, 2011 Face Unlock, Improved camera app with zero shutter lag, Built-in photo editor, Android
Sandwich Beam, Stability improvements
3.x.x Honeycomb February 22, 2011 UI refinements, Connectivity for USB accessories, Ability to encrypt all user data
2.3.x Gingerbread December 6, 2010 UI updates, Improved battery efficiency, Support for NFC, Native support for SIP VoIP
internet telephony
2.2 Froyo May 20, 2010 Performance optimizations, just in time compiler, tethering
and Wi-Fi hotspot capability, Adobe Flash support, enhanced Microsoft Exchange
support, OpenGL ES 2.0 support
2.0, 2.1 Eclair October 26, 2009 Major UI update, Bluetooth 2.1 (new OPP and PBAP profiles), media framework
improvements, Microsoft Exchange support
1.6 Donut September 15, 2009 Gesture support, support for higher screen resolutions (WVGA), text-to-speech engine,
Virtual Private Network
1.5 Cupcake April 30, 2009 UI updates, on-screen keypad, video recording and playback, Bluetooth, accelerometer
based application rotation
1.1 Initial Release February 2009 Initial release
4. DISTRIBUTION Distribution
OF ANDROID Version Release date API level (October 2,
2012)
VERSIONS
4.1.x, 4.2 Jelly Bean July 9, 2012 16 1.8%
4.0.x Ice Cream October 19, 14-15 23.7%
Sandwich 2011
3.x.x Honeycomb February 22, 11-13 1.9%
2011
2.3.x Gingerbread December 6, 9-10 55.8%
2010
2.2 Froyo May 20, 2010 8 12.9%
2.0, 2.1 Eclair October 26, 7 3.4%
2009
1.6 Donut September 15, 4 0.4%
2009
1.5 Cupcake April 30, 2009 3 0.1%
5. SECURITY & • Applications run in a sandbox
PRIVACY • Permission system for applications for
installation
• Security software apps
8. NATIVE
LIBRARIES • Includes
– Surface Manager
– Media framework
– SQLite
– Webkit
– OpenGL
– Free Type
– SGL
– SSL
– libc
9. ANDROID
RUNTIME • Dalvik Virtual Machine
– A type of JVM used in android
devices to run apps
– Register based VM
– Dalvik Executable (.dex)
– DX tool
• Core Java libraries
– These are different from Java SE and
Java ME libraries. However, these
libraries provide most of the
functionalities defined in the Java SE
libraries.
11. APPLICATIONS • Applications are the top layer in the
Android architecture and this is where
our applications are going to fit.
• Several standard applications come pre-
installed with every device, such as:
» SMS client app
» Dialer
» Web browser
» Contact manager
» Calendar
» Maps
13. • Activities
– Activity is an individual user interface screen where
view can be placed.
– The widget in an activity can be created by either pure
java code or by adding XML code.
– Activity class.
– Life cycle
– Active/Running State
– Paused State
– Stopped State
– Destroyed/Dead State
14. • Services
– Android application component that runs in
background and has no visual UI.
– can be started by another Android application
component such as an activity or other services .
– services are less likely to be destroyed by Android
system to free resources, than Activities.
– Service class.
– Types
– Unbound services
– Bound services
15. • Content Providers
– provide a flexible way to make data available across
applications.
– through content providers other applications are able to
query access or even modify the data you’ve created, as
long as your content provider allows it.
– ContentProvider class.
• Broadcast Receivers
– used to receive messages that are broadcasted by the
Android system or other Android applications.
– Examples
» Warning that the battery is getting low
» Screen turned off
» Change of time zone
» The camera has been used to take a picture
16. • Intents
– component activating mechanism in Android.
– constitutes the core message system in Android and
defines a message to activate a particular component.
– Types:
• Explicit Intents
• Implicit Intents
17. • Design Requirements
• Design Overview
– Every Android application runs in its
DALVIK VM own process, with its own instance of
the Dalvik virtual machine. Dalvik has
been written so that a device can run
multiple VMs efficiently. The Dalvik VM
executes files in the Dalvik Executable
(.dex) format which is optimized for
minimal memory footprint. The VM is
register-based, and runs classes
compiled by a Java language compiler
that have been transformed into the
.dex format by the included "dx" tool.
– The Dalvik VM relies on the Linux kernel
for underlying functionality such as
threading and low-level memory
management.
• .dex file format
• Zygote
• Register-based Architecture
• Security