You are on page 1of 52

Android

An Open Platform for Mobile Devices

Outline

Introduction

What is Android? Android: How it came to be

Android Features

Android Architecture Anatomy of an Android Application Hello Android Life Cycle of an Android Application Future of Android
2

What is Android?

Android

Open, free software platform for mobile devices with a complete software stack

Operating system Middleware Key mobile applications

Based on Linux operating system

Made available as open source via the Apache v2 license

Industry can add proprietary functionality to their products without giving anything back to the platform Companies can remove functionality if they choose

Android: How it came to be

Android

The first complete, open and free mobile platform Release in November 2007

Initially rumored to be some kind of Gphone

An Open Handset Alliance Project

Open Handset Alliance


Android: How it came to be

Open Handset Alliance

Group of more that 30 technology and mobile companies developing Android Goal

Accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience

Open Handset Alliance


Android: How it came to be

Members of the Alliance


Software Companies Handset Manufacturers

Mobile Operators

Semiconductor Companies Commercialization Companies

Open
Android is...

Allows access to core mobile device functionality through standard API calls

Example

Application can call core functionality such as making calls, sending text messages, using camera... Developers can create richer and more cohesive experiences for users

Since it's open source, it can be liberally extended as new technologies emerge

Advantages of an Open Platform


Android is...Open

Consumers

Cheaper mobile devices More innovative mobile devices and services

Easier-to-use user interfaces


Rich portfolio of applications

Advantages of an Open Platform


Android is...Open

Mobile Operators

Lower overall cost of handsets They will have complete flexibility to customize and differentiate their product lines More rapid innovation in handsets and services

Advantages of an Open Platform


Android is...Open

Handset manufacturers

Lower software BOM (bill of material) costs Faster time-to-market for handset

Greater flexibility to customized and differentiate product offerings

10

Advantages of an Open Platform


Android is...Open

Semiconductor companies

As cellphone-on-a-chip becomes a reality

Semiconductor companies will need to access more sophisticated software that take advantage of the enhanced features (3D graphics, signal processor cores, dedicated blocks of multimedia acceleration etc)

An open platform will give support to these new peripherals in the platform and will allow semiconductor companies to give 3rd party developers access to these enhanced features in a timely manner

11

Advantages of an Open Platform


Android is...Open

Software companies

Allow simplified integration of software components into a complete mobile platform More income for them

Handset manufacturers will invest in high value and differentiated software components since there are lower acquisition costs in the mobile platform

12

Advantages of an Open Platform


Android is...Open

Developers

Able to innovate rapidly because they will have comprehensive API access to handset capabilities that are web-ready Increase productivity

Comprehensive and easy-to-use developer tools

Deeper understanding of the underlying platform will lead them to better optimize their applications

Distribution and commercialization of mobile applications will be less expensive and easier

13

All Applications are Equal


In Android...

Android does not differentiate between the phone's basic and third party applications

All applications have equal access to the phone's capabilities

Example:

The dialer and home screen can be replaced

14

Breaking down boundaries


Android is...

Information from the web can be combined with data on the phone

Example:

Contacts, calendar or geographic location

15

Fast and Easy Development


Android allows...

SDK (Software development kit) includes


True device emulator and advanced debugging tools Useful libraries and tools

Example

Obtain location of the device Allow devices to communicate with one another

16

No REAL Android Phones Yet


As of the time these slides are made: April 29, 2008

Android Emulator

Android HTC Prototype


http://www.google-phone.com/wp-content/uploads/2007/12/android_htc_prototype_live_image_1.jpg

Willcom Android demo reference board

http://www.google-phone.com/wp-content/uploads/2007/12/willcom_core_android_module_2.jpg

17

Android Features

Application framework

enable reuse and replacement of components

Dalvik virtual machine

optimized for mobile devices

Integrated browser

based on the open source WebKit engine

Optimized graphics

powered by a custom 2D graphics library 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
18

Android Features

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 WiFi (hardware dependent) Camera, GPS, compass, and accelerometer (hardware dependent)

19

Android Features

Rich development environment which includes


device emulator tools for debugging memory and performance profiling a plugin for the Eclipse IDE

20

Android Architecture

Major components of the Android OS


Ja va C/ C +

21

Linux Kernel
Android Architecture

Linux Kernel 2.6

Abstraction layer between the hardware and software stack


Why Linux?

Proven driver model and has existing drivers Has memory management, security management, networking, core operating system infrastructure, etc.

Robust and already has been proven over time


22

Libraries
Android Architecture

Written in C and C++


The core power of the Android platform

23

Libraries
Android Architecture

Responsible for composing different drawing surfaces (ex: diff. windows/applications/process all drawing at the same time) to the screen

Make up the core of the graphics library. OpenGL (3D graphics engine) SGL (2D graphics engine) Can combine 3D and 2D graphics in the same application

24

Libraries
Android Architecture

Provided by PacketVideo OpenCore


Support for: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

Bitmap and Vector font rendering

Secure Sockets Layer Protocol for transmitting private documents

25

Libraries
Android Architecture

A powerful lightweight relational database engine

An open source browser engine. Used as the core of the browser which is the same browser powering Safari.

26

Android Runtime
Android Architecture

Main Component: Dalvik Virtual Machine

Optimized for running in an embedded environment (limited memory, CPU,battery)


Runs .dex files (bytecodes)

.class .jar files

Converted at build time Optimized! More efficient!


27

Android Runtime
Android Architecture

Core Library

Contains all the collection classes, utilities, IO, etc.

28

Application Framework
Android Architecture

Toolkit that all applications (core, by Google, you:)...)

All written using the Java Programming Language

* XMPP: Extensible Messaging and Presence Protocol An open XML technology for real-time communication (instant messaging, shared editing, etc)

29

Application Framework
Android Architecture

Manages the lifecycle of applications and provides a common navigation backstack Keeps track what applications are installed in device Manages Windows Contains APIs used to build the phone application
30

Application Framework
Android Architecture

Allows applications to share data with other applications (ex: contact info is available to others) Used to store localized strings, bitmaps, layout file descriptions, etc. Contains all building blocks of the UI Provides support for location-based services*
* Support depends on the underlying device 31

Application Framework
Android Architecture

Handles notification of users about events that happen


Examples of notification forms: persistent icon in the status bar, vibrating, playing sound, etc.)

Allows applications to communicate between devices through GtalkService. GtalkService maintains a persistent socket connection, therefore the response time is faster than SMS.

32

Applications
Android Architecture

Core Applications

Email client
SMS program Calendar
All applications are written using the Java Programming Language

Maps
Browser Contacts

etc
33

Anatomy of an Android Application

Application Building Blocks


Activity Intent Receiver

Service
Content Provider

34

Activity
Anatomy of an Android Application

Activity
UI typically corresponding to one screen Move through screens by starting other activities Example
Email application has 3 major activity
List your mail Chosen individual mail message Compose screen

35

Intent Receiver
Anatomy of an Android Application

Intent Receiver
Responds to notifications or status changes Can wake up your process

Doesn't run unless triggered by an external event


Example
Only run an application when connected to the network

36

Service
Anatomy of an Android Application

Service
Faceless task that runs in the background Example
Music player
Keeps playing even though you are navigating to other parts

37

Content Provider
Anatomy of an Android Application

Content Provider
Enables applications to share data Example
Any application can access the contacts database

38

Hello Android
A Peek at an Android App

39

Hello Android
A Peek at an Android App

40

Hello Android
A Peek at an Android App

41

Hello Android
A Peek at an Android App

Application Lifecycle

Every application runs its own process

Benefits: security, protected memory, applications using CPU intensively won't block other activities

43

Application Lifecycle

Every application runs its own process

Benefits: security, protected memory, applications using CPU intensively won't block other activities

Processes are started and stopped as needed to run an application's components

44

Application Lifecycle

Every application runs its own process

Benefits: security, protected memory, applications using CPU intensively won't block other activities

Processes are started and stopped as needed to run an application's components Processes may be killed to reclaim resources
It's my problem to launch/ kill processes, manage resources, saving states, etc.

45

Interesting APIs

46

Will Android succeed?


Future of Android

http://venturebeat.com/2008/01/04/roundup-more-google-departures-the-future-of-android-and-more/

Charles Golvin While I believe the effort by the Open Handset Alliance will have a significant impact on the market, I think it will build slowly over time. Even if there is a tidal wave of new devices using the Android platform, they will still represent a relatively small portion of the overall market.
http://news.zdnet.co.uk/communications/0,1000000085,39290579,00.htm

Steve Balmer (CEO Microsoft) Google's efforts are still on paper right now it's hard to do a very clear comparison. In terms of openness and broad support, we've done very well with Windows mobile...etc. We'll have to see what Google does.
http://youtube.com/watch?v=zwIUEnXctuA

47

Will Android succeed?


Future of Android

Steve Balmer(Microsoft) & Nigel Clifford(Symbian) on Android http://youtube.com/watch?v=zwIUEnXctuA

Will Android succeed?


Future of Android

Cranky Geeks http://www.youtube.com/watch?v=SOgRMi4ad3c&NR=1

Will Android succeed?


Future of Android

I guess we'll just have to wait and see... :)

50

Vielen Dank fr die Aufmerksamkeit!

51

References

General Information

http://code.google.com/android/ http://www.openhandsetalliance.com/ http://www.intomobile.com/2007/08/27/google-gphone-confirmed-as-low-cost-sub-100-device.html http://www.webpronews.com/blogtalk/2006/12/18/apples-iphone-then-googles-gphone

http://www.xmpp.org/
http://www.youtube.com/ (Androidology series)

Images

http://www.phonemag.com/blog/wp-content/uploads/2008/02/android_feb08_sdk_one.jpg http://www.google-phone.com/wp-content/uploads/2007/12/android_htc_prototype_live_image_1.jpg http://www.google-phone.com/wp-content/uploads/2007/12/willcom_core_android_module_2.jpg http://www.openhandsetalliance.com/ http://code.google.com/android/

52