What is Android ?
- Android
is a mobile operating system created by Google that has
the capability of being edited by any open-source developer.
- Think of it as the underlying software that instructs your
device what to do, much like how the Windows operating system powers
laptop and desktop computers.
- However , Android
is not just for mobile phones: it is an embedded operating system suitable for any
device with a display. Typical applications include medical equipment,
test equipment and multimedia consumer devices.
- Unlike
closed systems that depend on one company for innovative new ideas, Android is “open to the public” –
people can edit, add, and personalize Android, and Android takes on
popular, useful ideas in future versions.
- Android
is created with various layers, including Linux Kernel, the Android native
libraries, the Android runtime, the Application Framework layer, and the
Applications layer.
- Android
code is written internally in C/C++,
but developers can access them through Java interfaces.
- Developers
most often add or edit Android code in the Applications layer.
- Android is an open source operating
system — a large community of companies and developers maintain it and
contribute toward developing newer versions of it.
- This all takes place under the auspices of
Google, which bought the company (Android, Inc.) that first developed the
Android OS.
- Unlike Apple’s iOS operating system for mobile devices, the Android operating system’s ongoing development isn’t hidden behind lock and key.
- In fact, about 80 companies are members of
the group — the Open Handset Alliance — that contribute towards the
further development of the Android operating system.
- All of this openness allows for innovation
from many different sources.
- This also allows for many different Android devices in all shapes and sizes, which creates a compatibility problem for the app developers.
- The compatibility issue with Android
devices has even got a name: fragmentation.
- Manufacturers can modify the Android
operating system as they see fit for their devices.
- This allows them a way to differentiate
their devices from their competitors’ devices, by adding unique
features.
- This also results in different customized
versions of Android running on different devices.
An example of this
is that mobile phone maker HTC inserts its own HTC Sense user interface into
many of its Android phones, whereas Samsung puts its own TouchWiz user
interface into its Android devices.
The following
figure shows a couple of screens from the Samsung Epic 4G Android phone.
The Samsung Epic 4G Android phone’s home page (left) and one of the app pages (right).
*********************************************************************************
Architecture of Android
In
order to understand how Android works, take a look at given below Figure, which
shows the various layers that make up the Android operating system (OS).
The Android OS has four to five layers !
➤ Linux kernel
- · This
is the kernel on which Android is based.
- · This
layer contains all the low-level device drivers for the various hardware
components of an Android device.
➤ Libraries
- · These
contain all the code that provides the main features of an Android OS.
- · For
example, the SQLite library provides database support so that an application
can use it for data storage.
- · The
WebKit library provides functionalities for web browsing.
➤ Android runtime
—
- · At
the same layer as the libraries, the Android runtime provides a set of core libraries that enable developers to write Android apps
using the Java programming language.
- · The Android runtime also includes the Dalvik virtual
machine, which enables every Android application to run in its own process, with its own instance of the Dalvik virtual
machine (Android applications are
compiled into the Dalvik executables).
- · Dalvik
is a specialized virtual machine designed
specifically for Android and optimized for battery-powered mobile devices with
limited memory and CPU.
➤Application framework
- · Exposes
the various capabilities of the Android OS to application developers so that they can make use of them in
their applications.
➤ Applications
- · At
this top layer, you will find applications that ship with the Android device
(such as Phone, Contacts, Browser, etc.), as well as applications that you
download and install from the Android Market.
- · Any
applications that you write are located at this layer.
➤ Linux kernel
- · This is the kernel on which Android is based.
- · This layer contains all the low-level device drivers for the various hardware components of an Android device.
- · These contain all the code that provides the main features of an Android OS.
- · For example, the SQLite library provides database support so that an application can use it for data storage.
- · The WebKit library provides functionalities for web browsing.
- · At the same layer as the libraries, the Android runtime provides a set of core libraries that enable developers to write Android apps using the Java programming language.
- · The Android runtime also includes the Dalvik virtual machine, which enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine (Android applications are compiled into the Dalvik executables).
- · Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU.
- · Exposes the various capabilities of the Android OS to application developers so that they can make use of them in their applications.
- · At this top layer, you will find applications that ship with the Android device (such as Phone, Contacts, Browser, etc.), as well as applications that you download and install from the Android Market.
- · Any applications that you write are located at this layer.