Android framework
About Android:
• Android is a mobile operating system that is based on a modified version of Linux.
• Since 2005, the Android OS is owned by Google and distributed as open-source software under Apache license.
• With the advent of smartphone era, android has become the most popular Operating System running on Smartphones due to some of it’s features like
- Unified Development approach
- better storage,
- better connectivity features (4G LTE, Wi-Fi )
- Multi-tasking, Multi-touch,
- Better Hardware and Media Support etc.
The diagram above shows the architecture of the Android OS. It is basically made up of five layers as described below:
• Linux Kernel:
- As mentioned earlier, the Android OS is based on Linux Kernel.
- Android uses Linux for all memory management, process management, networking and other operating systems services.
- Inside the Linux kernel, it contains all the low-level device drivers meant for the various hardware components of and Android Device.
(Extra Info: A driver is a software which is meant to interconnect between Software System and the peripheral like camera, printer, Bluetooth, etc.)
• Libraries:
- It contains the shared library files usually written in C or C++ and compiled for the particular architecture and the make of the phone.
- It is preinstalled by the vendor.
- It contains all the code that provides the main features of an Android OS.
- For e.g., SQLite library is used for providing database support to the applications.
• Android Runtime:
- It provides a set of core libraries that enables developers to write and develop Android apps using the Java programming language.
- It also contains the Dalvik Virtual Machine (DVM). It is Google’s implementation of Java Virtual Machine (JVM).
- It is specifically developed for Android to satisfy the limited memory and battery availability.
- The Java codes are compiled and made as dalvik executable with the extension .dex .
• Application Framework:
- This layer provides high level building blocks that can used for developing applications.
- Some important parts of this framework include the Activity Manager that is used mainly to control the life cycle of an application. It provides a stack meant to keep track of user movement when ‘back’ button is pressed.
• Applications:
- This is the layer that the end-user sees or works with.
- Here the various applications are kept which include the systems apps, pre-installed factory apps, self-developed apps, apps from Play store, etc.