Android Architecture

Android architecture contains different number of components to support any android device needs. Android software contains an open-source Linux Kernel having collection of number of C/C++ libraries which are exposed through an application framework services.

Following are main components of android architecture those are

  1. Applications
  2. Android Framework
  3. Android Runtime
  4. Platform Libraries
  5. Linux Kernel

In these components, the Linux Kernel is the main component in android to provide its operating system functions to mobile and Dalvik Virtual Machine (DVM) which is responsible for running a mobile application.

 Following is the pictorial representation of android architecture with different components.

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.

Application Framework –

The Application Framework is a set of services that collectively form the environment in which Android applications run and are managed. This framework implements the concept that Android applications are constructed from reusable, interchangeable and replaceable components.
This concept is taken a step further in that an application is also able to publish its capabilities along with any corresponding data so that they can be found and reused by other applications.

The Android framework includes the following key services:

  • Activity Manager – Controls all aspects of the application lifecycle and activity stack.
  • Content Providers – Allows applications to publish and share data with other applications.
  • Resource Manager – Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
  • Notifications Manager – Allows applications to display alerts and notifications to the user.
  • View System – An extensible set of views used to create application user interfaces.
  • Package Manager – The system by which applications are able to find out information about other applications currently installed on the device.
  • Telephony Manager – Provides information to the application about the telephony services available on the device such as status and subscriber information.
  • Location Manager – Provides access to the location services allowing an application to receive updates about location changes.

Android Runtime –

Android Runtime environment is an important part of Android rather than an internal part and it contains components like core libraries and the Dalvik virtual machine. The Android run time is the engine that powers our applications along with the libraries and it forms the basis for the application framework.

Dalvik Virtual Machine (DVM) is a register-based virtual machine like Java Virtual Machine (JVM). It is specially designed and optimized for android to ensure that a device can run multiple instances efficiently. It relies on the Linux kernel for threading and low-level memory management.

The core libraries in android runtime will enable us to implement android applications using standard JAVA programming language.

Android Libraries –

In addition to a set of standard Java development libraries (providing support for such general purpose tasks as string handling, networking and file manipulation), the Android development environment also includes the Android Libraries. These are a set of Java-based libraries that are specific to Android development. Examples of libraries in this category include the application framework libraries in addition to those that facilitate user interface building, graphics drawing and database access.
A summary of some key core Android libraries available to the Android
developer is as follows:

  • – Provides access to the application model and is the cornerstone of all Android applications.
  • android.content – Facilitates content access, publishing and messaging between applications and application components.
  • android.database – Used to access data published by content providers and includes SQLite database management classes.
  • – A low-level 2D graphics drawing API including colors, points, filters, rectangles and canvases.
  • android.hardware – Presents an API providing access to hardware such as the accelerometer and light sensor.
  • android.opengl – A Java interface to the OpenGL ES 3D graphics rendering API.
  • android.os – Provides applications with access to standard operating system services including messages, system services and inter-process communication.
  • – Provides classes to enable playback of audio and video.
  • – A set of APIs providing access to the network stack. Includes, which provides access to the device’s wireless stack.
  • android.print – Includes a set of classes that enable content to be sent to configured printers from within Android applications.
  • android.provider – A set of convenience classes that provide access to standard Android content provider databases such as those maintained by the calendar and contact applications.
  • android.text – Used to render and manipulate text on a device display.
  • android.util – A set of utility classes for performing tasks such as string and number conversion, XML handling and date and time manipulation.
  • android.view – The fundamental building blocks of application user interfaces.
  • android.widget – A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
  • android.webkit – A set of classes intended to allow web-browsing capabilities to be built into applications.

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.

That’s it!
You have successfully completed the post. Do Share : )

Peace Out!

Also Read – Difference Between Activity and Fragment in Android

Check Out Deals on -> Amazon , Flipkart , Myntra , Adidas , Apple TV , Boat , Canva , Beardo , Coursera , Cleartrip , Fiverr , MamaEarth , Swiggy, KFC

One comment

Leave a Reply

Your email address will not be published.