There is a good chance the Android operating system for mobile devices can intrude far into the area currently occupied by operating systems such as Windows on the desktop. For one thing, it is service oriented. Moreover, as people spend more time online with Android they will push for more rapid release cycles with ever increasing capabilities. Android gives developers the tools to fill these needs.
Android is an open-source operating system/platform intended for mobile devices and sponsored by Google. It features applications written in Java with security precautions designed to allow a variety of different applications to live on the same device without exposing user information. Android is also notable for being designed to support an ever increasing variety of hardware functions. The operating system presents a very favorable environment for both hardware and application developers because it is open source and Android's low level kernel is based on Linux.
When I first looked into developing for the Android platform a year ago, the version I downloaded was 1.5r2. New versions have followed much more frequently than any other technology I can recall, which might lead you to wonder, how can any developer keep up?
The following table of versions shows the API number associated with each. Where rev (revision) numbers are shown, that is the July 2010 SDK revision number. The API number is essential because in Android application packages, the developer must specify the API number it is designed for. API 5 and API 6 are no longer updated because everybody using version 2 should be moved to 2.1 (which uses API 7)but APIs 3 and 4 continue to be updated as various improvements in software development kit (SDK) tools are introduced and bugs are fixed.
One indicator of the population of devices using each version is provided by statistics collected at the Android Market. The following table includes statistics from the first two weeks of July, 2010. Clearly, the older phones still constitute a significant market. Practically all products running versions 2.0 and 2.0.1 were rapidly upgraded to 2.1. I was surprised to see how large the 2.1 market is already.
|1.5 API 3 rev 4||Apr/2009||May/2010||18.9%|
|1.6 API 4 rev 3||Sep/2009||May/2010||22.1%|
|2.0 API 5||Oct/09||to 2.0.1||trace|
|2.0.1 API 6||Dec/09||to 2.1||trace|
|2.1 API 7 rev 2||Jan/2010||May/2010||55.5%|
|2.2 API 8 rev 2||May/2010||Jul/2010||3.3%%|
API version and Features
Fortunately, it is not the underlying language which is being changed in this rapid sequence of releases. Instead, Java classes are being added in order to cope with the new hardware support and to support the new built in applications with new capabilities. Only a few user interface related APIs have changed and few classes have been deprecated. Generally, applications written for version 1.5 should be forward compatible with the latest 2.2.
Here are the most significant changes from version 1.1 (February 2009):
- 1.5 API 3 Multiple improvments to user interface design tools, media handling for audio and video recording and playback. Support for speech recognition. SDK has emulators for screens up to 320x480.
- 1.6 API 4 Support for multiple screen sizes. Graphics improvements include animation and support for recognizing gestures. Synthesis of speech from text. Short Message service (SMS) support. SDK has emulators for screens up to 480x854 pixels.
- 2.0 API 5 This major upgrade adds many new standard applications and features. Able to track up to three simultaneous screen touches. Support for Microsoft Exchange email and contacts with an API for sharing of contact information between applications. Graphics performance and virtual keyboard support are improved. Support for Bluetooth connectivity.
- 2.0.1 API 6 Mainly bug fixes to version 2.0.
- 2.1 API 7 Mainly bug fixes to version 2.0.1.
- Version 3 - We see a variety of speculation on the next major version, expected in the 4th quarter, but there has been no official announcement.
The Developer Ecosystem
The Android SDK package you download from
the developer website only contains a fraction of the total SDK environment. The most important part of the initial download is the SDK Manager which lets you update the tools for exactly the components you need. For example, if you only expect to develop for the 2.1 (API 7) edition, that's all you need to download. Support material for each API is saved in its own directory structure so if you decide to later add version 2.2, it will not interfere with the 2.1 tools and documentation.
Given the rapid changes in release numbers, keeping documentation up to date is vital. Google appears to be doing a very good job of this, both in the documentation downloadable in updates, the online cross-referenced pages and developer blogs.