Google Io Introduction To Android

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

description

Introduction to Android

Transcript of Google Io Introduction To Android

Page 1: Google Io Introduction To Android

An Introduction to Android

Jason ChenDeveloper Advocate

Google I/O 2008

Page 2: Google Io Introduction To Android

•Background•What is Android?•Latest News

Page 3: Google Io Introduction To Android
Page 4: Google Io 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: Google Io Introduction To Android
Page 6: Google Io Introduction To Android

Mobile Operators

Page 7: Google Io Introduction To Android

Mobile Operators

Handset Manufacturers

Page 8: Google Io Introduction To Android

Mobile OperatorsSoftware

Handset Manufacturers

Page 9: Google Io Introduction To Android

Mobile Operators

Semiconductor

Software

Handset Manufacturers

Page 10: Google Io Introduction To Android

Mobile Operators

SemiconductorCommercialization

Software

Handset Manufacturers

Page 11: Google Io Introduction To Android

•Background•What is Android?•Latest News

Page 12: Google Io 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: Google Io 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: Google Io 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: Google Io 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: Google Io 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: Google Io 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: Google Io Introduction To Android

Developer Toolchain

Page 19: Google Io 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: Google Io Introduction To Android

Eclipse PluginProject template

Page 21: Google Io Introduction To Android

Debugging

Call stack

Breakpoints, single stepping

Examine variables

Page 22: Google Io Introduction To Android

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

What does open mean?

Page 23: Google Io Introduction To Android
Page 24: Google Io Introduction To Android

Industry

Page 25: Google Io 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: Google Io Introduction To Android

Industry

Page 27: Google Io Introduction To Android

Industry Users

Page 28: Google Io Introduction To Android

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

Industry Users

Page 29: Google Io Introduction To Android

Industry Users

Page 30: Google Io Introduction To Android

Industry Users

Developers

Page 31: Google Io 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: Google Io Introduction To Android
Page 33: Google Io Introduction To Android

Integrate

Page 34: Google Io Introduction To Android

Integrate

Page 35: Google Io Introduction To Android

Integrate

Page 36: Google Io Introduction To Android

Integrate Extend

Page 37: Google Io Introduction To Android

Integrate Extend

Page 38: Google Io Introduction To Android

Replace

Page 39: Google Io Introduction To Android

Replace

Page 40: Google Io Introduction To Android

Replace

Page 41: Google Io Introduction To Android

Replace

Page 42: Google Io Introduction To Android

Replace

Page 43: Google Io Introduction To Android
Page 44: Google Io Introduction To Android

What about security?

Page 45: Google Io Introduction To Android

What does this mean for developers?

Page 46: Google Io Introduction To Android

•Background•What is Android?•Latest News

Page 47: Google Io 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: Google Io 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: Google Io Introduction To Android

Q & A