Android System Architecture

The Android software stack generally consists of a Linux kernel and a collection of C/C++ libraries that is exposed through an application framework that provides services, and management of the applications and run time.

Linux Kernel

Android was created on the open source kernel of Linux. One main reason for choosing this kernel was that it provided proven core features on which to develop the Android operating system. The features of Linux kernel are:

  1. Security:

    The Linux kernel handles the security between the application and the system.

  2. Memory Management:

    It efficiently handles the memory management thereby providing the freedom to develop our apps.

  3. Process Management:

    It manages the process well, allocates resources to processes whenever they need them.

  4. Network Stack:

    It effectively handles the network communication.

  5. Driver Model:

    It ensures that the application works. Hardware manufacturers can build their drivers into the Linux build.

Libraries:

Running on the top of the kernel, the Android framework was developed with various features. It consists of various C/C++ core libraries with numerous of open source tools. Some of these are:

  1. The Android runtime:

    The Android runtime consist of core libraries of Java and ART(the Android RunTime). Older versions of Android (4.x and earlier) had Dalvik runtime.

  2. Open GL(graphics library):

    This cross-language, cross-platform application program interface (API) is used to produce 2D and 3D computer graphics.

  3. WebKit:

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

  4. Media frameworks:

    These libraries allow you to play and record audio and video.

  5. Secure Socket Layer (SSL):

    These libraries are there for Internet security.

Android Runtime:

It is the third section of the architecture. It provides one of the key components which is called Dalvik Virtual Machine. It acts like Java Virtual Machine which is designed specially for Android. Android uses it’s own custom VM designed to ensure that multiple instances run efficiently on a single device.

The Delvik VM uses the device’s underlying Linux kernel to handle low-level functionality,including security,
threading and memory management.

Application Framework

The Android team has built on a known set proven libraries, built in the background, and all of it these is exposed through Android interfaces. These interfaces warp up all the various libraries and make them useful for the Developer. They don’t have to build any of the functionality provided by the android. Some of these interfaces include:

  1. Activity Manager:

    It manages the activity lifecycle and the activity stack.

  2. Telephony Manager:

    It provides access to telephony services as related subscriber information, such as phone numbers.

  3. View System:

    It builds the user interface by handling the views and layouts.

  4. Location manager:

    It finds the device’s geographic location.

Applications:

Android applications can be found at the topmost layer. At application layer we write our application to be installed on this layer only. Examples of applications are Games, Messages, Contacts etc.



My Personal Notes arrow_drop_up

Intern at geeksForgeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.