The long awaited Gingerbread release is out, along with a plethora of user and developer oriented features that will delight and amaze. For me, I'm just excited to have another excuse to use the word "plethora" in a sentence. I mean, really, how often does that happen?
Before getting to the good stuff, I have a couple of disclaimers regarding Gingerbread that you should be aware of:
- You can't have it. Not on a real phone, until December 16th when you can shell out $529 for a new Nexus S phone ($199 with 2 year servitude, er, I mean contract). There is no word on when or if Gingerbread will be available on other phones. Even the Nexus One, which up until now has always gotten updates before any other phone, won't be getting Gingerbread for "a few weeks". Most users don't even have 2.2 yet.
- It's not Android 3.0. Gingerbread is a minor release, which will be replaced next year with the big 3.0 Honeycomb release. Andy Rubin, the father of Android, demonstrated an Android tablet from Motorola yesterday, and it was running Honeycomb, not Gingerbread. I'm sure we'll see new tablets with Gingerbread just like we saw them with FroYo, but if you're looking for the mythical Tablet-optimized version of Android, this is not the droid you're looking for.
There are dozens of changes in 2.3 but I'm just going to pick 10 that stick out as being especially useful or game changing. As usual, I'll break this up into 5 user features and 5 developer features. First up: goodies for users.
- New on-screen keyboard. The standard keyboard has been greatly improved in Android 2.3, with faster input and more intuitive typing. Even cut-and-paste got a makeover.
- Streamlined user interface. New color schemes and various UI changes and polish make Android more consistent and simpler to use.
- Application and power management. Android 2.3 provides better insight into what is running in the background, how much memory and CPU time it is using, and even lets you kill misbehaving apps. Yes, after months of telling us we don't need a task killer, they give us a task killer. Enjoy your chuckle, iPhone fans.
- SIP Internet calling. Voice over IP is integrated directly into Android 2.3. Unfortunately you'll have to get a SIP account from a third party, and the ability might be curtailed on some carriers.
- Download management. All your downloads from your browser, email, and other apps, can now be viewed and controlled from one place.
- Native development. The ability to write Android programs or parts of programs isn't new but in Android 2.3 it gets a huge boost with Release 5 of the Native Development Kit (NDK). For example you can now receive input and sensor events, produce sound, manipulate 3D graphics contexts, access assets and storage, and more all from native code. They even added a NativeActivity class that lets you write your lifecycle callbacks in native code.
- JVM speed. For Java developers, 2.3 adds a number of speedups, most notably a concurrent garbage collector. According to Google garbage collection pauses will be under 3ms, which is small enough not to be noticed in a 30fps or even 60fps game. New JIT optimizations make Dalvik code run even faster than before.
- Faster event distribution. In previous versions of Android, just holding your finger down on the screen would cause whatever program was running to slow down, sometimes dramatically. This is all fixed in Android 2.3.
- Multimedia. Rich audio effects like reverb and headphone virtualization can be applied to local tracks or globally across multiple tracks. The platform adds built-in support for VP8/WebM video, plus AAC and AMR wideband encoding. Also, there are now official APIs for accessing the front and rear cameras. There is some limited support for extra large (tablet and TV) displays.
- Near Field Communications (NFC). In Japan, NFC is a Big Deal, and the hope is that it will catch on in the rest of the world too. It has all kinds of uses, for example with the right hardware and software you could use your phone as a replacement for your credit card to make point of sale purchases. Using the NFC API apps can respond to NFC tags embedded in stockers, posters, and even other devices.
For a full list of changes see the Android 2.3 Platform Highlights and the API Differences Report. According to statistics on the API Differences page, Android 2.3 is 2.93% different compared to Android 2.2, with 764 additions, 263 changes, and 40 removals. Android 2.3 will be available later this month on the Nexus S phone from Samsung, and from other vendors next year.
Keep watching the Platform Versions Dashboard to see what kind of market share this new Android version achieves over time. I advise all developers to test their apps on the 2.3 emulator now to make sure they run, but keep in mind it will be a while before there are enough 2.3 devices in the field for it to make a viable target.
Shameless plug alert: Counting 2.3, there are now 5 different versions of Android in active use, starting with version 1.5. Making your apps compatible with all these versions is a major focus of my book, Hello, Android. Free examples with source code are included.