an introduction to android

49
An Introduction to Android Jason Chen Developer Advocate Google I/O 2008

Upload: googletectalks

Post on 12-May-2015

2.680 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: An Introduction To Android

An Introduction to Android

Jason ChenDeveloper Advocate

Google I/O 2008

Page 2: An Introduction To Android

•Background•What is Android?•Latest News

Page 3: An Introduction To Android
Page 4: An Introduction To Android

0

1,000,000,000

2,000,000,000

3,000,000,000

4,000,000,000

2000 2001 2002 2003 2004 2005 2006 2007

Internet and Mobile Phone Users, Worldwide

Internet users (PC-based)Mobile phone users

Source: International Telecommunication Union

Page 5: An Introduction To Android
Page 6: An Introduction To Android

Mobile Operators

Page 7: An Introduction To Android

Mobile Operators

Handset Manufacturers

Page 8: An Introduction To Android

Mobile OperatorsSoftware

Handset Manufacturers

Page 9: An Introduction To Android

Mobile Operators

Semiconductor

Software

Handset Manufacturers

Page 10: An Introduction To Android

Mobile Operators

SemiconductorCommercialization

Software

Handset Manufacturers

Page 11: An Introduction To Android

•Background•What is Android?•Latest News

Page 12: An Introduction To Android

Linux Kernel

DisplayDriver Camera Driver Bluetooth

DriverFlash Memory

DriverBinder (IPC)

Driver

Power ManagementUSB Driver Keypad Driver WiFi Driver Audio

Drivers

Page 13: An Introduction To Android

Linux Kernel

DisplayDriver Camera Driver Bluetooth

DriverFlash Memory

DriverBinder (IPC)

Driver

Power ManagementUSB Driver Keypad Driver WiFi Driver Audio

Drivers

Libraries

FreeType

SGL SSL

SQLite

WebKit

libc

Surface Manager

OpenGL | ES

MediaFramework

Page 14: An Introduction To Android

Android Runtime

Dalvik Virtual Machine

Core Libraries

Linux Kernel

DisplayDriver Camera Driver Bluetooth

DriverFlash Memory

DriverBinder (IPC)

Driver

Power ManagementUSB Driver Keypad Driver WiFi Driver Audio

Drivers

Libraries

FreeType

SGL SSL

SQLite

WebKit

libc

Surface Manager

OpenGL | ES

MediaFramework

Page 15: An Introduction To Android

Android Runtime

Dalvik Virtual Machine

Core Libraries

Application Framework

ViewSystem

Content Providers

Resource Manager GTalk ServiceLocation

Manager

Activity Manager

Package Manager

WindowManager

TelephonyManager

NotificationManager

Linux Kernel

DisplayDriver Camera Driver Bluetooth

DriverFlash Memory

DriverBinder (IPC)

Driver

Power ManagementUSB Driver Keypad Driver WiFi Driver Audio

Drivers

Libraries

FreeType

SGL SSL

SQLite

WebKit

libc

Surface Manager

OpenGL | ES

MediaFramework

Page 16: An Introduction To Android

Android Runtime

Dalvik Virtual Machine

Core Libraries

Application Framework

ViewSystem

Content Providers

Resource Manager GTalk ServiceLocation

Manager

Activity Manager

Package Manager

WindowManager

TelephonyManager

NotificationManager

Linux Kernel

DisplayDriver Camera Driver Bluetooth

DriverFlash Memory

DriverBinder (IPC)

Driver

Power ManagementUSB Driver Keypad Driver WiFi Driver Audio

Drivers

Libraries

FreeType

SGL SSL

SQLite

WebKit

libc

Surface Manager

OpenGL | ES

MediaFramework

Applications

Home PhoneContacts Browser ...

Page 17: An Introduction To Android

Application Building Blocks

Activity UI component typically corresponding to one screen.

IntentReceiver Set and respond to notifications or status changes. Can wake up your app.

Service Faceless task that runs in the background.

ContentProvider Enable applications to share data.

Page 18: An Introduction To Android

Developer Toolchain

Page 19: An Introduction To Android

Emulator

• QEMU-based ARM emulator runs same system image as a device

• Use same toolchain to work with devices or emulator

Page 20: An Introduction To Android

Eclipse PluginProject template

Page 21: An Introduction To Android

Debugging

Call stack

Breakpoints, single stepping

Examine variables

Page 22: An Introduction To Android

Photo by: http://flickr.com/photos/virtualsugar/316200555/

What does open mean?

Page 23: An Introduction To Android
Page 24: An Introduction To Android

Industry

Page 25: An Introduction To Android

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

Page 26: An Introduction To Android

Industry

Page 27: An Introduction To Android

Industry Users

Page 28: An Introduction To Android

•Users have control of their experience•They control what gets installed•They choose the defaults

Industry Users

Page 29: An Introduction To Android

Industry Users

Page 30: An Introduction To Android

Industry Users

Developers

Page 31: An Introduction To Android

•Don’t need permission to ship an application•No hidden or privileged framework APIs•Can integrate, extend, and replace existing components

Industry Users

Developers

Page 32: An Introduction To Android
Page 33: An Introduction To Android

Integrate

Page 34: An Introduction To Android

Integrate

Page 35: An Introduction To Android

Integrate

Page 36: An Introduction To Android

Integrate Extend

Page 37: An Introduction To Android

Integrate Extend

Page 38: An Introduction To Android

Replace

Page 39: An Introduction To Android

Replace

Page 40: An Introduction To Android

Replace

Page 41: An Introduction To Android

Replace

Page 42: An Introduction To Android

Replace

Page 43: An Introduction To Android
Page 44: An Introduction To Android

What about security?

Page 45: An Introduction To Android

What does this mean for developers?

Page 46: An Introduction To Android

•Background•What is Android?•Latest News

Page 47: An Introduction To Android

Latest News

• 5 Nov 2007: Android announced

• 12 Nov 2007: early look of the SDK released

• 14 Dec 2007: bug-fix SDK released

• 3 Jan 2008: Android Developer Challenge I starts accepting submissions

• 13 Feb 2008: m5-rc15 SDK released

• 14 Apr 2008: 1788 total submissions for Challenge I

• 12 May 2008: Top 50 Application in Challenge I announced

Page 48: An Introduction To Android

Android Developer Challenge

• Goal: help developers turn great ideas into great code

• Challenge I & II each have a $5MM USD purse

• Challenge II will begin after devices go on sale

Page 49: An Introduction To Android

Q & A