Architecture of Android
The main components of the Android architecture:
Architecture of Android:
1. Linux Kernal
2. Native Libraries
4. Application Framework
These are applications written in Java language and they run within a virtual machine (VM) a Dalvik Virtual Machine, an open source technology. Each Android application runs within an instance of the Dalvik VM, which in turn resides within a Linux-kernel managed process. Some of basic applications includes an calendar, email client, SMS program, maps, making phone calls, accessing the Web browser, accessing your contacts list and others.
2. Application Framework:
This is the skeleton or framework which all android developers has to follow. The developers can access all framework APIs an manage phone’s basic functions like resource allocation, switching between processes or programs, telephone applications, and keeping track of the phone’s physical location.
The architecture is well designed to simplify the reuse of components. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.
This layer consists of Android libraries written in C, C++, and used by various system. These libraries tells the device how to handle different kinds of data and are exposed to Android developers via Android Application framework. Some of these libraries includes media , graphics, 3d,SQLite,web browser library etc.
The Android runtime layer which includes set of core java libraries and DVM (Dalvik Virtual Machine) is also located in same layer.
4. Android Runtime:
This layer includes set of base libraries that are required for java libraries. Every Android application gets its own instance of Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently and it executes files in executable (.Dex) optimized for minimum memory.
5. Kernel – Linux:
This layer includes Android’s memory management programs, security settings, power management software and several drivers for hardware, file system access, networking and inter-process-communication. The kernel also acts as an abstraction layer between hardware and the rest of the software stack.