What is it?
T-Mobile's G1 is the first commercially available mobile phone to be based on the Google/Open Handset Alliance Android software platform and operating system. At least one more is promised before the end of the year, and many more have reached prototype stage.
Google has come in for much criticism during the development of Android. Described as open source, much of the platform is still proprietary, although it's promised that all will eventually be covered by the Apache and GPL licences. The use of the open source Apache Harmony Java implementation rather than Java ME or SE could mean compatibility issues between Android and other mobile phone software, and in the words of one developer, "the net result seems reinvention of a lot of wheels". Others point out that this makes a mockery of Java's "write once, run anywhere" promise, and say Android is going to create more problems for developers than it solves for Google.
Google antagonised the developer community further by keeping them in the dark about Android developments, and then releasing version 0.9 of the SDK privately to the 50 winners of its Android development challenge. Many people who had committed enthusiastically to Android development threatened to desert to other platforms no doubt some actually did.
Where did it originate?
Google took over Android Inc, a startup specialising in mobile phone software, in 2005, and put the team to work on a Linux-based mobile phone operating system. Android was announced late in 2007, together with the formation of the Open Handset Alliance.
What's it for?
Android uses Linux version 2.6 for core system services such as security, memory and process management, network stack and driver model. The Linux kernel also acts as an abstraction layer between the hardware and the rest of the software stack. The Dalvik Virtual machine, developed by Google engineers, uses Java syntax but compiles it to its own non-Java bytecode, and uses Apache Harmony's rather than Sun's implementation of the Java SE class library.
The only development language supported so far is Java. There is an Android Development Tools plug-in for the Eclipse IDE. Android uses the WebKit browser application framework and the SQLite relational database.
According to Google, "Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components any application can publish its capabilities and any other application may then make use of those capabilities... This same mechanism allows components to be replaced by the user."
How difficult is it to master?
Android makes use of existing Java development skills using Eclipse and Sun's Java Development Kit. It's not yet clear how much Google's departure from Java standards will affect developers - except that applications written for Android won't necessary run unmodified on other mobile platforms.
Where is it used?
The Open Handset Alliance includes China Mobile Communications, NTT DoCoMo, T-Mobile, Telecom Italia, Telefónica, Intel and NVIDIA, HTC, LG Electronics, Motorola, Samsung, eBay and Wind River.
What systems does it run on?
The Android SDK runs on Linux, Mac OSX, Windows XP and Vista.
Rates of pay
Android is already beginning to appear in the portfolio of skills employers look for in mobile software developers, alongside Symbian, Windows Mobile, Palm, Blackberry and iPhone. You can expect to earn £25,000 to £45,000, depending on sector and experience.
Download the Android SDK and find documentation, developer's guides and sample code on http://code.google.com/android/documentation.html
This was first published in September 2008