Topic > Android Software - 1197

The Android software stack uses a hierarchical structure. As shown in Figure 10, the Android software stack is basically divided into 5 layers, which include Application Layer, Application Framework, Libraries, Android Runtime, and Linux Kernel [51]. Basically, the Linux operating system and a set of C/C++ libraries are exposed through an application framework to serve and manage the Android runtime and applications [52].i. Linux KernelThe Linux kernel sits at the bottom of the Android software stack. A modified version of Linux 2.6 is used by Android to provide essential system features that Linux excels at, such as enforcing application permission security, low-level memory management, process management and threading, stack network and a wide range of low-level device drivers. 3], [52], [54], [62]. Apart from that, it also acts as a Hardware Abstraction Layer (HAL) which facilitates the interaction between the device hardware and the rest of the software stack to allow Android applications to access and use the devices hardware using a simple API, independently from the specifications of the underlying hardware [3], [52], [62]. Some of the Android kernel improvements include the following [108]:a. BinderIt is an OpenBinder-based driver to enable inter-process communication (IPC) in the Android.b operating system. Android Power Management supports its own power management driver based on standard Linux power management. The driver has been optimized to ensure that there is no power consumption by the CPU if neither applications nor services require power.c. Low Memory KillerThis driver acts as an Android memory manager that scans the list of running Linux processes and ki...... middle of paper ......f. Notification Manager Allows all applications to notify users by showing custom alerts in the status bar.g. Activity ManagerManages the lifecycle of applications which includes the mechanism to help preserve the state of applications.v. Application LayerThe application layer, which is the highest level in the Android software stack, is populated by a number of native and third-party applications such as email client, SMS program, calendar, maps, browser, contacts, and so on [52] , [63]. All these applications are written using the Java programming language but are not compatible with Java programs written for the Java Standard Edition and Java Micro Edition platforms [62], [63]. Applications with the provision of classes and services from the application framework run within the Android runtime [52].