Search code examples
androidandroid-emulatorvirtual-machinegenymotionhaxm

Why are Android emulators much slower than a Windows virtual machine?


I have a Parallels Desktop Windows 10 Pro virtual machine on my Macbook Air, and it runs much faster/smoother than most new low/mid-end PC laptops.

I also have a Genymotion Android 6.0 emulator, as well as some different Android Studio (qemu) emulators (with HAXM enabled).

What baffles me is that I can run a full PC operating system (i.e. Windows 10 Pro) in a virtual machine and it's super smooth, but running an emulation of an operating system that was built to run on a low-powered, limited-hardware, mobile device (i.e. Android) is not at all smooth.

Doing something as simple as opening the preferences menu with a single "Settings" item can take a second or two on any of the Android emulators, whereas opening the Windows 10 Start menu with all it's bells and whistles happens instantly.

Why is that, and is it normal? Android Studio tells me all my emulators have HAXM enabled (Android Studio 2.0 with latest version of HAXM) and that they run in fast virt mode, so I guess that's as good as it gets?


Solution

  • My guess is that this is because windows is designed for the x86 architecture whereas android is designed for arm. There is a project called android x86 but I think they might not be able to get a very good performance, because the android build they fork from is made for arm processors and all the performance boosting done in android is mady primarily for arm processors.