Android Framework or Android architecture

Android operating system composed of different software components that are arranged into a stack. The following diagram shows the android architecture:

android

Android architecture is categorized into following components:

  • Linux kernel
  • Libraries
  • Android runtime
  • Application framework
  • Applications

Linux kernel

  • Linux kernel is the bottom most layer of the android framework.
  • Android was created on top of the open source Linux2.6 kernel and after that Google made some changes in architecture which is used to develop android operating system.
  • The features of linux2.6 are as follows:
    • Security: The Linux kernel is responsible to handle the security between the application and device.
    • Memory management: The kernel is responsible for memory management. When we develop application then it provides the free space to our application.
    • Process management: The Linux kernel is responsible to manage the processes well and provide or allocating resources to processes when they need the resources.
    • Network stack: The Linux kernel is responsible to handle the network communication.
    • Driver model: The primary goal of the Linux kernel is to ensure that the application works well. Hardware manufacturers can also develop or build their drivers into the Linux build.

Libraries

  • This layer is present at top of the Linux kernel layer. This layer is called as libraries.
  • This layer provides several useful libraries that are used to develop well-functioning android operating system.
  • These useful libraries are java libraries build specific for the android operating system.
  • These libraries are as follows:
    • Open GL: This is used to support for 2D and 3D graphics. It is cross-platform, cross-language application programming interface (API) that is used to produce the 2D and 3D computer graphics.
    • Webkit: This is open source web browser engine. It is used to provide the support for displaying the web content and also helps to simplify page loading.
    • SQLite: This is open source relational database engine. It is designed to be embedded in the devices. It is used to provide the database connectivity to the application. It is inbuilt feature of android. There is no need to install the SQLite manually.
    • Media frameworks: This library is used to provide the support for audio and video. Using this library, we can play or record audio or video.
    • Security Socket Layer (SSL): This library plays an important role when we use internet. It is responsible for Internet security.

Android runtime

  • This is the 3rd component of the android architecture and it is placed at the top of Linux kernel.
  • Android runtime is composed of java core libraries and the most important part of android that is Dalvik virtual machine.
  • Dalvik virtual machine (DVM) is similar to java virtual machine (JVM) but JVM is designed for the computers or laptops but the Dalvik virtual machine is designed for the Android applications or mobile phones.
  • DVM uses the core functions of the Linux such as multithreading, memory management and provide the ability to run the each android app independent.

Application framework

  • In this, android applications directly interact with the application framework means we don’t have to worry about that how android interacts with the SQLite or other libraries.
  • Application framework is responsible to manage the basic functions of the android such as voice call management or memory management etc.
  • Application framework provides the following features:
    • Activity manager: It is used to manage the activity life cycle of the android application.
    • Telephony manager: It is used to provide to access the telephony services or certain subscriber information such as mobile numbers or phone numbers.
    • View system: It is used to handle the views and layouts which are used to create the user interface.
    • Location manager: It is used to find the geographic location of the device.