Android Architecture (original) (raw)

Last Updated : 12 Jul, 2025

Android architecture contains a different number of components to support any Android device's needs. Android software contains an open-source Linux Kernel having a collection of a number of C/C++ libraries which are exposed through application framework services. Among all the components Linux Kernel provides the main functionality of operating system functions to smartphones and Dalvik Virtual Machine (DVM) provide a platform for running an Android application.

Components of Android Architecture

The main components of Android architecture are the following:-

Pictorial representation of Android architecture with several main components and their sub-components

Android_Architecture

Understanding Android's architecture is essential for building efficient applications. For those looking to master this structure and move from beginner to advanced skills in Kotlin, the**Android Mastery with Kotlin: Beginner to Advanced course offers a comprehensive guide

1. Applications

Applications is the top layer of android architecture. The pre-installed applications like home, contacts, camera, gallery etc and third party applications downloaded from the play store like chat applications, games etc. will be installed on this layer only. It runs within the Android run time with the help of the classes and services provided by the application framework.

Android

2. Application framework

The Application Framework is a core part of Android that gives developers the tools and services they need to build apps. It provides access to device features like hardware, screen display, and system resources. It includes several important services that make it easier to build powerful and consistent Android apps without having to create everything from scratch. The services are as follows:

  1. Activity Manager - Manages the app’s activities and their life cycle (like opening, pausing, or closing screens).
  2. Notification Manager - Allows apps to show alerts or updates to the user.
  3. Package Manager - Keeps track of all the apps installed on the device.
  4. Window Manager - Handles the placement and appearance of windows on the screen.
  5. Content Providers - Help apps share data with other apps (like contacts or photos).
  6. View System - Controls how things (like buttons or text) appear on the screen.

Application_framework

3. Application runtime

Android Runtime environment is one of the most important part of Android. It contains components like core libraries and the Dalvik virtual machine(DVM). Mainly, it provides the base for the application framework and powers our application with the help of the core libraries. Like Java Virtual Machine (JVM), **Dalvik Virtual Machine (DVM) is a register-based virtual machine and specially designed and optimized for android to ensure that a device can run multiple instances efficiently. It depends on the layer Linux kernel for threading and low-level memory management. The core libraries enable us to implement android applications using the standard JAVA or Kotlin programming languages.

Android_Runtime

**Note: Now, starting from Android 5.0 and above, we use **ART (Android Runtime) to compile bytecode into native code to leverage ahead-of-time compilation.

4. Platform libraries

The Platform Libraries includes various C/C++ core libraries and Java based libraries such as Media, Graphics, Surface Manager, OpenGL etc. to provide a support for android development.

Platform_libraries

5. Linux Kernel

Linux Kernel is heart of the android architecture. It manages all the available drivers such as display drivers, camera drivers, Bluetooth drivers, audio drivers, memory drivers, etc. which are required during the runtime. The Linux Kernel will provide an abstraction layer between the device hardware and the other components of android architecture. It is responsible for management of memory, power, devices etc. The features of Linux kernel are:

Linux_Kernal

Other Commonly Used Architectures in Android

There are few commonly used Android Architectures used mentioned below:

**1. MVC ( Model View Controller )

MVC or Model View Controller breaks the model into three main components **Model that stores the application data , **View UI layer that holds the component visible on the screen and **Controller that establishes the relationship between Model and the View.

**2. MVP ( Model View Presenter )

To avoid complexities like maintainability, readability, scalability, and refactoring of applications we use MVP model. The basic working of this model relies of the points mentioned below:

**3. MVVM ( Model View ViewModel ) :

MVVM or Model View ViewModel as the name suggest like MVC model it contains three components too Model , View and ViewModel. Features of MVVM model are mentioned below:

And we can achieve this using 2 methods:

Benefits of Architecture

Using Architecture solves many problems for us few of them are: