In my previous blogs, I explained a few concepts. The topics are Android version updates, expected features of Android and three more blogs are there. If anyone wants that information go to the previous blogs. But, in those blogs Architecture of Android are not discussed. That is the reason today I explained the Architecture of Android. This is the main concept of Android development. Everyone should know this concept before going into development. To understand this concept, the developers feel simple while they are in progress. I decided to explain the Architecture of Android.
If you want more basics on Android then Join Android Online Training Bangalore.
Android is the most used operating system. And it is the top position in selling the mobile operating systems. It is an open source and anybody can use to build applications in our own way. For smartphones and tablets, it is a Linux-based operating system.
Architecture of Android
When peoples are going to know the development of Android, it’s better to know the Architecture of Android. By knowing this concept, we can understand the application frameworks better. Finally, we can design the applications in the better way. Firstly know the Architecture of Android. It is based on the Linux and it is similar to Linux. It is a stack of software components and those are divided into four layers. The following explains the basic Architecture of Android.
Different layers in Android stack
Application Framework Layer
Linux Kernel Layer
Application layer: This is the topmost layer of the architecture. The most number of users are interacting with this layer. Take a look at some example (making phone calls, basic functions, accessing the web browser etc..). There are several standard devices come installed with each device,
SMS client app
Application Framework Layer: By using these program we can manage the function easily like voice call management, resource management.
Important blocks of Applications Framework
Activity Manager: It manages the application lifecycle and has several states. In this activity manager, applications have several functions to do with their own life cycle. Apart from these, it has one main activity is it starts the applications when it is launch.
Content Provider: It means, applications share data between them when they required. It shares data from time to time one application to another application. This content provider allows giving the access to another application.
Telephony Manager: It can manage all voice calls.
Location Manager: This management, using cell tower or GPS.
Resource Manager: Suppose, our apps required external resources. This Resource Manager makes them available in a standardized way.
Native Layer: In Android architecture, the next layer is Native Layer. Android will run on devices with a small amount of memory and access to low power. Some basic libraries like the libc or libm are developed mainly for low power consumption. In Native layer, we have libraries. Those can carry the set of instructions to guide the device and manage different type of data. This Media Library is guided the audio and video recording format.
Open Sources Libraries
SGL: 2G Graphics
Open GL|ES: 3D Library
Free type: Font Rendering
libc (System C libraries)
What is Dalvik VM?
It is an open-source software and takes responsibility for running apps on Android devices. Dalvik VM requires low memory, we can run multiple instances at once. It operates on DEX files. The location is the same as the libraries layer. The Android runtime layer includes core Java libraries also. By using Java program android developers built their apps.
Linux Kernel Layer: The last layer in the Android stack is Linux Kernel Layer. This layer never interacts with developers and users, but it is the heart of the entire system. It processes following functions
Memory Management Programs
Power Management Software
Support for Shared libraries
I hope you clear the basics of Architecture of Android. Keep Learning..!
For more skills on Android, Join Android Online Course.
It’s good to have a basic knowledge of object-oriented programming languages like JAVA. But it is not mandatory. Trainers will train you if you do not have knowledge of it.