Android: An Introduction (Official Website)
Android is a software stack for mobile devices that includes an Operating System, middle ware and key applications. Major components of Android Operating System are:
- Application Framework
- Android Runtime
- Linux Kernel
Application architecture is designed to simplify the reuse of components. Any applications can publish its capabilities and any other application can make use of those capabilities. Application Framework includes:
Views: Used to build an application including lists, grids, textboxes, buttons and even an embeddable web browser.
Content Providers: Enable applications to access data from the other Applications or to share their own data.
Resource Manager: Providing access to non code resources such as localised strings, graphics and layout files.
Notification Manager: Enables all applications to display custom alerts in the status bar.
Actitivty Manager: Manages the life cycle of applications and provides a common naivagation backstack
Every Android application runs in its own process, with its own instance of the Dalvik Virtual Machine. Dalvik has been written so that a device can run multiple VM’s efficiently. The Dalvik VM execute files in the Dalvik Executable (.dex) format which is optimised for minimal memory foot print.
Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack and driver model. The kernel also acts as as abstraction layer between the h/w and the rest of the s/w stack