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 android operating system are
- Linux kernel
- Android Run time
- Application Framework
Bottom layer of android operating system is 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 functionality such as process management, memory management and device management like camera, keypad, display etc. It also provides array of device drivers which makes interfacing the android with peripheral hardware easy.
On the top of Linux Kernel another layer called libraries is present. It provides the different libraries useful for well functioning of android operating system. Libraries are java libraries build specific for android operating system. Some of 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 second layer from bottom. It provides most important part of android called Dalvik Virtual Machine. Dalvik Virtual Machine is similar to Java Virtual Machine (JVM) but only difference is that it is designed and optimized for Android. Dalvik Virtual machine uses 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 fourth component in android operating system stack. Android applications directly interacts with application framework. Application framework manages the basic functions of 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 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 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.