Because it is one of the most elementary concepts of Android development, I decided to back up a little, and take a quick walk through the Android Architecture.
If you wish to revise more basic concepts of Android, you can attend this free webinar.
Android Architecture: Layers in the Android Stack
The Android stack, as the folks over at Google call it, has a number of layers, and each layer groups together several programs. In this tutorial I’ll walk you through the various layers in Android stack and the functions they are responsible for.Following are the different layers in the Android stack:
- Linux Kernel Layer
- Native Layer
- Application Framework Layer
- Applications layer
Kernel Layer
At the bottom of the Android stack is the Linux Kernel. It never really interacts with the users and developers, but is at the heart of the whole system. Its importance stems from the fact that it provides the following functions in the Android system:
- Hardware Abstraction
- Memory Management Programs
- Security Settings
- Power Management Software
- Other Hardware Drivers (Drivers are programs that control hardware devices.)
- Support for Shared Libraries
- Network Stack
Here is a Table highlighting the different Kernel versions.
The Android system uses a binder framework for its Inter-Process Communication (IPC) mechanism. The binder framework was originally developed as OpenBinder and was used for IPC in BeOS.
Native Libraries Layer
The next layer in the Android architecture includes Android’s native libraries. Libraries carry a set of instructions to guide the device in handling different types of data. For instance, the playback and recording of various audio and video formats is guided by the Media Framework Library.
Open Source Libraries:
- Surface Manager: composing windows on the screen
- SGL: 2D Graphics
- Open GL|ES: 3D Library
- Media Framework: Supports playbacks and recording of various audio, video and picture formats.
- Free Type: Font Rendering
- WebKit: Browser Engine
- libc (System C libraries)
- SQLite
- Open SSL
What is Dalvik VM?
Dalvik is open-source software. Dan Bornstein, who named it after the fishing village of Dalvík in Eyjafjörður, Iceland, where some of his ancestors lived, originally wrote Dalvic VM. It is the software responsible for running apps on Android devices.- It is a Register based Virtual Machine.
- It is optimized for low memory requirements.
- It has been designed to allow multiple VM instances to run at once.
- Relies on the underlying OS for process isolation, memory management and threading support.
- Operates on DEX files.
Application Framework Layer
Our applications directly interact with these blocks of the Android architecture. These programs manage the basic functions of phone like resource management, voice call management etc.
Important blocks of Application Framework:
- Activity Manager: Manages the activity life cycle of applications. To understand the Activity component in Android in detail
- Content Providers: Manage the data sharing between applications. Our Post on Content Provider component describes this in greater detail
- 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
Application Layer
The applications are at the topmost layer of the Android stack. An average user of the Android device would mostly interact with this layer (for basic functions, such as making phone calls, accessing the Web browser etc.). The layers further down are accessed mostly by developers, programmers and the likes.
Several standard applications come installed with every device, such as:
- SMS client app
- Dialer
- Web browser
- Contact manager
Happy Learning!
(Following resources were used in creating this Android Tutorial: developer.android.com.
Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
ReplyDeleteiosh course in chennai
This blog shows that you have a great career as a content writer.
ReplyDeleteJAVA Training in Chennai
Java training institute in chennai
Java Training
Selenium Training in Chennai
Selenium Course in Chennai
Hadoop Training in Chennai
Selenium Training
Big Data Training in Chennai
I feel happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
ReplyDeleteData science Course Training in Chennai |Best Data Science Training Institute in Chennai
RPA Course Training in Chennai |Best RPA Training Institute in Chennai
AWS Course Training in Chennai |Best AWS Training Institute in Chennai