Why is the Android emulator so slow? How can we speed up the Android emulator?

Viewed 1108228

I have got a 2.67  GHz Celeron processor, and 1.21  GB of RAM on a x86 Windows XP Professional machine.

My understanding is that the Android Emulator should start fairly quickly on such a machine, but for me, it doesn't. I have followed all the instructions in setting up the IDE, SDKs, JDKs and such and have had some success in starting the emulator quickly, but that is very rare. How can I, if possible, fix this problem?

Even if it starts and loads the home screen, it is very sluggish. I have tried the Eclipse IDE in version 3.5 (Galileo) and 3.4 (Ganymede).

77 Answers

The emulator included in your (old) version of Eclipse is very slow.

Recent emulators are faster than they use to be in 2010. Update your SDK/IDE.

Personally, I use a real phone to do my tests. It is faster and tests are more realistic. But if you want to test your application on a lot of different Android versions and don't want to buy several phones, you will have to use the emulator from time to time.

The startup of the emulator is very slow. The good thing is that you only need to start the emulator once. If the emulator is already running and you run your app again, the emulator reinstalls the app relatively quickly. Of course, if you want to know how fast it will run on a phone, it is best to test it on a real phone.

I've noticed that the emulator starts much faster if there's no Dalvik Debug Monitor Server (DDMS) connected. So if you start the emulator from Virtual Device Manager "SDK Setup.exe" and Eclipse is not started, the emulator works faster.

If you start the emulator from Eclipse: DDMS is there, so sometimes the emulator is extremely slow, but sometimes it's faster.

As of Revision 17 of Android SDK Tools, the emulator can use graphic acceleration and CPU-provided extensions for better efficiency. The prerequisites and full configuration and user notes are at:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

For enabling GPU aceleration, run the emulator from the command line or add "-gpu on" to the additional emulator command line options in the AVD configuration.

emulator -avd <avd_name> -gpu on

For using the CPU machine extensions, you have to install the driver (caution because it can conflict with existing VirtualBox or VMware drivers). Once it's installed it will be used automatically whenever you use an x86-based AVD.

Try to disable your antivirus. Maybe it will make emulator a little bit faster.

Android SDK rev. 17 supports Virtual Machine Acceleration using AMD and Intel virtualization technologies.

This feature can improve the emulator performance a lot!

See the following section in the Android emulator documentation for more details: Configuring Virtual Machine Acceleration

Don't forget to install the appropriate driver for your operating system:

After you have installed the drivers and downloaded an Android X86 system image (as described in the documentation) you should be able to create a new AVD using the x86 image:

For example:

  • Target: Intel Atom x86 System Image - API Level 10
  • CPU/ABI: Intel Atom (x86)

I had intermittent slow emulator (SDK v8.0) load times, up to three minutes on Intel Core i7 920 2.67 GHz CPU running on Xubuntu 10.04 VirtualBox 3.2.12 guest with Eclipse (3.6.1) loaded. I changed the VirtualBox guest memory from 1024 MB to 2048 MB and from that point on, I never experienced the slowness again (load times consistent at 33 seconds, CPU load consistent at 20%). Both Eclipse and the emulator are memory hogs.

I noticed that the my emulator (Eclipse plugin) was significantly slowed by my Nvidia graphics card anti-aliasing settings. Removing 2x anti aliasing from the graphics menu and changing it to application controlled made it more responsive. It is still slow, but better than it used to be.

Android ADT 18 now includes a (beta) GPU enabled option (simply enable the GPU acceleration from your AVD properties). It makes a huge difference and even ICS feels relatively comfortable now.

Firstly, you need to upgrade your RAM to atleast 8GB.

If you cannot upgrade your RAM, then try running the application on your Android Phone by connecting it via Data Cable and USB Debugging set as ON.

Also, you may use some other emulators like GenyMotion or Nox.

However, with the amount of RAM that you seem to be having, even other emulators may tend to be slow.

Related