The Android SDK has been updated to revision 17. It includes two interesting experimental features: support for multi-touch input and x86 is now supported natively in the emulator on Windows and OS X.
Thanks to Intel’s contributions to AOSP, the emulator now supports running x86 system images in virtualization mode on Windows and Mac OS X.
This has a big impact on performance - the emulator runs at almost native speed and is no longer sluggish. The new x86 improvements are only working for Android 2.3 at the moment and are experimental. You are advised to "be alert for incompatibilities and errors" when using this feature.
Another experimental feature introduced into the hardware emulator is multi-touch input using a tethered Android device running the SdkControllerMultitouch application. The application contains an activity that monitors touch inputs and sends them to the emulator. This requires an Android 4.0 or later system image..
Intel's motives for getting involved in the Android emulator are fairly clear - to make it possible to run Android apps on an x86 machine. Both Intel and AMD CPUs have special facilities to allow virtual machines to run faster. The new emulator can take advantage of these virtualization instructions and can use any GPU to speed up graphics. It only works with an x86 Android image, not with the standard ARM image.
Previously installing an x86 image was a difficult task but now you can just select one using the SDK Manager for some, but not all, Android versions. However, it still isn't a matter of just selecting a single option, which might be a barrier to some potential users. Support for x86 should get better as the facilities settle down from experimental to production.
If you do install the x86 emulator then the result runs at close to native speeds - i.e. the sort of response times you would get from running Android on an x86 architecture. This is not surprising as this is exactly what you are doing - only the peripheral hardware is being fully emulated. What this means is that if a consumer version of the emulator can be produced then there is no barrier to running Android apps under Windows, Linux or OSX. Having the emulator prove itself within the SDK seems like a really good way of making sure that it works properly.
Revision 17 of the SDK brings new features and bug fixes for Lint, the static checker which analyzes Android projects for a variety of issues around correctness. These include and added check for Android API calls that require a version of Android higher than the minimum supported version. over 40 new Lint rules including checks for performance, XML layouts, manifest and file handling and a new ability to suppress Lint warnings in Java code.
There are also improvements to the build systems for Eclipse and Ant. Strict dependency support has been added for 3rd party Jar files; there is added support for custom views with custom attributes in libraries and a new feature that allows you to run some code only in debug mode.
Finally there's an updated Support Library with the following improvements:
ShareCompat provides easy helper classes for both sending and receiving content for social sharing apps.
NavUtils and TaskStackBuilder provide cross-version support for implementing the Android Design guidelines for navigating within your app including the action bar's "Up" button.
NotificationCompat.Builder provides a compatibility implementation of Android 3.0's Notification.Builder helper class for creating standardized system notifications.
A new Library Project adds support for GridLayout back to API level 7 and higher.
A while back we reported on Google's attempts at creating machine vision that was good enough to read house numbers photographed in Street View. Performance has now got a whole lot better since the te [ ... ]