Android is the first fully customizable mobile platform, It is open source, licenced under Apache 2.0, developed by Google and based on Linux 2.6.24 Kernel. Android offers complete software stack for mobile devices, bundled with an operating system, application framework and key applications.
Linux Kernel
The Android OS stack has key component, kernel. The kernel acts as an abstraction layer between the hardware and the software stack. Android’s Kernel is based on Linux version 2.6 and provides set of core services like memory management, process management, power management and a rich hardware drivers support that control various hardware devices like camera, accelometer, Bluetooth, USB and many more. Android also features permission based security model.
Android Libraries and DVM
The next level includes a set of C/C++ libraries used by various components of the Android system. These libraries are exposed to the developers through Android application framework. All the applications are for Android are written using Java programming language. Some of the common libraries are described below:
- Media Libraries – based on PacketVideo’s OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
- 3D libraries – an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer.
- SQLite – a powerful and lightweight relational database engine available to all applications.
- LibWebCore – a modern web browser engine which powers both the Android browser and an embeddable web view.
Here in this layer Android runtime is also present and this includes a set of core libraries that facilating the application development easier.
The core libraries also constitute Dalvik Virtual Machine. DVM is responsible for running the compiled java classes. The java files are compiled into Dalvik executables (.dex) format and optimised for minimum memory footprint. Every application runs with its own instance of DVM and in its own process. This unified architecture of DVM provides the features like independent execution of applications, If one application crashes then it does not effect other. Further, is register based and has capibility to run multiple VMs efficiently. The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
Application Framework
Then there comes application framework, providing the developers have full access to the same framework APIs used by the core applications. This simplify the reuse of components, allowing them to take advantage of Android’s processing capabilities and support features when building an Android application. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.
Application Framework
Then there comes application framework, providing the developers have full access to the same framework APIs used by the core applications. This simplify the reuse of components, allowing them to take advantage of Android’s processing capabilities and support features when building an Android application. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.
Application Framework has set of services and systems,, making the ease of application development :
- A rich and extensible set of Views that can be used to build an application, with grids, text boxes, buttons, and even an embeddable web browser.
- Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data.
- A Resource Manager, providing access to non-code resources such as localized strings, graphics, bitmaps and layout files.
- A Notification Manager that enables all applications to display custom alerts in the status bar.
Application Stack
At the top of the stack are the applications themselves. Android includes a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. This is the top most layer available to end users to digg the phone capabilities. Only programmers, application developers and hardware manufacturers access the other layers further down the stack.
References