Monday, October 18, 2010

Intro to Android System Architecture:

Here is the quick recap on the Android system architecture.
Android Dalvik VM is striped down version of java. Due to the limited resource requirement, Libraries are optimized to run under Davlik VM. (Dalvik is village name for founders grand parents..)

Let us chew some of the fundamental layers in the system arch.

Level 1 : Linux Kernal è Level 2 : Native Lib + Android Run time (core Lib + Dalvik VM) è
Level 3 : Application frame work è Level 4 : Applications and widgets

Below is the extract from Pro. Android v2. book.

Level 1 :
At the core of the Android Platform is Linux kernel version 2.6.29, responsible for device
drivers, resource access, power management, and other OS duties. The supplied device
drivers include Display, Camera, Keypad, WiFi, Flash Memory, Audio, and IPC (interprocess
communication).

Although the core is Linux, the majority—if not all—of the
applications on an Android device such as the T-Mobile G1 or Motorola Droid are
developed in Java and run through the Dalvik VM.

Level 2 :
Sitting at the next level, on top of the kernel, are a number of C/C++ libraries such as
OpenGL, WebKit, FreeType, Secure Sockets Layer (SSL), the C runtime library (libc),
SQLite, and Media. The system C library based on Berkeley Software Distribution (BSD)
is tuned (to roughly half its original size) for embedded Linux-based devices.

The medialibraries are based on PacketVideo’s (http://www.packetvideo.com/) OpenCORE.
These libraries are responsible for recording and playback of audio and video formats. A library
called Surface Manager controls access to the display system and supports 2D and 3D.


The WebKit library is responsible for browser support; it is the same library that supports
Google Chrome and Apple’s Safari. The FreeType library is responsible for font support.
SQLite (http://www.sqlite.org/) is a relational database that is available on the device
itself. SQLite is also an independent open source effort for relational databases and not
directly tied to Android. You can acquire and use tools meant for SQLite for Android
databases as well.

Most of the application framework accesses these core libraries through the Dalvik VM,
the gateway to the Android Platform. As we indicated in the previous sections, Dalvik is
optimized to run multiple instances of VMs. As Java applications access these core
libraries, each application gets its own VM instance.

Level 3 :
The Android Java API’s main libraries include telephony, resources, locations, UI,
content providers (data), and package managers (installation, security, and so on).
Programmers develop end-user applications on top of this Java API. Some examples of
end-user applications on the device include Home, Contacts, Phone, Browser, and so
on.

Android also supports a custom Google 2D graphics library called Skia, which is written
in C and C++. Skia also forms the core of the Google Chrome browser. The 3D APIs in
Android, however, are based on an implementation of OpenGL ES from the Khronos
group (http://www.khronos.org). OpenGL ES contains subsets of OpenGL that are
targeted toward embedded systems.

From a media perspective, the Android Platform supports the most common formats for
audio, video, and images. From a wireless perspective, Android has APIs to support
Bluetooth, EDGE, 3G, WiFi, and Global System for Mobile Communication (GSM)
telephony, depending on the hardware.

No comments:

Post a Comment