Table of Contents
Android
Android is an Operating system based on the Linux kernel, designed primarily for touchscreen mobile devices such as smart phones and tablet computers.
- Kernel type : Modified Linux (Monolithic)
- OS family : Unix like
- Default User Interface : Graphical (Multi touch)
- Initial release : 23 September 2008
- Latest release : 9 December 2013 (4.4 Kitkat)
Why Android ?
- Open source framework
- Simple usage of tools
- Availability of Apps
- Inbuilt support for the Flash.
- Great social networking integration
- Integrated Applications & Features
- Free to customize
- Better Notification System
- Updated user interface design
Android Architecture
Android Applications
Applications are the top layer in the Android architecture.
Several standard applications comes pre-installed with every device, such as:
- SMS client app
- Dialer
- Web browser
- Contact manager
Application framework
These are the blocks that our applications directly interact with.
Important blocks of Application framework are:
Activity Manager: Manages the activity life cycle of applications
Content Providers: Manage the data sharing between applications
Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
Location Manager: Location management, using GPS or cell tower
Resource Manager: Manage the various types of resources we use in our Application.
Native libraries and Android Runtime
Native Libraries enable the device to handle different types of data. These libraries are written in c or c++ language and are specific for a particular hardware.
Some of the important native libraries include:
- Surface Manager
- Media Framework
- SQLite
- Web Kit
- OpenGL
Android Runtime
Android Runtime consists of Dalvik Virtual machine and Core Java libraries.
Dalvik Virtual Machine
- Type of JVM which provides environment on which every android application runs
- Each Android application runs in its own process, with its own instance of the Dalvik VM.
- Dalvik has been written such that a device can run multiple VMs efficiently.
- .dex format is optimized for minimal memory footprint.
- Written such that a device can run multiple VMs efficiently
Core Java Libraries
- These are different from Java SE and Java ME libraries. However these libraries provides most of the functionalities defined in the Java SE libraries.
- Includes a set of C/C++ libraries used by components of the Android system.
- Exposed to developers through the Android application framework
- Providing most of the functionality available in the core libraries of the Java language
APIs
- Data Structures
- Utilities
- File Access
- Network Access
- Graphics
- Etc
Linux kernel
The basic layer is the Linux kernel. The whole Android OS is built on top of the Linux 2.6 Kernel with some further architectural changes made by Google.
- Contains all the essential hardware drivers
- Android uses the Linux for all its core functionality such as
- Memory management
- process management
- networking
- security settings