Android Architecture
Android Architecture
1. Applications
2. Android Framework
3. Android Runtime
4. Platform Libraries
5. Linux Kernel
In these components, the Linux Kernel is the main component in android to provide its
operating system functions to mobile and Dalvik Virtual Machine (DVM) which is responsible
for running a mobile application.
Following is the pictorial representation of android architecture with different components.
Android operating system is a stack of software components which is roughly divided into five
sections and four main layers
Applications
✔ The top layer of the android architecture is Applications. The native and third-party
applications like contacts, email, music, gallery, clock, games, etc. whatever we will
build those will be installed on this layer only.
✔ The application layer runs within the Android run time using the classes and services
Application Framework
also provides a generic abstraction for hardware access and manages the user interface
and application resources. It basically provides the services through which we can create
a particular class and make that class helpful for the Application creation.
✔ The application framework includes services like telephony service, location services,
notification manager, NFC service, view system, etc. which we can use for application
development as per our requirements.
✔ The Android run time is the engine that powers our applications along with the libraries
Platform Libraries
The Platform Libraries includes various C/C++ core libraries and Java-based libraries such as
SSL, libc, Graphics, SQLite, Webkit, Media, Surface Manger, OpenGL, etc. to provide support
for Android development.
The following are the summary details of some core android libraries available for android
development.
● Media library for playing and recording audio and video formats
● The Surface manager library to provide a display management
● SGL and OpenGL Graphics libraries for 2D and 3D graphics
● SQLite is for database support and FreeType for font support
● Web-Kit for web browser support and SSL for Internet security.
Linux Kernel
Linux Kernel is a bottom layer and heart of the android architecture. It manages all the drivers
such as display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc.
which are mainly required for the android device during the runtime.
The Linux Kernel will provide an abstraction layer between the device hardware and the
remainder of the stack. It is responsible for memory management, power management, device
management, resource access, etc.
Android Libraries
This category encompasses those Java-based libraries that are specific to Android
development. Examples of libraries in this category include the application framework libraries
in addition to those that facilitate user interface building, graphics drawing and database
access. A summary of some key core Android libraries available to the Android developer is as
follows −
● android.app − Provides access to the application model and is the cornerstone of all
Android applications.
● android.content − Facilitates content access, publishing and messaging between
applications and application components.
● android.database − Used to access data published by content providers and includes
SQLite database management classes.
● android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
● android.os − Provides applications with access to standard operating system services
including messages, system services and inter-process communication.
● android.text − Used to render and manipulate text on a device display.
● android.view − The fundamental building blocks of application user interfaces.
● android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
● android.webkit − A set of classes intended to allow web-browsing capabilities to be
built into applications.