The Android operating system is a state-of-the-art platform for mobile devices unveiled to the general public on November 5, 2007. Originally designed by Android Inc., it was purchased by Google late 2005 and subsequently by the Open Handset Alliance. The Android operating system allows developers to create Java managed code that can control mobile devices using Google-developed Java libraries. Its OS software stack is made up of applications running on an object-oriented framework residing on top of a Dalvik virtual machine, a VM designed by Dan Bornstein that runs .dex-based applications designed for memory- and processor-constrained systems typical in the mobile device world. The Android operating system consists of 12 millions lines of source code. Although it is predominantly Java-based, Android makes use of many C-based libraries like the OpenCore, OpenGL, SQLite database system, WebKit, and SGL.
One of the key features of the Android operating system is that it was designed with the goal of advancing open standards for mobile devices in mind, with its source being freely available since October 2008 when Google opened it under an Apache License allowing vendors to add proprietary extension without submitting them back to the open source community. As such, unit sales for Android OS-based smartphones ranked second among all smartphones sold in the United States during first quarter 2010.
The Android OS features a multitude of features one would come to expect in a modern mobile device operating system. It is adaptable to both small and large alike, supporting large VGA, 2D and 3D graphics based on OpenGL ES 2.0 specs as well as smaller layouts found on traditional smartphones. Its available web browser is based on WebKit’s layout engine and Google Chrome’s V8 JavaScript engine. All major connectivity technologies such as Bluetooth, Wi-Fi, GSM/EDGE, CDMA, IDEN, EV-DO, UMTS, and WiMAX are fully supported. SMS and MMS are also both available with threaded text messaging. Android supports SQLite for lightweight data storage solutions. It further supports practically all popular media formats currently in use. With regards to hardware, Android can use still and video cameras, touchscreens, GPS location/navigation devices, magnetometers, accelerometers, and accelerated 2D/3D graphics. Although originally disabled in earlier releases, native multi-touch capabilities are now available for the Nexus One and Motorola Droid smartphones.
Developers can make use of either the Eclipse IDE (recommended) or any standard text editor (i.e., EMACS). The development environment includes an SDK, debugging tools, profiling tools, memory inspectors, and a device emulator for simulating application execution on one’s PC. All of these tools are available on Windows, Mac, and Linux desktops.