Android is an operating system developed by Google for mobile systems. It is based on the Linux kernel and mainly designed for touchscreen devices such as tablets and smartphones.
The Android architecture is divided into four main layers and five sections. This is explained using the given diagram:
The details about the different parts of the Android architecture are given as follows:
The android applications are in the top layer of the architecture. They are mainly written in Java and run within individual instances of the Dalvik virtual machine. The main features of the Android applications should be performance and efficiency, both in an implementation of the application and its execution.
The set of services that form the environment in which applications are run is known as application framework. Some of the main services in the Android application framework are:
All aspects of the application lifestyle and activity stack are controlled by the activity manager.
The resource manager provides access to resources such as strings, colour settings etc. These are non-code embedded resources.
The applications can display alerts and notifications to the user using the notifications manager.
This allows applications to share and publish data with other applications.
The java based libraries that are specific to android development are included in here. Some of these libraries are:
This is the cornerstone of all Android applications and provides access to the applications.
This is used to manipulate text on a device display.
Content access and messaging between different applications is provided by android.content.
The data published by content providers such as SQLite database management is displayed.
Playback of audio and video is done using the classes provided.
The android runtime provides a key component known as dalvik virtual machine which is a part of JVM (Java Virtual Machine) developed specially for android. The dalvik virtual machine uses features that are quite important in Java such as memory management, multi-threading etc.
The Linux kernel provides a level of abstraction before the hardware. It is at the lowest level in the Android architecture. The Linux kernel contains all the important hardware drivers such as keyboard driver, display driver, Bluetooth driver, wifi driver, camera driver etc.