Android OS Architecture
An Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram. The components of an Android operating system are
- Linux kernel
- Android Runtime
- Application Framework
A bottom layer of Android operating system is a Linux kernel. Android is built on top of Linux 2.6 Kernel and few architectural changes made by Google. Linux Kernel provides the basic system functions such as process management, memory management and device management like camera, keypad, display etc. It also provides an array of device drivers which makes interfacing the android with peripheral hardware easy.
On the top of the Linux Kernel, another layer called libraries is present. It provides the different libraries useful for the well functioning of the Android operating system. Libraries are java libraries build specifically for the Android operating system. Some of the important libraries are
|SQLite||This library is used to access data published by content providers and includes SQLite database management classes|
|SSL||This is used to provide internet security|
|OpenGL||OpenGL is used to provide Java interface to the OpenGL/ES 3D graphics rendering API.|
|Media framework||It is used to provides different media codecs which allow the recording and playback of different media formats|
|WebKit||It is the browser engine used to display internet content or HTML content|
It is the third component of the Android architecture and placed in the second layer from the bottom. It provides the most important part of android called Dalvik Virtual Machine. Dalvik Virtual Machine is similar to Java Virtual Machine (JVM) but the only difference is that it is designed and optimized for Android. Dalvik Virtual machine uses the core functions of Linux such as memory management and multi-threading and enables each android app to run its own process.
The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.
It is the fourth component in android operating system stack. Android applications directly interact with an application framework. Application framework manages the basic functions of the android device such as resource management, voice call management etc. Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications. The important blocks of the application framework are
|Activity Manager||Used to manage complete activity life cycle of applications|
|Content Providers||Used to manage the data sharing between two applications|
|Telephony Manager||Used to manages all voice calls|
|Location Manager||Used to manage the Locations obtained using GPS or cell tower|
|Resource Manager||Used to manage the different types of resources used in an android app|
Android application is the fifth competent of Android OS and situated at the top layer. Applications are developed to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games, etc.