01 03 - introduction to android
DESCRIPTION
introduction to androidTRANSCRIPT
Introduction Android Platform
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
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
@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.
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.
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 -
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
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
Open Handset Alliance
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 released2008 Jan 3: Android Developer Challenge I starts accepting submissions2008 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
@2011 Mihail L. Sichitiu11
Phones
HTC G1,
Droid,
TattooMotorola Droid (X)
Suno S880 Sony Ericsson
Tablets
Velocity Micro Cruz Gome FlyTouch Acer beTouch
Dawa D7Toshiba Android
SmartBook
Cisco Android Tablet
Android Versions
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
Android 1.1 Bender Android 1.5 Cupcake
Android 1.6 DonutAndroid 2.0 ve 2.1
Eclair
Android 2.2 FroyoAndroid 2.3 Gingerbread
Android 3.0 Honeycomb
Android 4.0 Ice Cream Sandwich
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
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
Android Architecture
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.
• Includes a set of C/C++ libraries.
• Interface through Java.
• Surface manager – Handling UI
Windows.
• 2D and 3D graphics.
• Media codecs, SQLite, Browser engine.
• 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
5
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
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.
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
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, called apk file.
v dx: java byte code to Dalvik executable translator
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
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
There is a common file structure for applications
code
images
files
UI layouts
constants
Autogenerate
d resource
list
Building blocks
Questions?