Android Architecture: The following diagram shows the major components of the Android operating
system.
1. Linux Kernel:-
Linux version provides more security, memory management,
process management, network stack, and driver model. The kernel is also part the
OS that acts as an abstraction layer between the hardware and the rest of
the software stack.
2.Android Runtime:-
- Every Android application runs
in its own process, with its own instance of the Dalvik virtual machine.
- Dalvik has been written so
that a device can run multiple VMs efficiently.The Dalvik VM executes files in
the Dalvik Executable (.dex) format which is optimized for minimal memory
footprint.
-The VM is register-based, and
runs classes compiled by a Java language compiler that have been transformed
into the .dex format by the included "dx" tool.
- Android includes a set of core
libraries that provides most of the functionality.
3. Libraries :-
Android includes a
set of C/C++ libraries used by various components of the Android system.
Some of the core libraries are listed below:-
Media Libraries - based on
PacketVideo's OpenCORE; the libraries support playback and recording of many
popular audio and video formats, as well as static image files, including MPEG4,
H.264, MP3, AAC, AMR, JPG, and PNG.
Surface Manager - manages access to the
display subsystem and seamlessly composites 2D and 3D graphic layers from
multiple applications.
LibWebCore - a modern web browser engine
which powers both the Android browser and an embeddable web view.
3D libraries - an implementation
based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration
(where available) or the included, highly optimized 3D software rasterizer.
FreeType - bitmap and vector font rendering.
SQLite - a
powerful and lightweight relational database engine available to all
applications.
System C library - a BSD-derived implementation of the standard C
system library (libc),tuned for embedded Linux-based devices
4.Application Framework :-
Android provides an open development platform, So Developers have full access to
the same framework APIs used by the core applications. Developers are free to
take advantage of the device hardware, access location information, run
background services, set alarms, add notifications to the status bar, and much,
much more.
Underlying all applications is a set of services and systems, including:
- A rich and extensible set of Views that can be used to build an
application, including lists, grids, text boxes, buttons, and even an embeddable
web browser.
- Content Providers that enable applications to access data from other
applications (such as Contacts), or to share their own data
- A Resource Manager, providing access to non-code resources such as
localized strings, graphics, and layout files
- A Notification Manager that enables all applications to display custom
alerts in the status bar
- An Activity Manager that manages the lifecycle of applications and
provides a common navigation backstack.
5. Applications :-
Android will ship with a set of core applications including an
email client, SMS program, calendar, maps, browser, contacts, and others. All
applications are written using the Java programming language.