The latest version of Google's Android mobile operating system was announced at its IO 2010 event in San Francisco. Codenamed Froyo (continuing Android's dessert-themed naming scheme), Android 2.2 adds new features and improves performance — as well as providing a platform for Adobe's latest Flash Player.
Android 2.2 is, at heart, a point release. If you're using a 2.0 or 2.1 Android device already, you won't see many obvious differences when you upgrade — especially if you're using a device that's skinned with one of the third-party Android user interfaces like HTC's Sense or Motorola's MotoBLUR. Most of the changes are under the skin, with new settings and options for the OS's core applications.
With the decline of Windows Mobile, it's not surprising that Google has used the latest Android to add additional enterprise features. Building on Android 2.0's Exchange ActiveSync (EAS) support, Android 2.2 now adds support for a second EAS end-point. This allows users to work with an individual account and a role or group account (or to use an Exchange account alongside another of the increasing number of mail services that use EAS). Android now auto-detects Exchange settings — for Exchange 2007 and above — and also allows you to use any arbitrary SSL certificate, finally letting Android work with self-certified Exchange installs without the complexity of certificate distribution and installation. Once connected, Android gets access to the Exchange GAL for address lookups, and can also handle Exchange calendars without requiring third-party application support.
Google has also added support for several more EAS-managed device policies, including remote wipe and password strength. However, it still doesn't support the ability to force hardware encryption policies, which will hinder Android adoption in organisations that deal with sensitive information. Exchange isn't Android's only management option. Android 2.2 includes a series of new management APIs, as well as new backup tools. These are intended for use by third-party device management tools, so we can expect to see Android rapidly becoming a first-class enterprise citizen.
Tweaks and browsers upgrades
Some of the new features appear trivial at first, but then turn out to be really rather useful — like the new home-screen shortcuts that give you quick access to the phone, the browser and application launcher from every one of the many home-screen panels. Others, like the ability to use the phone (depending on your operator and the phone hardware) as a 3G-connected Wi-Fi hotspot solve long-standing problems for mobile workers.
One of Android 2.2's more interesting features is the ability to turn your phone into a 3G-connected Wi-Fi hotspot for as many other devices as you like.
Android's WebKit-based browser gets some improvements, many of which are related to its support for Adobe's Flash Player. In the Android 2.1 browser you can turn plugins on or off; in the 2.2 browser that option moves to the Advanced Configuration section. You also get an 'On demand' option that lets you choose when you load a page that asks for a plugin. The privacy and security settings are also reorganised, so that the options to remember and clear passwords, or to turn location on and off, and to wipe location access for web sites are now side by side rather than in separate sections. That makes them a little easier to find, but otherwise it seems to be just a cosmetic change.
Although Google touted Android 2.2's ability for applications to install to SD cards (and run from them), you're unlikely to find any applications that actually have that option yet. That's because it needs to be enabled on an application-by-application basis by developers, and will have to wait for apps to be updated to the new Android 2.2 SDK.
Speeding it all up
Performance is increasingly important for mobile devices. The current generation of high-end hardware is running on 1GHz ARM processors, with at least 512MB of RAM. With specifications like that, users expect PC-like performance — even over 3G networks. As all Android applications are written in Java and run on the Dalvik virtual machine, there's a performance overhead that can compare poorly with competitors running native code. Android 2.2 aims to change that, with a new version of the Dalvik interpreter that adds Just-In-Time (JIT) compilation. The result is a considerable speed-up, with Google claiming that Android 2.2 is up to 7 times faster than Android 2.1. In practice, the speed boost varies: our tests show different tasks running between 2 and 5 times faster. One area where there's little difference between Android 2.1 and 2.2 is in its 3D graphics performance, which is dependent on GPU hardware.
We tested performance using a series of benchmarks comparing two very similar Android devices. Our main test device was Google's HTC-designed Nexus One. This was provided by Adobe and was running the latest builds of Android 2.2 and the Flash Player. We assessed its performance by comparing its benchmark results with the same tests run on a similar HTC device, the EVO 4G, running Android 2.1. Both are 1GHz Qualcomm Snapdragon devices, with 512MB of RAM. Benchmarking software was either web-based or downloaded from the Android Market.
Android 2.2's new Dalvik Java virtual machine makes a big difference. It's considerably faster, especially when handling complex mathematical operations (such as handling 2D graphics, calculating pi or running Linpack). You won't get the same speed-up if you're working directly with the phone hardware. When it comes to 3D graphics, both devices deliver similar performance as they have similar graphics accelerator hardware — as shown by the Neocore 3D benchmark. Similarly, as Nbench is a native-code version of the ByteMark CPU benchmark, it's not surprising that the two devices have very similar performance, as they use very similar hardware.
Android 2.2 is, at heart, a point upgrade. However, it's a very capable upgrade, and one that other companies would have treated as a jump from x.1 to x.5. New enterprise features make it a worthy successor to Windows Mobile as a business mobile OS, and improved performance gives it a significant boost — not just for the phone, but also for your existing application library. Some features will need to wait for developers to take advantage of the new APIs, but that's really just an added bonus.
Flash Player 10.1 for Android
The mobile Flash story is a long and complex one, even before you throw in Apple. Flash Lite, Adobe's previous attempt at delivering a mobile Flash experience was a cut-down version of an obsolete desktop player, with some Flash video features thrown in for luck. It never really caught on. With the mobile market exploding, Adobe needed to bring its full desktop experience to high-end smartphones.
The result was the Open Screen Project, a mix of software and hardware companies, working with Adobe to re-architect the Flash Player so it delivered desktop-like performance on constrained hardware. It's taken longer than expected to get to a publically available mobile version of the Flash Player, with Android 2.2 the host OS for this beta release.
Adobe has done a good job here: you'll find the familiar sites and services all work, even the BBC iPlayer (although US users won't be able to use Hulu thanks to the company's policy of banning non-PC access). Video quality is surprisingly good, with smooth streaming performance and very few artifacts. If you're running a video streaming site using a Flash-based player, you're already set up for the mobile version, as there's no need to update your code — unless you want to add finger-friendly controls to the player. We were able to connect to many different video sites and services without problem.
One thing to note about mobile Flash is that you're really going to want to be using Wi-Fi if you're streaming video. The RTSP protocol Adobe uses is adaptive, and the limited bandwidth available in 3G networks (compared to a broadband-connected Wi-Fi system) means you're going to get a much lower-quality video stream. However, that's a limitation of the network, not Flash.
Mobile devices make great casual gaming platforms. After all, what else are you going to do when you're stuck on a train and you've answered all your urgent email? Adobe has worked with some of the better-known casual gaming companies to develop mobile versions of their sites. We spent some time playing with a wide range of different puzzle and action games, some of which had been designed to take advantage of Flash Player 10.1's new hardware support for touch and accelerometers. We did have some issues with touch detection — but we had similar problems in the browser, so that may have been an issue with our test device.
Flash isn't just about games or video. It's also a tool for displaying information, and with Adobe's Flex framework, a platform for delivering rich internet applications for business. Sadly that's still an area where the mobile Flash Player 10.1 has some problems. We weren't able to get Adobe's own Tour De Flex sample site to run on our test device, with content failing to render and menus not responding to touch. We had more luck with the flex.org showcase, itself a Flex application. Developers working with Flex will need to take into account the smaller screen sizes of mobile devices — Adobe's own Flexstore sample application loaded and rendered on our test device with large chunks of the screen not showing.
Flash's streaming video works well on Android, even over 3G, with full-screen views taking advantage of the available screen real estate.
Running the mobile version of the GUIMark 2 Flash benchmark, we got a score of 36.33fps for vector and 20.28fps for bitmap operations. That's a respectable score, although for comparison running the same tests on a Windows PC we recorded 60fps for both vector and bitmap operations. It certainly shows that Flash performs well enough on mobile for most purposes — especially as our beta build of Flash Player wasn't using the Nexus One's hardware graphics acceleration. Just to be sure, we tried out one of the GUIMark2 desktop benchmarks on the mobile platform: our test Windows PC scored 7.09fps on the Flash 10 bitmap test, while the mobile version scored 1.6fps.
It's important to be realistic about mobile Flash: with the bandwidth available on mobile networks, high-resolution videos aren't going to stream the way you'd want them to. Optimising existing Flash content for mobile is easier than rewriting it entirely for HTML 5, but some sites are going to stick with the Flash they already have. In almost all cases, that's going to work just fine, even if it's not ideal as a mobile experience. Flash does use up the battery — but don't forget that you're using your 3G or Wi-Fi connection, and that would take power with any online gaming engine or video format.