This document provides an overview of the Android platform, including:
- What Android is, its open source nature, and the players involved in its development like Google and the Open Handset Alliance.
- The different "flavors" or versions of the Android OS over time from 1.1 to 4.0 and beyond.
- How Android uses the Linux kernel and integrates key technologies like its Dalvik virtual machine, SQLite database, and support for media formats.
- The overall Android architecture with layers for the Linux kernel, libraries, application framework, and applications themselves which are written in Java.
- How the Android SDK helps developers build apps that get compiled to run on the Dalvik virtual
2. Agenda
What Is Android?
What's Special about Android OS
What are the different Flavors of Android OS
What is Meant by an Open Source and how Android fits in to this Part
Contrasting and comparing Open Source Vs Traditional Development
Players behind the development of Android OS(OHA Group)
Advantages of Android and How Android can benefit you
Different Operating Systems that Support Android Application Development
Android architecture
Android application model
3. What is open Source?
Industry
Software stack open-sourced under Apache 2.0 license
Source available after first handsets ship
Anyone will be able to build a system image
Developer
Don not need permission to ship an application
No hidden or privileged framework APIs
Can integrate, extend and replace existing components
Users
Users have control of their experience
They control what gets installed
They choose the defaults
4. @2011 Mihail L. Sichitiu4
What is Android?
An automaton that resembles a
human being
Android is a software stack for
mobile devices that includes an
operating system, middleware and
key applications.
5. Introduction to Android
Android is an open-source software platform
created by Google and the Open Handset Alliance.
It is primarily used to power mobile phones.
Powered by Linux operating system.
Fast application development in Java.
Open source under the Apache license
It has the capability to make inroads in many other
(non-phone) embedded application markets.
6. Why Android
“We created Android in response to our own
experiences launching mobile apps. We wanted
to make sure that there was no central point
of failure, so that no industry player can
restrict or control the innovations of any
other. That's why we created Android, and
made its source code open.”
- Google -
7. Android Open Source Project (AOSP)
The goal of the Android Open Source Project is to create a
successful real-world product that improves the mobile experience
for end users.
To get and compile Android source code:
http://source.android.com/source/initializing.html
8. Features
Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source Web Kit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on
the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and Wi-Fi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plug-in for the Eclipse IDE
10. History of Android
2001 search service for wireless device
2005
• –Acquire Android(Andy Rubin: Danger CEO, Development Sidekick of T-
Mobile)
• –Acquire Skia(2D Graphics for mobile device)
• –Acquire Reg Wireless (Browser and Email for mobile device)
• –Move Engineers from PlamSource(Dianne Hackborn, etc…)
2007 Nov 5: Android announced
2007 Nov 12: Android SDK released by OHA
2007 Dec 14: Bug-fix SDK released
2008 Jan 3: Android Developer Challenge I starts accepting
submissions
2008 Feb 13: m5-rc15 SDK released
2008 Apr 14: 1788 total submissions for Challenge I
2008 May 12: Top 50 Applications in Challenge I announced
2008 Nov: Android Phone(G1 Phone by HTC/T-mobile)
2008 Nov: Full Source Open
2009 Apr: HTC Magic
2009 July: HTC Hero, Samsung i7500, Android Netbook, Set-top……
2009 Aug: Android Developer Challenge II
11. @2011 Mihail L. Sichitiu11
Phones
HTC G1,
Droid,
Tattoo
Motorola Droid (X)
Suno S880 Sony Ericsson
14. Android Versions and releases
OS Ver Nickname API Level Date
1.1 __ 2 9th February 2009
1.5 Cupcake 3 30 April 2009
1.6 Donut 4 5 September 2009
2.1 Eclair 7 26 October 2009
2.2 Froyo 8 20 May 2010
2.3 Gingerbread 9 6th December 2010
3.0 Honeycomb 11 22nd February 2011
4.0x Icecream Sandwich 14 19th October 2011
4.1 Jelly Bean 16 July 9, 2012
20. The Linux Kernel in Android
• Android is based on the Linux kernel
• Android is not Linux
• No native windowing system
• Does not include full set of standard linux utilities
• Kernel source at http://git.android.com
21. Why Linux kernel for Android ?
Great memory and process management
Great permissions based security model
Proven driver model
Support for shared libraries
It’s already open source
23. Linux Kernel
• Android relies on Linux version 2.6 for core system
services such as device drivers, security, memory
management ,process management.
• The kernel also acts as an abstraction layer between the
hardware and the rest of the software stack.
24. • Includes a set of C/C++ libraries.
• Interface through Java.
• Surface manager – Handling UI
Windows.
• 2D and 3D graphics.
• Media codecs, SQLite, Browser engine.
25. • Dalvik VM (translator between the application side and
the operating system)
– Dex files (.dex)format
– Compact and efficient than class files
– Limited memory and battery power
• Core Libraries
– Java 5 Std edition
– Collections, I/O etc…
2
26. Application Framework
Framework elements are: Intents , Content Providers ,
Views and managers
This layer has been designed to facilitate the reuse of
components in android
Developers can build their applications to execute on
android kernel and inter-operate among themselves and
with existing applications
27. Applications
• Android will ship with a set of core applications including an
a)Email client,
b)SMS program,
c)Calendar,
d)Contacts & others….
• All the applications are written using the Java programming
language.
28. Write app in Java
Compiled in Java
Transformed to Dalvik byte code
Linux OS
Loaded into Dalvik VM
Android applications are compiled to Dalvik
byte code
29. Android SDK
v ADT: Android Development Tool, an Eclipe plugin
v Two debuggers
§ adb: Android Debug Bridge
§ ddms: Dalvik Debug Monitor Server
v aapk: Android Application package tool
§ All resources are bundled into an archive, calledapk file.
v dx: java byte code to Dalvik executable translator
30. Android applications have common structure
30
Views such as
lists, grids, text
boxes, buttons,
and even an
embeddable web
browser
Content
Providers that
enable
applications to
access data from
other applications
(such as
Contacts), or to
share their own
data
A Resource Manager,
providing access to
non-code resources
such as localized
strings, graphics, and
layout files
A Notification
Manager that enables
all apps to display
custom alerts in the
status bar
An Activity Manager
that manages the life
cycle of applications and
provides a common
navigation backstack
31. Android applications have common structure
Broadcast receivers
can trigger intents
that start an
application
Data storage
provide data for your
apps, and can be
shared between
apps – database,
file, and shared
preferences (hash
map) used by group
of applications
Services run in the
background and
have no UI for the
user – they will
update data, and
trigger events
Intents specify what
specific action should
be performed
Activity is the
presentation layer of
your app: there will be
one per screen, and the
Views provide the UI to
the activity
32. There is a common file structure for
applications
code
images
files
UI layouts
constants
Autogenerate
d resource
list