Android architecture
all about android system architecture
Last updated
all about android system architecture
Last updated
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.
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.
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 -
Notification manager (for showing notifications)
Resources manager (used for adding support for different devices with different screen size, resolution, dpi)
View manager (To implement UI elements like text, image)
Content providers (For sending and receiving data from other apps)
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 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.
HAL has multiple library modules which are used by framework api's to call a device hardware like bluetooth or camera.
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.