0% found this document useful (0 votes)
2 views7 pages

Android Platform Architecture

The document outlines the architecture of the Android platform, which consists of five main components: Applications, Application Framework, Android Runtime, Platform Libraries, and Linux Kernel. It details the roles of each component, including how they interact to support application development and runtime efficiency. Additionally, it discusses commonly used architectural patterns like MVC, MVP, and MVVM, emphasizing the benefits of structured architecture for maintainability, scalability, and testing of applications.

Uploaded by

sflhub2024
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views7 pages

Android Platform Architecture

The document outlines the architecture of the Android platform, which consists of five main components: Applications, Application Framework, Android Runtime, Platform Libraries, and Linux Kernel. It details the roles of each component, including how they interact to support application development and runtime efficiency. Additionally, it discusses commonly used architectural patterns like MVC, MVP, and MVVM, emphasizing the benefits of structured architecture for maintainability, scalability, and testing of applications.

Uploaded by

sflhub2024
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Android Platform architecture

Android is an open source, Linux-based software stack created for a wide array
of devices and form factors.
Components of Android Architecture
The main components of Android architecture are the following:-

 Applications

 Application Framework

 Android Runtime

 Platform Libraries

 Linux Kernel

Pictorial representation of Android architecture with several main components


and their sub-components

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.
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.

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.

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.

 Media library provides support to play and record an audio and video
formats.

 Surface manager responsible for managing access to the display


subsystem.

 SGL and OpenGL both cross-language, cross-platform application


program interface (API) are used for 2D and 3D computer graphics.

 SQLite provides database support and FreeType provides font support.


 Web-Kit This open source web browser engine provides all the
functionality to display web content and to simplify page loading.

 SSL (Secure Sockets Layer) is security technology to establish an


encrypted link between a web server and a web browser.

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:

 Security: The Linux kernel handles the security between the application
and the system.

 Memory Management: It efficiently handles the memory management


thereby providing the freedom to develop our apps.

 Process Management: It manages the process well, allocates resources


to processes whenever they need them.

 Network Stack: It effectively handles the network communication.

 Driver Model: It ensures that the application works properly on the


device and hardware manufacturers responsible for building their drivers
into the Linux build.
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:

 Communication between the View-Presenter and Presenter-Model


happens with the help of Interface (also called Contract).

 There is One to One relationship between Presenter and View , One


Presenter Class only manages One View at a time.

 Model and View doesn't have any knowledge about each other.

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:

 ViewModel does not hold any kind of reference to the View.

 Many to-1 relationships exist between View and ViewModel.

 No triggering methods to update the View.

And we can achieve this using 2 methods:

 Using DataBinding library of Google.

 Using Tools like RxJava for Data Binding.

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

 Improves the Maintainability , quality and robustness of the


application

 Scalability of the Application is increased using Architecuture as ,


users and developers bot the engamenents on the application can be
increased.

 Testing of Application gets easy because of it.

 Bugs can be identified and removed easily with the well defined
process.

You might also like