Android Architecture – 5 Components of Android Architecture

Job-ready Online Courses: Knowledge Awaits – Click to Access!

In this article, we will study Android architecture. We will cover five basic components of Android architecture and their functioning. Moreover, to develop Android applications, Android developers need to have a deep knowledge of the architecture of Android.

Android Architecture

Android Architecture

What is Android Architecture?

Android is a mobile operating system that has an open-source framework and is based on Linux which helps us to develop advanced and user-friendly applications.

Now, we will start with Android Architecture, it comprises of five levels, which are the Linux kernel, Libraries, Application framework, Android runtime, and System applications.

i. Linux Kernel

Linux kernel is the bottom-most and important layer of the Android architecture and it is the core part of Android architecture. It is also an open-source software, meaning we can freely access its code, modify it at our own convenience. This is designed to be portable supporting a wider range of hardware architectures, from embedded devices to supercomputers as well.

Linux Kernel provides features such as:

  • Security
  • Process management
  • Memory management
  • Device management
  • Multitasking

It is also responsible for a level of abstraction between device hardware and upper layers of Android architecture. It consists of device drivers like camera, flash memory, Display, keypad, Wifi etc.

ii. Libraries

This layer consists of a set of Libraries and Android Runtime. The Android component is built using native codes and require native libraries, which are written in C/C++ and most of the libraries are open source libraries. Also, this layer handles data that is specific to the hardware. Some of the native libraries are SSL, SQLite, Libc, OpenGL, media framework, FreeType and Surface Manager.

 

Components of Android Architecture

Components of Android Architecture

iii. Android Runtime

It comprises of DVM (Dalvik Virtual Machine). Just like JAVA uses JVM, Android uses DVM to optimize battery life, memory and performance. The byte code generated by the Java compiler has to be converted to .dex file by DVM, as it has its own byte code. Also, multiple class files are created as one .dex file and the compressed .jar file is greater than the uncompressed .dex file.

It replaced the Dalvik Virtual Machine when Android version 5.0 was released. Dalvik was a register based virtual machine designed specifically for Android, but the ART introduced ahead-of-time(AOT) compilation and many other features.

iv. Application Framework

The application framework built on top of the native library layer provides us with Application programming interface and higher-level services. Also, the features of the Android operating system are available to us through API’s written in form of JAVA classes.  And, Android developers use these high-level services to build applications.

It also consists of an Android Hardware Abstraction Layer (HAL) that allows the Android Application framework to communicate with hardware-specific device drivers. It acts as an interface for hardware vendors to implement. An android application uses HAL APIs to get commands from different hardware devices.

The application framework consists of following key services:

  • Activity Manager: The method in this class uses testing and debugging methods.
  • Content provider: It provides data from application to other layers.
  • Resource Manager: It provides access to non-code resources.
  • Notification Manager: The users get notification about all the actions happening in the background.
  • View System: It acts as a base class for widgets and is responsible for event handling.
Application Framework Services

Application Framework Services

v. Applications

It is the top-most layer of Android architecture. This layer consists of native Android applications and third-party installed apps. They are bundled in an Android package and all the applications that are to be installed are written in this layer only such as contacts, games, settings, and messages.

Summary

In this article, we have studied the Android architecture and its various layers consisting Linux kernel, Android runtime, application framework, and Android apps, in detail. Also, the benefit of learning about architecture, as an Android developer is that it becomes easy to add new features if there are separate components. Hope you liked our article. Furthermore, if you have any query you can ask us in the comment section.

We work very hard to provide you quality material
Could you take 15 seconds and share your happy experience on Google

courses

DataFlair Team

The DataFlair Team is passionate about delivering top-notch tutorials and resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With expertise in the tech industry, we simplify complex topics to help learners excel. Stay updated with our latest insights.

7 Responses

  1. Aman says:

    Great article about Android Architecture.

    • DataFlair Team says:

      Hi Aman,
      Thanks for the comment on the “Android Architecture” Tutorial. DataFlair starts publishing Andriod tutorials, please regularly check our website for more Android Tutorials.
      Hope, you like them too!
      Regards,
      DataFlair

  2. Anish Jain says:

    A good article to get an overview for basic android. Thorough explanation for beginners.

    • DataFlair Team says:

      Hello Anish,
      We are glad our reader is trying to interact with us through this Andriod Architecture. There is much more in android to learn, not only for fresher but also for experienced.
      You can check regularly DataFlair for more Andriod tutorials. Don’t forget to share with your peer groups.
      Regards,
      DataFlair

  3. Innocent Goora says:

    Ok thanks very much for providing this rich information about Android Architecture in a robust manner. I want to know something pertaining to their order of importance when we are developing an android application

  4. Victor says:

    Great information and very clear.
    Thanks
    Victor

  5. aru says:

    It’s a very wise partitioning to split the whole architecture into five components. Together with the five features of the kernel, and five key services of the framework, it’s so clear and easy to remember. I’ve seen various architecture partitionings, they all make sense, but difficult to remember. Thank you for the great way of thinking!

Leave a Reply

Your email address will not be published. Required fields are marked *