The Android emulator today received several significant improvements, including a performance upgrade and support for a broader range of hardware features, notably sensors and multi-finger input.
For those new, “Android emulator is a key tool for Android developers in building and testing their apps. As the power and diversity of Android devices has grown quickly, it’s been hard for the emulator keep pace.”
Here is what’s new in the emulator:
Added GPU Support
“The system image shipping today now has built-in GPU support for Android 4.0.3 r2. In the video below, the emulator is still interpreting ARM instructions; the performance boost is the effect of putting the GPU to work,” informs Android Developer team. Since, Google began supporting OpenGL ES 2.0, as a bonus OpenGL games can now run inside the emulator.
The team notes, “as there’re a lot of GPUs out there, they’ve not tested all of them for this beta release.”
More Hardware Feature Emulation
In addition to last year’s addition to the camera support, it’s now possible to use a tethered Android device to supply inputs for sensors and multi-touch input. “We’re working on providing emulator support for more hardware features including Bluetooth and NFC,” the team said.
Improved CPU Performance of the Android emulator. “Hardware floating point operation has been available for system images since Ice Cream Sandwich (Android 4.0), allowing CPU operations to be emulated roughly twice as quickly. Last week’s r17 developer tools release included x86 system images and host drivers (available through the SDK Manager), allowing the emulator to access the host CPU natively and offer significantly faster execution,” added Android Developer team.
This video shows a CPU-bound application on two emulators running the same system image, one with virtualization, one without.
Building a modern emulator
“Because the Android platform allows deep interaction between applications, and with system components, we need to provide an emulator with a complete system image. Our emulator virtualizes a complete device: hardware, kernel, low-level system libraries, and app framework. Of course, the system being emulated typically has an ARM CPU; historically, we’d been emulating those instructions in software, and that worked OK until the advent of tablet support with additional animations and complexity in Android 3.0,” the team said.
“The missing pieces were the completion of Android x86 support, and the GPU support in last week’s release of SDK Tools r17. This works by funneling the OpenGL ES 2.0 instructions from the emulator to the host OS, converted to standard OpenGL 2.0, and running natively on the host GPU,” explains the Android Developer team.