Main image of article Running Android on PC: A Developer's Overview

As a developer, I occasionally have to test software on non-PC platforms. Naturally, it's easier if this testing takes place on a PC, as it makes debugging much easier. For example, what if you want to run Android apps on your PC?

I've been doing just that for a while, first in Android Studio and more recently in Visual Studio with Xamarin. Both use the same Android emulators (a tip, BTW: If you are using Xamarin and have Android Studio installed, don't update your Android Studio; it wipes out any emulators set up in Xamarin).  

But that's more relevant to development. There are actually a variety of ways to run Android apps on a PC, many for games, including Archon (Chrome Extensions), Bliss, GameLoop, LDPlayer, Nox, Phoenix Os, Prime Os, Remix OS, YouWave and Android-x86.org. In the interests of time, though, we’ll focus on just a few.

Run Android on Windows 

There are a number of different ways to do this, but keep in mind that you can’t run virtual machines on Windows Home; you need the Pro, Enterprise or Education editions.

Memu Play is an application that runs an Android emulator; it’s targeted at games. It runs on your Windows PC and integrates mice and keyboard. It's free but shows adverts. 

Despite uninstalling Hyper-V from my Windows 10 and enabling VT-x in the BIOS (and rebooting way too many times), I was unable to make Memu Play work (or play, if we want to be punny) because it claimed I was still running Hyper-V.  On my wife's laptop, it ran fine and was very slick. The website has links to many popular Android games that you can download and run. 

Like Memu Play, Bluestacks is another emulator focused on Android games; moreover, it claims a speed advantage over Android smartphones. It uses Android N (7.1.2). This potentially isn’t a problem, as my experience with Android compared to iOS is there's longer support for games on older OS versions. 

GenyMotion takes a different approach, with two offerings targeted at developers: desktop or cloud-based. The desktop version runs virtual Android devices in the VirtualBox environment; each device is a VM. The cloud-based version, meanwhile, can run virtual Android devices on AWS, Google Cloud or GenyMotion cloud and is accessed via a web browser. This is a commercial application with subscription for individual developers, businesses and enterprises.  

Running Official Emulators

Both Android Studio and Xamarin use official emulators. One problem with Android development compared to iOS is the number of different combinations of operating system and screen size/resolution. This fragmentation of the ecosystem, quite frankly, drives many developers absolutely insane.  

For instance, do you develop for the latest Android 9.0 version (with about 35 percent of market share, as this chart shows), or go for older 8.0, which might run on more phones? Note that, although your app can support older versions, it must target at least Android 8.0 to get into the Google Play Store. 

That’s why emulators let you specify a screen-size and OS version that you want, rather than selecting a device for you. With new phones and devices coming out each week, it would be an impossible task to track them all.

If Xamarin’s Android Device Manager tries to use an SDK it hasn't downloaded, it will ask you to accept the licence, then download it. This avoids guessing what to download, as some files are nearly one GB in size.

Installing on Linux

I looked at AnBox, which requires a little bit of fiddling to install it, although ultimately it went without a hitch. However, that is just to build AnBox—next, you have to download and build the Android Open Source Project. It’s 40GB and quite massive, meaning that many developers might opt for another method of running Android on their PC. (Also note that, according to their instructions, it's only good on Ubuntu 16.04 and 18.04.) 

Conclusion

There isn’t one Emulator that covers all use cases. If you want to pursue development, then go with the free Xamarin and Android Studio emulators, or the paid GenyMotion, which helps address the fragmentation problem. For the free emulators, you have to set up the devices (resolution and screen coordinates) manually; in that case, I recommend you go for the later versions and use Hyper-V.  

The really popular use-case for this is game play, and on that front, it seems a toss-up between Bluestacks, GameLoop and Memu Play.  I’d also heard about Nox, which works on Windows and Macs, but haven’t tried it. I suspect it would result in the Vt-X problem on my PC.