14180203 an-introduction-to-android

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

Upload: neha-jain

Post on 14-Jun-2015

3.642 views

Category:

Mobile


0 download

DESCRIPTION

Basic book on Android development

TRANSCRIPT

Page 1: 14180203 an-introduction-to-android

An Introduction to Android

Jason ChenDeveloper Advocate

Google I/O 2008

Page 2: 14180203 an-introduction-to-android

•Background•What is Android?•Latest News

Page 3: 14180203 an-introduction-to-android
Page 4: 14180203 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: 14180203 an-introduction-to-android
Page 6: 14180203 an-introduction-to-android

Mobile Operators

Page 7: 14180203 an-introduction-to-android

Mobile Operators

Handset Manufacturers

Page 8: 14180203 an-introduction-to-android

Mobile OperatorsSoftware

Handset Manufacturers

Page 9: 14180203 an-introduction-to-android

Mobile Operators

Semiconductor

Software

Handset Manufacturers

Page 10: 14180203 an-introduction-to-android

Mobile Operators

SemiconductorCommercialization

Software

Handset Manufacturers

Page 11: 14180203 an-introduction-to-android

•Background•What is Android?•Latest News

Page 12: 14180203 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: 14180203 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: 14180203 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: 14180203 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: 14180203 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: 14180203 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: 14180203 an-introduction-to-android

Developer Toolchain

Page 19: 14180203 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: 14180203 an-introduction-to-android

Eclipse PluginProject template

Page 21: 14180203 an-introduction-to-android

Debugging

Call stack

Breakpoints, single stepping

Examine variables

Page 22: 14180203 an-introduction-to-android

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

What does open mean?

Page 23: 14180203 an-introduction-to-android
Page 24: 14180203 an-introduction-to-android

Industry

Page 25: 14180203 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: 14180203 an-introduction-to-android

Industry

Page 27: 14180203 an-introduction-to-android

Industry Users

Page 28: 14180203 an-introduction-to-android

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

Industry Users

Page 29: 14180203 an-introduction-to-android

Industry Users

Page 30: 14180203 an-introduction-to-android

Industry Users

Developers

Page 31: 14180203 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: 14180203 an-introduction-to-android
Page 33: 14180203 an-introduction-to-android

Integrate

Page 34: 14180203 an-introduction-to-android

Integrate

Page 35: 14180203 an-introduction-to-android

Integrate

Page 36: 14180203 an-introduction-to-android

Integrate Extend

Page 37: 14180203 an-introduction-to-android

Integrate Extend

Page 38: 14180203 an-introduction-to-android

Replace

Page 39: 14180203 an-introduction-to-android

Replace

Page 40: 14180203 an-introduction-to-android

Replace

Page 41: 14180203 an-introduction-to-android

Replace

Page 42: 14180203 an-introduction-to-android

Replace

Page 43: 14180203 an-introduction-to-android
Page 44: 14180203 an-introduction-to-android

What about security?

Page 45: 14180203 an-introduction-to-android

What does this mean for developers?

Page 46: 14180203 an-introduction-to-android

•Background•What is Android?•Latest News

Page 47: 14180203 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: 14180203 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: 14180203 an-introduction-to-android

Q & A