Android History and Android OS Architecture

History of Android (Updated 09/16/2013)

Android is a Linux-based open source software stack  that comes along with operating system , middleware, native mobile applications, along with set of API libraries for building third party applications. It was designed primarily for touchscreen mobile devices such as smartphones, tablets and now its focus has spread wider across other embedded systems. Initially developed by Android Inc.,(founded in 2003 and is based in Palo Alto, California) which operated as subsidiary of Google and later purchased by Google in 2005.
Android was publicily announced in 2007 and first phone was sold on October 2008. Thats a short information about Android and its history.

Android Operating System

               Android is free to use, improvable, and designed with multiple hardware implementations, it is open source and the code was released under Apache license. It is a software bunch comprising not only operating system but also middleware and key applications. It is one of the most widely used OS. Android has a large community for developing their own appications, written primarily on customized Java Programming language. Anyone with basic knowledge in java can start developing Android applications. Android OS version varies from 1.0 to 4.2 Jellybean (July 2012). Notice carefully you can see all the OS names are desserts, but still the naming reason is not released by Google and the names are alphabetically ordered, starting from 1.5 Cupcake to 4.2 Jellybean (C-J) .

Kernel in android OS is Linux, it makes use of Linux kernel 2.6 and 3.x(Android 4.0 onwards),  so Android is a linux based operating system. Android comes along with open-source API libraries for application development including SQLite, Webkit, OpenGL and a media manager. Embedded within the libraries layer is the Android runtime which contains the Dalvik virtual machine (DVM), which powers the applications. Its also packed with key native applications like, sms application, email client, music player, 

web browser, camera application etc.,.

                DVM is  a virtual machine which is comparable to Java Virtual Machine(JVM).  While Google has selected Java as the language for developing Android applications, it has chosen to abandon both JME and the JVM in favor of an alternative deployment target, the Dalvik virtual machine. The DVM operates on bytecodes that are transformed from the Java Class files compiled by a Java compiler into another class file format called the .dex format using a dx tool which is included in the Android SDK (Software Development Kit).The primary goal of the DVM which is creation of platform neutral dex files. The processes of the DVM are typically optimized for the low memory requirements needed for development and implementation of applications for the mobile phone platform. It is designed to allow multiple VM instances to run at once.

Android OS Architecture

Android OS consists of four main layers kernel, libraries, applications framework and applications.

Kernel Layer

The whole Android OS is built on top of the Linux 2.6 Kernel with some further   architectural changes made by Google.  It is this Linux that interacts with the hardware and contains all the essential hardware drivers. Linux was chosen since it has a proven track record in desktop systems and in many cases doesn’t require drivers to be rewritten. Linux provides such things as virtual memory, networking, drivers, and power management. 

Native libraries layer

The native libraries layer provides Android with the capabilities for its core features. Android is shipped with SGL which acts as the primary 2D graphics renderer. Its counterpart is OpenGL ES which provides 3D graphics support. Android comes packed with SQLite which takes care of most data storage. The WebKit web rendering engine is also shipped with Android and has been tailored to render web pages for smaller screen sizes. Dalvik virtual machine which is a part of this layer. The Dalvik virtual machine is a bytecode interpreter which is highly optimized for executing on the mobile platform. The bytecodes are converted Java binaries that are very quick and efficient to run on smaller processors. The core libraries are written in Java and provide much of the core classes which would normally be available in a Java virtual machine.

 Applications framework Layer

The applications framework provides all of the major APIs that the applications will use including things like sharing data, accessing the telephony system, and receiving notifications. This layer and the layer above it are written completely in Java. 

Applications layer

This is the top layer in Android architecture. This layer contains software written by the Android team as well as any third-party software that is installed on the device.Even the most core features such as the phone and the contacts application reside in this layer. Any third party developer can access this layer, as an effect of which any events of core android apps can be handled by third party applications(like phone ringing).

       Android provides the services expected in a modern operating system such as virtual memory,multiprogramming, and threads all on a mobile platform. Many of Android’s services are a result of including the Linux kernel. As well Android team has added the telephony stack.



Post a Comment