Monday, August 5, 2013

What is Android ?

  • Android is a mobile operating system created by Google that has the capability of being edited by any open-source developer.
  • Think of it as the underlying software that instructs your device what to do, much like how the Windows operating system powers laptop and desktop computers.

  • However , Android is not just for mobile phones: it is an embedded operating system suitable for any device with a display. Typical applications include medical equipment, test equipment and multimedia consumer devices. 

  • Unlike closed systems that depend on one company for innovative new ideas, Android is “open to the public” – people can edit, add, and personalize Android, and Android takes on popular, useful ideas in future versions.
  • Android is created with various layers, including Linux Kernel, the Android native libraries, the Android runtime, the Application Framework layer, and the Applications layer.
  • Android code is written internally in C/C++, but developers can access them through Java interfaces.
  • Developers most often add or edit Android code in the Applications layer.

  • Android is an open source operating system — a large community of companies and developers maintain it and contribute toward developing newer versions of it. 
  • This all takes place under the auspices of Google, which bought the company (Android, Inc.) that first developed the Android OS.

  • Unlike Apple’s iOS operating system for mobile devices, the Android operating system’s ongoing development isn’t hidden behind lock and key.

  • In fact, about 80 companies are members of the group — the Open Handset Alliance — that contribute towards the further development of the Android operating system.
  • All of this openness allows for innovation from many different sources. 
  • This also allows for many different Android devices in all shapes and sizes, which creates a compatibility problem for the app developers. 
  • The compatibility issue with Android devices has even got a name: fragmentation.
  • Manufacturers can modify the Android operating system as they see fit for their devices. 
  • This allows them a way to differentiate their devices from their competitors’ devices, by adding unique features. 
  • This also results in different customized versions of Android running on different devices.

An example of this is that mobile phone maker HTC inserts its own HTC Sense user interface into many of its Android phones, whereas Samsung puts its own TouchWiz user interface into its Android devices. 

The following figure shows a couple of screens from the Samsung Epic 4G Android phone.

The Samsung Epic 4G Android phone’s home page (left) and one of the app pages (right).
The Samsung Epic 4G Android phone’s home page (left) and one of the app pages (right).


Architecture of Android

In order to understand how Android works, take a look at given below Figure, which shows the various layers that make up the Android operating system (OS).
The Android OS has four to five layers !

 Linux kernel            

  • ·       This is the kernel on which Android is based.
  • ·       This layer contains all the low-level device drivers for the various hardware components of an Android device.


  • ·       These contain all the code that provides the main features of an Android OS.
  • ·       For example, the SQLite library provides database support so that an application can use it for data storage.
  • ·       The WebKit library provides functionalities for web browsing.

 Android runtime          —

  • ·       At the same layer as the libraries, the Android runtime provides a set of core libraries that enable developers to write Android apps using the Java programming language.
  • ·       The Android runtime also includes the Dalvik virtual machine, which enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine (Android applications are compiled into the Dalvik executables).
  • ·       Dalvik is a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU.

Application framework  

  • ·       Exposes the various capabilities of the Android OS to application developers so that they can make use of them in their applications.


  • ·       At this top layer, you will find applications that ship with the Android device (such as Phone, Contacts, Browser, etc.), as well as applications that you download and install from the Android Market.
  • ·       Any applications that you write are located at this layer.


Blog Archive