Android Development

What is Android?

Android is an operating system based on Linux with a Java programming interface. It is an operating system for mobile devices such as smartphones and tablet computers.  It is developed by Open Handset Alliance (OHA) which is led by Google. That is it is officially guided by OHA. In reality Google leads the project.

OHA is a consortium (association) of several companies to develop open standards for mobile devices. Member companies include Google, HTC, Sony, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung Electronics, LG Electronics, T-Mobile, Nvidia, and Wind River Systems.  These are only few members of all the total members of OHA.

Initially Android Inc. was founded in United States by Andy Rubin, Rich Miner, Nick Sears and Chris White in the year 2003. Later on in the year 2005 Google acquired Android Inc. This acquisition made Android Inc. a wholly owned subsidiary of Google Inc.

Android was built from the ground up with the explicit goal to be the first open, complete, and free platform created specifically for mobile devices.

Android has been available as open source since October 2008. Google opened the entire source code under an Apache License. With the Apache License, vendors are free to add proprietary extensions without submitting those back to the open source community.

The Android Platform

With Android’s breadth of capabilities, it would be easy to confuse it with a desktop operating system. Android is a layered environment built upon a foundation of the Linux kernel, and it includes rich functions. The UI subsystem includes:

  • Windows
  • Views
  • Widgets for displaying common elements such as edit boxes, lists, and drop-down lists

Android includes an embeddable browser built upon WebKit, the same open source browser engine powering the iPhone’s Mobile Safari browser.

Android boasts a healthy array of connectivity options, including WiFi, Bluetooth, and wireless data over a cellular connection (for example, GPRS, EDGE, and 3G). A popular technique in Android applications is to link to Google Maps to display an address directly within an application. Support for location-based services (such as GPS) and accelerometers is also available in the Android software stack, though not all Android devices are equipped with the required hardware. There is also camera support.

Historically, two areas where mobile applications have struggled to keep pace with their desktop counterparts are graphics/media, and data storage methods. Android addresses the graphics challenge with built-in support for 2-D and 3-D graphics, including the OpenGL library. The data-storage burden is eased because the Android platform includes the popular open source SQLite database. Figure below shows a simplified view of the Android software layers.



Application architecture

 Android runs atop a Linux kernel. Android applications are written in the Java programming language, and they run within a virtual machine (VM). It is important to note that the VM is not a JVM as you might expect, but is the Dalvik Virtual Machine, an open source technology. Each Android application runs within an instance of the Dalvik VM, which in turn resides within a Linux-kernel managed process, as shown below.