The Android OS is roughly divided into five sections in four main layers:
➤ Linux kernel—This is the kernel on which Android is based. This layer contains all the low-level device drivers for the various hardware components of an Android device.
➤ Libraries—These contain the code that provides the main features of an Android OS. For example, the SQLite library provides database support so that an application can use it for data storage. The WebKit library provides functionalities for web browsing.
➤ Android runtime—The Android runtime is located in the same layer with the libraries and provides a set of core libraries that enable developers to write Android apps using the Java programming language. The Android runtime also includes the Dalvik virtual machine, which enables every Android application to run in its own process, with its own instance
of the Dalvik virtual machine. (Android applications are compiled into Dalvik executables). Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU power.
➤ Application framework—The application framework exposes the various capabilities of the Android OS to application developers so that they can make use of them in their applications.
➤ Applications—At this top layer are the applications that ship with the Android device (such as Phone, Contacts, Browser, and so on), as well as applications that you download and install from the Android Market. Any applications that you write are located at this layer.