6. Android Architecture
● Linux Kernel
● 2.6 -> core system
– Security,
– memory management,
– process management,
– network stack, and
– driver model.
7. Android Architecture
● Library
– System C library (libc)
– Media Libraries - based
on PacketVideo's
OpenCORE;
– Surface Manager
– LibWebCore
– SGL
– 3D libraries
– FreeType - bitmap and
vector font rendering
– SQLite
8. Android Architecture
● Android runtime
– Dalvik VM
– Not a Java VM
● register based
– one instance per
application
– memory optimized
– uses Linux to manage
memory and multi-
threading
9. Android Architecture
● Application Framework
● Service and System
– Views
– Content providers
– Resource manager
– Notification manager
– Activity manager
● All Java classes
● Simplify the reuse of
components
● Any application can publish
its capabilities and any other
application may then make
use of those capabilities
10. Android Architecture
● Applications
● Core Applications
– email client,
– SMS program,
– calendar,
– maps,
– browser,
– contacts, and others
● All applications are
written using the Java
programming
language.
12. Development Environment
● Eclipse Based
● Android SDK,
– http://developer.android.com/sdk/index.html
● Android Development Tools (ADT) plugin for Eclipse
– http://developer.android.com/sdk/eclipse-adt.html
● Emulator (AVD)
or
● Target Devices
– USB Connection
13. Development Environment
● Netbean Based
● Android SDK,
– http://developer.android.com/sdk/index.html
● Android plugin for Netbeans
– http://kenai.com/projects/nbandroid/downloads/download/
updatecenter/updates.xml
● Emulator (AVD)
or
● Target Devices
– USB Connection
14. Development Environment
● Command Line Based
● Android SDK,
– http://developer.android.com/sdk/index.html
● Ant + Bash + editor,
● Emulator (AVD),
or
● Target Devices
– USB Connection
Reference: http://developer.android.com/guide/developing/projects/projects-cmdline.html
15. Development Environment
● Web Based (App Inventor)
● Android SDK,
– http://developer.android.com/sdk/index.html
● Web Browser,
– http://www.appinventorbeta.com
● Emulator (AVD),
or
● Target Devices
– USB Connection
17. Programming Model
● Application Components
● Activity ● Content Providers
– Executable unit – Makes application's data
available to other
– Has UI
– Can be:
– 1 application can have ● File system,
multiple Activity ● Database (SQLite)
● Services ● Other
– Targeted by:
– Similar to Activity
ContentResolver
– No UI ● Broadcast Receiver
– Run in Background
– Respond to broadcast
messages.