- 1Emulators
- 2General Emulation issues
- 3Emulator Specific Issues
Emulators[edit]
Name | OS | Version | Free | VM | Accuracy | Recommended |
---|---|---|---|---|---|---|
Genymotion | Windows, Linux, macOS | 3.0.0 | ✓ (Non-Dev Versions) | VirtualBox | High | ✓ |
BlueStacks | Windows, macOS | 4.60.2.1001 | ✓ | QEMU (before v2.5) / VirtualBox (after v2.5) | High | ✓ |
MEmu | Windows | 6.2.1 | ✓ | VirtualBox | High | ✓ |
LDPlayer | Windows | 3.60 | ✓ | VirtualBox | High | ✓ |
Nox App Player | Windows | 6.2.8.0 | ✓ | VirtualBox | High | ✓ |
SmartGaGa | Windows | 1.1.523 | ✓ | VirtualBox | High | ✓ |
MuMu App Player | Windows, macOS | 1.1.0.2 | ✓ | VirtualBox | High | ✓ |
Peak App Player | Windows | 1.2.5 | ✓ | VirtualBox | High | ✓ |
XePlayer | Windows | 6.0.10 | ✓ | VirtualBox | High | ✓ |
KoPlayer | Windows | 2.0.0 | ✓ | VirtualBox | High | ✓ |
tiantian app player | Windows | 3.2.7 | ✓ | VirtualBox | Mid | ✗ |
Droid4X | Windows, macOS | 0.10.7 | ✓ | VirtualBox | High | ✗ |
Andyroid | Windows, macOS | 0.47.226.1076.7 | ✓ | VmWare | High | ✗ |
YouWave | Windows | 5.11 | ✓ | VirtualBox | Mid | ✗ |
Android x86 | Multi-platform | 8.1-rc2 | ✓ | VirtualBox, VMWare (for 3d acc) | Mid | ✗ |
Android Studio | Windows, Linux | 3.2.2 | ✓ | QEMU | Low | ✗ |
Anbox | Linux | Git | ✓ | Not an emulator (wine-like approach) | ? | ✓ |
Consoles | ||||||
LineageOS | Nintendo Switch | 15.1 | ✓ | based of the Nvidia Shield TV build of LineageOS | ? | ✓ |
Abandoned/Discontinued | ||||||
LeapDroid | Windows | 1.8.0 | ✓ | VirtualBox | High | ✓ |
AMI DuOS | Windows | 2.0.8.8511 | ✓ | VirtualBox | Mid | ✗ |
ARC Welder (Google Chrome) | Windows, Linux, macOS Chrome OS | 50.5021.602.0 | ✓ | Original | Mid | ✗ |
Windroy | Windows | 1.2 | ✓ | Original | Low | ✗ |
Shashlik | Linux | 0.9.3 | ✓ | Original | Low | ✗ |
Project Astoria | Windows 10 Mobile | Discontinued | ✗ | Original | Low | ✗ |
Xamarin Android Player | Windows, macOS | 0.6.5 | ✗ | VirtualBox | ? | ✗ |
Windroye | Windows | 2.9.0 | ✓ | VirtualBox | Mid | ? |
Comparisons[edit]
- Genymotion
- A closed-source Android emulator with hardware-accelerated 3D graphics and USB host support, available for Windows, macOS, and Linux. In its latest versions, it has pretty good compatibility with commercial games. It's a commercial product though, aimed at software developers and QA teams. You'll need to create an account and download the free non-commercial use license available. Except for pay-to-remove 'free for personal use' watermark on the screen, paid builds to add features only useful for Android app developers.
- BlueStacks
- Also commercial with a free option (requires a google account). It's less good than Genymotion and doesn't handle USB cable emulation. Previous versions used to come with an installer with adware comes with junk apps within the emulator and has a non-intuitive uninstaller, but that's no longer the case today. It includes Google Apps by default, though you'll need to install a file manager to copy game cache when loading your own .apk files.
- MEmu
- A free Android emulator with very good accuracy, sometimes outperforming BlueStacks.
- LDPlayer
- An Android emulator also with good accuracy. When testing games along side Nox, LDPlayer shows to have better performance/compatibility with games.
- Droid4x
- Andyroid
- Not recommended because it will install a cryptocurrency miner on your system without asking or informing about this to the user. Just like Genymotion, Andyroid uses VirtualBox, but with a twist: if it detects an installed VirtualBox during installation, it will delete it and will refuse to work. Beware!
- DuOS
- Not to be confused with a similarly-named Nintendo DS emulator by Roor, is a relative newcomer to the Android emulation market, made by American Megatrends i.e. the very same people behind the BIOS/UEFI firmware your PC may be using. Emulation is modest at best, with games and apps such as DraStic struggling on lower-end hardware. And to top it all off, it isn't free either.
- Google Chrome
- Can open .apk files using the ARC Welder extension, though their emulation on PC is average at best. Here's a compatibility list and a dedicated subreddit. Google has announced Play Store for Chrome OS, but it works on a different 'container' technology that is embedded in the Chrome OS. In addition, Google will discontinue Google Chrome apps on PC, so any major updates to ARC Welder for PC is unlikely.
- Windroy
- (Without the 'e' suffix) is a fast Android emulator that does not rely on VirtualBox or any similar technology. It isn't accurate though. While Google Play store can be installed with some tinkering, not many games can be installed (due to not faking device names) and will spawn multiple harmless-yet-annoying app_process.exe crashes. The official site is down since July 2016, so any updates are unlikely.
- Windroye
- (With the 'e' suffix) uses VirtualBox, but still offers better performance than BlueStacks. The Play Store is installed by default and has no stability issues found in Windroy. A related Reddit topic can be found here.
- Android x86
- An open-source project that aims to port the Android operating system to x86-based netbooks. Comes with Google Play and libhoudini (x86/ARM translation layer) installed. 3D acceleration works well both when installed directly on the machine as a local OS and also on VMware. VMware Player 15 supports emulating OpenGL ES 3 on the target and performance is quite good. VirtualBox 3d support is poor and probably won't work. Android x86 is continually being improved and can be tried fairly painlessly through VMware. Genymotion is (or at least used to be) a closed-source fork of Android x86, designed exclusively to be run on VirtualBox.
- Anbox
- A project that aims to run Android applications on Ubuntu distributions. Currently, it is on alpha state and only known to work on Ubuntu 16.04. Anbox requires custom kernel modules to run because unlike other emulators which emulate the whole Linux kernel, this one uses the host system's Linux kernel directly.
- Shashlik
- A project by KDE that aims to run Android applications on Linux using KDE5 and Qt5 technology. The project is infancy state and only known to run on latest Kubuntu versions. It currently lacks ARM processor emulation, so not many games will run. It is however known to play Flappy Bird and can show Spotify's login screen. It uses modified QEMU to emulate the Android operating system. Last major update was March 2016 and seems abandoned.
- Xamarin Android Player
- A newcomer to the Android emulation market. Not much is known about this because it required a minimum of $25/month subscription of main Xamarin products. The main Xamarin products were made available for free after the purchase by Microsoft, but Xamarin Android Player was discontinued.
- Project Astoria
- A Microsoft-developed Android emulator for Windows 10 Mobile included in several insider previews. It could run a few applications, though apps required Google Play Services did not run or had issues. This project was reportedly discontinued in November 2015 and its cancellation was confirmed on February 2016, so the emulator is not included in more recent versions of Windows 10 Mobile.
General Emulation issues[edit]
Lack of Release Notes and Update History information[edit]
Emulator Conflict[edit]
Google-related Libraries[edit]
ARM Applications[edit]
Games with root/Custom ROMs/Emulator Detection[edit]
Emulator Specific Issues[edit]
BlueStacks[edit]
- Can't root the device:
Andyroid[edit]
- Unable To Launch VM Process:
Android-x86[edit]
- 3D Support is broken on VMWare when using newer kernels:
- Setting resolution in VMWare
See also[edit]
- Cellphone emulators - info on emulators for various feature phone/non-smartphone platforms.
The slowness of the Android emulator has been the butt of many a joke since it was first unveiled. While Google has done a commendable job of making each iteration of the emulator faster, it is still painfully slow. Most Android developers simply debug to a device and avoid the headache. But that is still far from an ideal solution. I for one, don't want my phone tied to my dev box. Also when I give talks, it is nice to be able to easily project my work, holding my phone in the air for the audience is not an ideal solution.
I ran across a blog post by Chris Muir of Oracle, which offered a way out of emulator hell. The solution is to use a VirtualBox VM with Android on it instead of the Android emulator. Before you go all out and start putting together your own VM, be forewarned that entails a lot of work. You have to setup an x86 VM, deploy Android O/S to it, install software, etc. A lot of work. Luckily, the good folks at AndroVM have already done this work. The difference is amazing. I have tried it on both Mac and Windows.
Assumptions
This post is not to help you with setting up your Android development environment. I am assuming that your have already done that. The Android Device Bridge, which is included in the Android Developer Tools (ADT), should be installed and available on the command line (Windows) or terminal (Mac/Linux).
To begin, we need to download VirtualBox from VirtualBox.org. This is Oracle's excellent and free virtual machine app, and yeah I know a company named Innotek originally created it, then Sun bought them and Oracle bought Sun. Once you have VirtualBox installed proceed to AndroVM and download the VMs. My recommendation is to grab the following:
- androVM_vbox86tp_4.1.1_r6.1-20130222-gapps-houdini-flash.ova
- androVM_vbox86p_4.1.1_r6.1-20130222-gapps-houdini-flash.ova
These are the tablet (tp) and phone (p) versions of Android 4.1.1 with Google apps and other stuff. You will also be able to download, assuming you have a Google account, stuff from the Play Store. Once you have the VMs downloaded as OVA files you will need to import them.
With both VMs imported into VirtualBox I would recommend that you clone each and only use the cloned version. This is just a safety precaution against accidentally screwing up one of VMs.
To clone a VM simply right click it. Choose clone. Give the new machine a name. Mine's is x86Phone and x86Tablet, for the phone and tablet respectively. Choose the Full clone.
Then click the Clone button. It shouldn't take too long for the new VM to be available. Then right click one of the new VMs and click Settings... Click the Network tab. I have only been able to get the Bridged Adapter working. Change the connection so it matches the one below. A network connection is critical, without it you won't be able to deploy and debug your apps to the VM.