Android 2.3 lets developers go native and the Nexus S is Google's second attempt at an open developer-oriented phone. What's in it for us in addition to having to target another OS version?
Google has taken the wraps off Android 2.3 (Gingerbread) and it should come as no surprise that it is evolution rather than revolutions. What is more surprising after the failure of their Nexus One development platform is that they have developed a new model in conjunction with Samsung - the Nexus S.
The new unlocked Google phone will cost around $500 or $200 with a contract. The Nexus S looks like a cross between the Nexus One and the Samsung Galaxy S - which it probably is. The new phone has a good specification - 1Ghz Hummingbird processor, 16GB of storage, AMOLED display and most of all Android 2.3. It is the open nature of the platform that matters most to developers and to have the latest version of the OS running without any carrier lock down or other obstructions is welcome.
The new OS has many UI refinements - better keyboard, power savings/management, better select/copy/paste, app control, VOIP/SIP, multiple cameras and so on. For the developer there are lots of new features. Perhaps the most important are the additions to allow native apps to access assets, without going through the JNI, window management, graphics, audio and so on - however the complete set of tools needed aren't going to be available until the start of 2011.
The new version of the NDK (Native Development Kit) allows you to code in C or C++ and run directly under the OS without the involvement of the VM. Currently this only supports ARMv5TE and ARMv7-A. Future releases will also support the x86 architecture. The NDK is available under Linux, Windows or Mac OS.
The SDK also includes some new features:
simplified debug builds
Integrated ProGuard so that you can obfuscate your code as part of the release build
Improved hierarchy viewer
A preview of the new easy to use UI builder - but Google to admit that this is work in progress.
If you are planning to be more innovative then new APIs are available for an increased range of sensors - gyro, rotation vector, acceleration vector, gravity, barometric pressure and of course multiple camera support.
The Dalivik VM also includes a new garbage collector and event handling which should make it faster and more responsive. The updated video drivers should also improve 3D.
Overall the improvements open up the new application types - what are you going to use a barometric pressure sensor for? They also make Android sound like an even more convincing games platform. This is clearly what Google has in mind - see the official video below.
Of course the only downside is the number of phones still running Android 1.6 and earlier. The Google Nexus S will be the first to run Android 2.3 but we will probably have to wait a long time before we can assume that it is the standard OS.
As programmers we often think that users are overly sensitive about their data. What could it hurt to allow the collection of location data, for example. Here is a short video from the ACLU that might [ ... ]