The fact that hitherto dedicated devices such as mobile phones can now count themselves among other venerable general-computing platforms is great news for programmers. This new trend makes mobile devices accessible through general-purpose computing languages, which increases the range and market share for mobile applications.
The Android Platform embraces the idea of general-purpose computing for handheld devices. It is a comprehensive platform that features a Linux-based operating system stack for managing devices, memory, and processes. Android's libraries cover telephony, video, graphics, UI programming, and a number of other aspects of the device.
The Android SDK supports most of the Java Platform, Standard Edition (Java SE) except for the Abstract Window Toolkit (AWT) and Swing. In place of AWT and Swing, Android SDK has its own extensive modern UI framework. Because you're programming your applications in Java, you could expect that you need a Java Virtual Machine (JVM) that is responsible for interpreting the runtime Java byte code. A JVM typically provides the necessary optimization to help Java reach performance levels comparable to compiled languages such as C and C++. Android offers its own optimized JVM to run the compiled Java class files in order to counter the handheld device limitations such as memory, processor speed, and power. This virtual machine is called the Dalvik virtual machine.
The familiarity and simplicity of the Java programming language coupled with Android's extensive class library makes Android a compelling platform to write programs for.
Let us look at how Android arrived on the Mobile OS landscape. Mobile phones use a variety of operating systems such as Symbian OS, Microsoft's Windows Mobile, Mobile Linux, iPhone operating system (based on Mac OS X), Moblin (from Intel), and many other proprietary operating systems. So far no single operating system has become the de facto standard. The available APIs and environments for developing mobile applications are too restrictive and seem to fall behind when compared to desktop frameworks. This is where Google comes in. The Android platform promised openness, affordability, open source code, and a high-end development framework.
Google acquired the startup company Android Inc. in 2005 to start the development of the Android Platform The key players at Android Inc. included Andy Rubin, Rich Miner, Nick Sears, and Chris White.
In late 2007, a group of industry leaders came together around the Android Platform to form the Open Handset Alliance Some of the alliance's prominent members are as follows:
Part of the alliance's goal is to innovate rapidly and respond better to consumer needs, and its first key outcome was the Android Platform. Android was designed to serve the needs of mobile operators, handset manufacturers, and application developers. The members have committed to release significant intellectual property through the open source Apache License, Version 2.0.
The Android SDK was first issued as an 'early look' release in November 2007. In September 2008, T-Mobile announced the availability of T-Mobile G1, the first smartphone based on the Android platform. A few days after that, Google announced the availability of Android SDK Release Candidate 1.0. In October 2008, Google made the source code of the Android platform available under Apache's open source license.
When Android was released, one of its key architectural goals was to allow applications to interact with one another and reuse components from one another. This reuse not only applies to services, but also to data and the user interface (UI). As a result, the Android platform has a number of architectural features that keep this openness a reality.
In late 2008 Google released a handheld device called Android Dev Phone 1 that was capable of running Android applications without being tied to any cell phone provider network. The goal of this device (at an approximate cost of $400.00) was to allow developers to experiment with a real device that could run the Android OS without any contracts. At around the same time, Google also released a bug fix, version 1.1 of the OS, that is solely based on version 1.0. In releases 1.0 and 1.1 Android did not support soft keyboards, requiring the devices to carry physical keys. Android fixed this issue by releasing the 1.5 SDK in April 2009, along with a number of other features, such as advanced media-recording capabilities, widgets, and live folders.
In September 2009 came release 1.6 of the Android OS and, within a month, Android 2.0 followed, facilitating a flood of Android devices in time for the 2009 Christmas season.