Welcome to 2nd tutorial Android Architecture in a series of android development. Before starting this article, I hope you have read the previous tutorial “What is Android OS ?”, So that you have basic concepts about Android OS.
What we will cover in this tutorial?
Android OS Architecture – Android OS Stack
An Android developer must be aware of Android Operating System Architecture and rest of platform. Android OS is a software that is stacked up into four layers as given below (1-bottom level to 4-top level).
1-Linux Kernel – Bottom Layer of Android OS
Linux Kernel is the root of android OS. One question arises here, why android OS is built upon Linux kernel? The answer is very simple ‘Linux kernel is highly optimized & is free open source software ’.Kernel basic functions includes memory management, power management and device management. For managing devices Linux kernel uses relevant device drivers.
Linux kernel starts itself with a set of drivers. These drivers directly interact or communicate with relevant mobile device (i.e android base Smartphone &Tablet) hardware’s. There are more than hundred device drivers available in a mobile device. These drivers are vendor delivered and must be compatible with current version of your android device. Below is the list of some famous and mostly used device drivers.
Audio drivers, Display driver, Camera driver, Wi-Fi driver, Flash driver, Keypad driver, Binder (IPC) driver etc.
Second layer of android OS is a set of libraries. This layer is further divided into two sections as:
- Android Run Time (ART)
- Core Libraries
Android RunTime (ART) – Dalvik Virtual Machine (DVM)
DVM known as Dalvik Virtual Machine was developed by Google Inc. DVM is more efficient than JVM (Java Virtual machine) because it manage and use memory efficiently plus it allow to run multiple instances within the resources constraint of the current android device. DVM is specially designed to convert android app java class code to a Dalvik executable .dex and .odex(optimized dalvik executable code) that is more than 50% less in size with respect to (JVM code) standard java byte code. (* Standard Java class files not always converted to .dex file using android SDK toll known as dx tool)
Android Core Libraries
Android core libraries are also known as Dalvik libraries and further divided into following three categories.
Dalvik Virtual Machine Specific Libraries
These are libraries used for directly interacting with DVM specific information’s. Unlikely android development programmers use these. Some of libraries are listed below.[su_box title=”DVM Specific Libraries”]
Java Interoperability Libraries
Mostly android apps are developed by Java programming language. The Standard JDE (Java development environment) contains an array of java classes those are mostly used for networking, string handling and file manipulations. Java interoperability libraries are[su_box title=”Java Interoperability Libraries”]
Android libraries are those java libraries performing specific facilitations in android development such as app interface building, database accessing and graphical drawing etc. A list of these android libraries available for android developers is given below.[su_box title=”Android Libraries”]
Description of above mentioned libraries comes in next tutorial with details.
From bottom up manner, this is the third layer in android architecture. Application Framework contains all the necessary components to run and manage android apps. This application framework includes following key management services:[su_box title=”Application Framework Key Services”]
- Activity manager
- Content providers
- Location manager
- Notification manager
- Window manager
- Resource manager
- Package manager
- Telephony manager [/su_box]
Details about each of the above service manager will be covered in upcoming lectures.
Finally, Applications layer is the upper most and last 4th layer in the stack of android OS architecture.
This apps layer contains two types of applications.
- Native Applications (built in apps like Home, Browser, contacts and phone etc)
- Third Party Applications (downloaded from Google play store and own developed)
We can add as many apps as we can in this android applications layer.
Android Applications Architecture
As an Android developer, you must be aware of android applications architecture. As we know that predominantly android apps are developed by Java Programming Language and each app made of components. There are four major components of an android application architecture.[su_box title=”Components of Apps Architecture”]
- Broadcast receivers[/su_box]
Android App Component Architecture
Each above mentioned component of apps are implemented as a java class. These java classes are included in android SDK and we can also include our own custom java class. Followings are some built in apps components classes:[su_box title=”Examples of Apps Components Classes”]
Tutorial 2: Android Architecture ends and Next Lesson >> Coming Soon…