Speed up your Android Emulator!

Today’s guest blog post comes to you by the folks at JoliCode, a software development firm in France specializing in Titanium, Symfony2 and JavaScript.” Earlier this year we published an article on how to use x86 images with your Android Emulator. Today we revisit this topic with a much more streamlined process that you can implement in just a couple minutes.

If you develop applications for iOS and Android, you probably have used the iPhone Simulator and the Android Emulator. There is no real issue with the iPhone simulator, but Google one is very, very, very slow. It is so painful to debug with it that if you develop on Appcelerator’s JavaScript-based Titanium SDK, you only use the iPhone Simulator every time, except when you want to test something specific on Android.

The Android Emulator is based on QEMU (the Quick EMUlator) which emulates an ARM processor on your computer which has a x86 processor. I surely don’t need to explain why emulate a processor by a software isn’t a very good idea if you want something reactive and usable. Furthermore, other hardware features are also emulated by the software. All those things combined plus the fact that smartphones have some very powerful chipsets lead to a very slow emulator.

Ok, but what can I do about it?

First thing to do is to launch the Android SDK Manager, go to your Android SDK’s installation folder, and type:

$ ./tools/android

You can see that there is an “Intel x86 Atom System Image” available for Android 4.2.2, 4.1.2, 4.0.3 and 2.3.3. Select the versions you want to test and install them. If you scroll at the bottom of this screen, you’ll see an “Extras” folder, expand it and select the “Intel x86 emulator accelerator (HAXM)” to download it. You have to install it. To do so, go to your Android SDK’s installation folder, then go to extras/intel/Hardware_Accelerated_Execution_Manager/ and execute IntelHAXM.dmg.

Now that you have installed everything, you need to configure your devices, just use the “Tools” menu to launch Android Virtual Device Manager (AVD Manager). There’s a list with all your devices, just create a new one. If you select a target that has an x86 image (let’s try with Android 4.2.2), you should be able to switch the CPU/ABI to “Intel Atom (x86)”. This configuration with the HAXM driver, easily installed, will let you run a faster emulator. We can go further! Edit the device configuration and check the “Use GPU Host” in the “Emulation options” section, it will allow the emulator to use the computer GPU instead of emulating one.

Ok, our device is ready. Just test it.

$ ./tools/emulator -avd Test_for_fast_emulator -wipe-data -no-boot-anim -cpu-delay 0
$ ./platform-tools/adb install ../Test/build/android/bin/app.apk

YEAHYYY! It’s fast!

How do I do this with Titanium Studio?

If you use Titanium Studio, you can configure the Android Emulator to use the x86 image too.

Click on ‘Run Configurations”, select the project you’re working on and then choose the version of Android you want to test with the label “x86”:

Launch the Emulator, it should be faster, but not as fast as the one we’ve created using the AVD Manager because we didn’t select the option to use the GPU host. Launch the AVD Manager, you’ll see a new device which use a x86 CPU. Edit it.

You can see an Hardware section, click on “New”, select the “GPU emulation” property, and then switch its value to “yes”, save, relaunch your emulator, and there it is, fast and usable!

Protips©: In the Hardware section, also add the “Keyboard support” property, and set its value to “yes”, save, and relaunch the emulator, you’ll be able to use your keyboard to fill some form, or whatever!

Please note…

Don’t forget… you have to test your application on several real devices to ensure that the app works properly on different screen sizes, or hardware. Keep in mind that smartphones have less bandwidth, or less battery than your computer.

Previous articleFeatured App Spotlight – PopSpotter
Next articleAndroid Push Notification: Deprecating MQTT in favor of GCM


  1. Is there any way to get the x86 CPU enabled for Google API versions of the Android SDK’s?
    Both Kitchen Sink as well as my own app won’t install properly without them.

  2. Too bad this won’t work with google’s api. By default the emulators that my titanium created already had this configuration

  3. Thanks for this Ricardo – very useful. When I have a few minutes I’ll give it a go. But the question must be asked (of Google) as to why their Emulator has been causing developers huge frustration for so long, whereas Apple’s ‘just works’ with no jiggery-pokery? It is not a good advert for those starting on Android development.

  4. Be cautious when running HAXM as it will freeze your system if you’re running Mavericks. Make sure you have the latest Intel hotfix otherwise you’ll run into issues.


Please enter your comment!
Please enter your name here