android stack

Android Architecture

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 level)
  2. Libraries and ART
  3. Applications Framework
  4. Applications (top level)android stack

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.

2-Libraries

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”]

  • dalvik.annotation
  • dalvik.bytecode
  • dalvik.system

[/su_box]

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”]

  • Java.net
  • Java.io

[/su_box]

Android 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”]

  • android.app
  • android.content
  • android.database
  • android.graphics
  • android.hardware
  • android.opengl
  • android.os
  • android.media
  • android.net
  • android.net.wifi
  • android.provider
  • android.text
  • android.util
  • android.view
  • android.widget
  • android.webkit

[/su_box]

Description of above mentioned libraries comes in next tutorial with details.

3-Application Framework

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.

4-Applications

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.

  1. Native Applications (built in apps like Home, Browser, contacts and phone etc)
  2. 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”]

  • Activities
  • Widgets
  • Services
  • 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”]

  • android.app.activity
  • android.widget.button

[/su_box]

Tutorial 2: Android Architecture ends and Next Lesson >> Coming Soon…

Similar Posts

Leave a Reply

Your email address will not be published.