Android is a mobile operating system that has an open-source framework and is based on Linux which helps us to develop advanced and user-friendly applications.
Now, we will begin with Android Architecture, it consists of five levels, which are the Linux kernel, Libraries, Application framework, Android runtime, and System applications.
i. Linux Kernel:
Linux kernel is the bottom-most and important layer of the Android architecture and it is the core part of Android architecture. It is also an open-source software, meaning we can freely access its code, modify it at our own convenience. This is designed to be portable supporting a wider range of hardware architectures, from embedded devices to supercomputers as well.
Linux Kernel provides features such as:
Multitasking
It also provides for a level of abstraction between device hardware and upper layers of Android architecture. This consists of device drivers like camera, flash memory, Display, keypad, Wifi etc.
ii. Libraries
This layer consists of a set of Libraries and Android Runtime. The Android component is built using native codes and require native libraries, which are written in C/C++ and most of the libraries are open source libraries. Also, this layer handles data that is specific to the hardware. Some of the native libraries are SSL, SQLite, Libc, OpenGL, media framework, FreeType and Surface Manager.
iii. Android Runtime
It consists of DVM (Dalvik Virtual Machine). Similar to JAVA using JVM, Android uses DVM for maximizing battery life, memory and performance. The byte code which is generated by the Java compiler needs to be converted into.dex file by DVM as it has its own byte code. Further, multiple class files are created as one.dex file and the compressed.jar file is more than the uncompressed.dex file.
It replaced Dalvik Virtual Machine when version 5.0 Android was released. Dalvik was a register based virtual machine especially designed for the Android operating system, and ART brought ahead-of-time compilation and many other features that were absent in Dalvik.
iv. Application Framework
The application framework built on top of the native library layer provides us with Application programming interface and higher-level services. Also, the features of the Android operating system are available to us through API’s written in form of JAVA classes. And, Android developers use these high-level services to build applications.
It also has an Android Hardware Abstraction Layer or HAL, which enables communication between the Android Application framework and hardware-specific device drivers. It is the interface, through which the hardware vendor can implement it. Android application uses HAL APIs to extract commands from different hardware devices.
The application framework incorporates the following key services:
- Activity Manager: The method in this class uses the testing and debugging methods.
- Content provider: It gives data from the application to other layers.
- Resource Manager: It allows access to non-code resources.
- Notification Manager: Users get notified of all that is happening in the background.
- View System: This serves as a base class for widgets and also performs the responsibility of event handling.
v. Applications:
It is the top-most layer of Android architecture. This layer consists of native Android applications and third-party installed apps. They are bundled in an Android package and all the applications that are to be installed are written in this layer only such as contacts, games, settings, and messages.
No comments:
Post a Comment