Android system architecture

Linux Kernel

Linux kernel provides an abstraction hardware layer for an Android. This allows an Android to be ported into variety of different devices. Furthermore the linux kernel is used for android’s memory management, process management, netwoking and other underlined operating systems services.

Native Libraries

These shared libraries are pre-installed on a android device by each vendor. They are written in C/C++ language and allow 3D and 2D graphics, window manager, all sorts audio video formats, Sqllite database and etc.

Android Runtime

This layer includes Dalvik Virtual machine code and core Java Libraries.

Application Framework

Android Application framework is a high-level layer to provide a developer with a space for a new Android applications development.

Applications and Widgets

This is the highest level of the Android system architecture. End user android applications and widgets layer.

Android system architecture

Android system architecture

Figure 1.1 – Android system architecture