Understanding Android Architecture

Deepam Goel
2 min readMay 13, 2018

--

It’s really important to understand that how android device works and what components are used to make android device work.
For this we need to understand Android Architecture

So let’s start with,
What is an architecture?
So any software or system is based on some set of components that work together to accomplish some certain task or to perform some specific function. This is a vast topic and without discussing much about it lets see what components Android is made up of and how they all work together to make things happen.

What are Android OS Components?
Android OS is based on the stack of 5 main components, viz

  1. System Applications
  2. Application Framework
  3. Libraries
  4. Android Runtime
  5. Hardware Abstraction Layer (HAL)
  6. Linux Kernel

Application
These are the application that we all make and use. They reside on the topmost layer of Android Architecture.

Application Framework
The Application Framework layer provides many higher-level services to applications in the form of Java classes and also contains other APIs. Application developers are allowed to make use of these services in their applications.

Libraries
Above Linux kernel, there is a set of libraries including open-source Web browser engine WebKit, well-known library libc, SQLite database, libraries to play and record audio and video, SSL libraries responsible for Internet security etc. All Java based libraries that are needed for building Android app also resides here.

Android Runtime
This portion contains one of the most important components Dalvik Virtual Machine, DVM. This is a kind of JVM that is specially optimized and made for Android. It enables every android app to run its own process which enables us to run many applications at same time. It basically converts .java file into .Dex format.

Hardware Abstraction Layer (HAL)
A HAL defines a standard interface for hardware vendors to implement, which enables Android to be agnostic about lower-level driver implementations. Using a HAL allows you to implement functionality without affecting or modifying the higher level system. HAL implementations are packaged into modules and loaded by the Android system at the appropriate time.

Linux Kernel
Kernel is core of any OS. The Linux Kernel sits at the bottom of Android architecture. The Android platform is built on top of the Linux 2.6 Kernel. The Linux Kernel provides support for many features like memory management, security management, process management, and device management etc. It also contains all the driver that helps Android device to communicate with other hardware devices.

I hop I was able to explain what Android Architecture is.
Thanks

Note
DVM was officially replaced by Android Run Time, ART in Lollipop version. It has many advantages over DVM. To know more about ART, Check this post:
https://stackoverflow.com/questions/31957568/what-is-difference-between-dvm-and-art-why-dvm-has-been-officially-replaced-wi

--

--