Android development

Android OS Architecture

Android OS Architecture

An Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram. The components of an Android operating system are

  • Linux kernel
  • Libraries
  • Android Runtime
  • Application Framework
  • Applications

Linux kernel

A bottom layer of Android operating system is a Linux kernel. Android is built on top of Linux 2.6 Kernel and few architectural changes made by Google. Linux Kernel provides the basic system functions such as process management, memory management and device management like camera, keypad, display etc. It also provides an array of device drivers which makes interfacing the android with peripheral hardware easy.

Libraries

On the top of the Linux Kernel, another layer called libraries is present. It provides the different libraries useful for the well functioning of the Android operating system. Libraries are java libraries build specifically for the Android operating system. Some of the important libraries are

Library Explanation
SQLite This library is used to access data published by content providers and includes SQLite database management classes
SSL This is used to provide internet security
OpenGL OpenGL is used to provide Java interface to the OpenGL/ES 3D graphics rendering API.
Media framework It is used to provides different media codecs which allow the recording and playback of different media formats
WebKit It is the browser engine used to display internet content or HTML content
Web browser Based on the open-source WebKit layout engine, coupled with Chrome’s V8 JavaScript engine supporting HTML5 and CSS3.

Android Runtime

It is the third component of the Android architecture and placed in the second layer from the bottom. It provides the most important part of android called Dalvik Virtual Machine. Dalvik Virtual Machine is similar to Java Virtual Machine (JVM) but the only difference is that it is designed and optimized for Android. Dalvik Virtual machine uses the core functions of Linux such as memory management and multi-threading and enables each android app to run its own process.

The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.

Application framework

It is the fourth component in android operating system stack. Android applications directly interact with an application framework. Application framework manages the basic functions of the android device such as resource management, voice call management etc. Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications. The important blocks of the application framework are

AP Block Explanation
Activity Manager Used to manage complete activity life cycle of applications
Content Providers Used to manage the data sharing between two applications
Telephony Manager Used to manages all voice calls
Location Manager Used to manage the Locations obtained using GPS or cell tower
Resource Manager Used to manage the different types of resources used in an android app

Applications

Android application is the fifth competent of Android OS and situated at the top layer. Applications are developed to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games, etc.