Android architecture

all about android system architecture

Android operating system is a open-source,linux based software stack or in other words a stack of software components. Generally there is six major components in android platform

They are

  • System apps

  • Java API framework

  • native C/C++ libraries

  • Android runtime

  • Hardware abstraction layer(HAL)

  • Linux Kernal

Now let me explain in detail about what these components are.

System apps

As you guys know android has some default apps or system apps that are already included in the platform like gmail,phone,contacts etc.. The system apps can be used by users for calling messaging like stuff. But it also allows developers to use the capabilities of system apps. For example if a third party app need to send messages developers does not need to make a message app instead he can just invoke already installed System messaging app.

Java API Framework

The major features of android like notifications , User Interface, Activities and many more are provided as APIs written in the Java language.

Most commonly used API's are -

  1. Notification manager (for showing notifications)

  2. Resources manager (used for adding support for different devices with different screen size, resolution, dpi)

  3. View manager (To implement UI elements like text, image)

  4. Content providers (For sending and receiving data from other apps)

native C/C++ libraries

Android provides some native libraries written in C/C++ language. Some of the most common native libraries include OpenGL, Vulkan.

This libraries provide support for drawing and manipulating 2D and 3D graphics in your app. you can use native libraries using Android NDK.

Android runtime

Android runtime also called ART is were apps run on its own processes.ART is written to run multiple virtual machines on low-memory devices by executing DEX files, a bytecode format designed specially for Android.

Before Android version 5.0 (API level 21), Dalvik was the Android runtime.

Hardware abstraction layer

HAL has multiple library modules which are used by framework api's to call a device hardware like bluetooth or camera.

Linux kernal

foundation of android platform is linux kernal. linux kernal helps android runtime to do funtionalities like threading and low level memory management. Also it has all the drivers for andoid hardware.

Last updated