Download - Android
Overview
Cool Application
Internal
Application development
Others
What’s Android
Android is a software stack for mobile devices that
includes an operating system, middleware and key
applications
History
2003, Startup Android Inc.
Aug 2005, Google Buys Android
Nov 2007, Open Handset Alliance
Nov 2007, First SDK
Apr 2008, ADC
Oct 2008, First device: T-Mobile G1
Oct 2008, Open source
Roadmap
1.0 1.1 1.5
Cupcake
1.6
Donut
2.0
Eclair
2.1
Flan
HTC
Dream (G1)
HTC
Magic
HTC
Hero
Motorola
Droid
HTC
Tattoo
SonyEricsson
Xepria X10
Typical Hardware Spec
Touch screen (480x320, QVGA, WVGA)
Video/still camera
GPS
Accelerometer
Magnetometer
Enable the User Experience
Overview
Cool Application
Internal
Application development
Others
Cool Application
Location Based
Map + GPS + POI
Google MapsPlace Directory
Cool Application
Augmented Reality
Wikitude World Browser Google Sky Map
Cool Application
Augmented Reality
Cool Application
Audio & Image Search
Cool Application
Use Pictures to Search the Web
Overview
Cool Application
Internal
Application development
Others
DNA of Android
Built on the Linux kernel
Uses the Dalvik virtual machine
Core and 3rd party applications have equal access
Process
One Linux process per application
Application runs in Dalvik VM
Application head limit: 16MB
Auto GC
Multi-thread supported
DalvikVM
Application A
DalvikVM
Application B
Linux process Linux process
Process Lifecycle
Android is a multitasking system
But you can only start an application, can’t stop an application
System will automatically kill processes to conserve memory on necessary
Activity can save state on destroy and restore state on restart to keep seamless user experience
Where is
the close
button?
Last activated applications
Some of them might have been killed
SPLRecovery
Image
File System
Fla
sh M
em
ory
/dev /system /data /cache …
OTA upgradeApps
Memory
SPL: secondary program loader (boot loader)
Swapext2 / ext3
(app2sd)FAT / FAT32
SD c
ard
Baseband
used
GPU
usedLinux memory
RA
M
Custom ROM
JesusFreke’s ROM
Haykuro Rogers ROM (神童)
Chinese: GeesunMod
Root
Linux OS root user privilege
Why to root?
Full control over your system
Ability to alter system files.
Run special apps that need more control over the system
App2sd
……
How to root?
Overview
Cool Application
Internal
Application development
Others
Development Environment
SDK = libraries + tools + emulator + doc
SDK add-on: Google Maps API
Development Environment
Eclipse + ADT plugin
Tools + Ant
Build Process & Artifacts
Android Application Fundamentals
Fundamentals
Activity
Service
Broadcast receiver
Content provider
Intent
intent intent
Music play service
Running in background
Activities & Tasks
Task: a stack of activities
A task can contain
activities from different
applications
Back button navigates
backward in the stack
All the activities in a
task move together as a
unit
Task Task
User Interface
View & ViewGroup
XML layout file
Create object in code
API
Android Specified
System
UI
SQLite
JDK
HttpClient
JSON
XML
Add-on
Google Map API
Publish Your Application
After Published
Mobile Advertising
for Mobile Application
Flurry.com
Mobile application analytics
Overview
Cool Application
Internal
Application development
Others
山寨
Vendor Customization
Android
(Open Source)
Applications(Gmail, Calendar, Market etc)
Other bundle
applications
Applications
Replace UI
HTC SenseSonyEricsson Rachael
Motorola Blur
Google Account
OMS (OPhone)
OMS (OPhone)
Android
(Open Source)
Applications(Gmail, Calendar, Market etc)
Applications
Replace UI
Google AccountApplications
JIL Widget
GFW
Android mobile is Internet mobile
Google services
Application as front-end, web service back-end
Cloud computing
DNS pollution:
android.clients.google.com
VPN support in Android