Understanding Android architecture is important because it helps you in developing Android applications. Built with set of layers and components, each layer of the Android architecture encompasses several programs in it. In this chapter, we will explain you about the various layers in Android stack and the functions they are responsible for.
The following are the five key components of the Android operating system:
Linux Kernel is the bottom layer of Android stack and is considered as the heart of the Android architecture. The following are a few functions that Linux Kernel is responsible for:
- Hardware Abstraction
- Memory Management Programs
- Security Settings
- Power Management Software
- Other Hardware Drivers (Drivers are programs that control hardware devices.)
- Support for Shared Libraries
- Network Stack
The next layer is the Android’s Native Libraries, which can guide the device to handle different types of data. These libraries are written in C or C++ language and are specific to a particular hardware such as SQLite, and Webkit.
Android Runtime consists of Dalvik Virtual machine and core Java libraries. Dalvik Virtual machine can to run apps and is optimized for low processing power and low memory environments. And, core Java libraries provide almost all the functionalities specified in the Java SE libraries.
The Application Framework is the block with which the Android applications directly interact with. Activity Manager, Content Providers, Telephony Manager, Location Manager and resource manager are the most important blocks of Application Framework with which we can develop applications.
Applications are the top most layer of the Android architecture. Dialer, web browser, SMS, etc. are a few of the standard applications that comes pre-installed with every device. End user would commonly interact with this layer to manage the basic functions of the phone.
Below diagram gives you a clear picture of Android Architecture: