Improving Android Emulator Performance

OffWorld

Senior Member
Oct 5, 2010
460
67
If you've tried using the Android Emulator you are probably painfully aware of how slow it is. Especially with the release of the Honeycomb SDK, with default AVD settings it is so unresponsive as to be un-usable.

The Android Emulator is based on Qemu, which is single-threaded so it doesn't matter how many cores your host system has. It also attempts to emulate the entire ARM architecture. Both of these issues are underlying reasons the emulator is so slow. Of course your host system is going to be a factor as well - generally speaking the faster your CPU and the more RAM you have the better the emulator will perform. If other emulators suck on your computer this one will too.

So what to do? Here are some optimizations I've found by trial and error:

1. Max out the ram to 1024 MB.
2. Reduce the emulation scale to half size
3. Create a cache partition for it of 512 MB - 1024 MB
4. Increase the screen dpi to "phone size" (240)
5. Disable boot animation (slightly speeds up getting to unlock screen)

If I try to set the RAM size higher than 1GB it will fail to launch with a memory allocation error, so 1024 MB appears to be the maximum allowed setting.

You would think running at "actual size" would be faster, but half-size appears to be the best setting. On my system reducing it to quarter-size actually hurt the responsiveness of the emulation (and is really hard to see because it's so small). So I'm saying half-size is optimal.

The "cache partition" is the real magic to getting the emulator to work better. It doesn't have an upper limit on it like the RAM size does, but the best setting I found appeared to be half the RAM size (512 MB), though making it equal to the RAM size (1024 MB) works too it becomes a bit unstable and prone to freezing and crashing. Setting it higher than actual RAM size appeared to decrease performance.

The default dpi for Android is 160 so you'd think that would be the optimal setting, but most phones actually use 240 (or thereabout). I found scrolling and swiping were more responsive at the phone size setting.

Unless you really like looking at the word "android" with a highlight reflecting across it consider disabling the boot animation (there's no option in AVD manager for this, you need to be launching the emulator from the command line).

Other options to consider:
On Windows there is a third-party emulator called "YouWave" which is presently at Android 2.3 "Gingerbread." It's faster because it doesn't attempt to emulate the entire ARM architecture.

Android-x86 has ISO files of 1.6, 2.2, and 2.3 (unstable) you can run in VirtualBox or burn to a CD and possibly boot on your system. This is VERY fast because it doesn't need to emulate ARM at all.

---------------

As a side note the official Android SDK includes an "emulator-x86" but Google only ever released system images compiled for the "emulator-arm" - this may change in the near future as Intel's Oak Trail tablet was seen at IDF 2011 running an x86-native version of Honeycomb and demonstrating Opera Mobile.

 
Top