Android Software Stack Structure
To a user of a mobile handset, various functionalities are provided by a
cooperative working of a number of application programs and system
programs.
These collection of programs can be decomposed into a hierarchy of four
layers as shown in Fig. 10.5.
The functionalities of these layers are briefly discussed as follows:
Application layer
Android comes with a set of basic applications such as an email
client
a browser and those responsible for managing contacts, maps,
calendar, clock etc.
These applications have been developed using Java and can run
concurrently.
For example, hearing music and reading an email can be performed
simultaneously.
Generally cell phone users directly interact with the functionalities
provided by the application layer
Application framework
An application framework is a set of services that not only turn out to be
handy to use by an application programmer, reduce development effort,
but give a standard structure to applications written by various developers.
The application framework includes a set of user interface primitive s to
build the interface for an application such as lists, grids, text boxes, buttons,
and even an embeddable web browser.
It also includes content providers that let applications to access data from
other applications.
Libraries and Dalvik virtual machine
Android comes with a large number of libraries that can be called through a
Java interface.
These include Media Codecs like MPEG-4 and MP3, the web browser engine
WebKit, 2D and 3D graphics and the SQL database SQLite.
The Dalvik virtual machine is something similar to the JVM, but designed for
the Android platform.
The Dalvik vitual machine makes use of Linux core features like memory
management and multithreading, which is intrinsic in the Java language.
The Dalvik VM enables every Android application to run in its own process,
with its own instance of the Dalvik virtual machine.
Kernel
The kernel essentially acts as an abstraction layer between the hardware
and the rest of the software stack.
Android kernel is built from a basic Linux kernel for the basic
functionalities of the operating system such as process management,
memory management, networking and device driver.
Advantages of Android
Application development in the Android platform is becoming popular due to
the many advantages that it offers.
The mobile platform Android is an open platform and can be ported on almost
every type of cell phone.
The Android SDK to develop applications is possible on every operating
system.
Android requires a low footprint of 250 KB.
The emulator of the Android platform has a modern design and is easy to use.
Application installation on the emulator/device is possi ble via Android
Debug Bridge (adb) or via Eclipse (with ADT plug-in)
Android maintains an excellent good documentation as well as many examples
which cover the most basic and important techniques that help to effortlessly
develop an application.
Android supports robust libraries for media access, communication and data
transfer.
Android offers a real database SQLite using which meaningful data manipulation
and data sharing across applications is possible.
Android has an integrated web browser which gives an experience similar to
web browsing using a desktop PC.
Android-based application development is carried out using the extremely
popular, powerful, and yet open programming language Java.