Parallels: The best Android Emulator I've ever used

If you're doing Android development, a non-default VM is a must; the ARM Emulator is a complete pain to work with. There are several options based on QEMU and VirtualBox (Intel HAXM and Genymotion, respectively), and both of them are vastly better than the default.

At my day job, I do a lot of Windows development on Parallels Desktop - for Windows, I find it to be the best VM software for Mac. Super fast, and the integration features are great.

In the past, I've had problems installing >1 VM software on my machine at the same time, so I've been on the lookout for a way to get Parallels working with Android. The "New VM" wizard offers to download and install Android, but the version it installs is old and busted - you definitely want to go with something newer.

Fortunately, the Android-x86 Project has done a ton of awesome work in order to enable running Android on laptops and virtual machines - they've recently released a KitKat image that works great; hit up that link to get started.

Setting up Android-x86

Setting up an installation of Android-x86 is pretty straightforward, especially if you've installed Linux before. However, one thing that is confusing is the Disk Partitioning process, which is pretty raw in the Android-x86 installer.

Once you select "Create / Modify Partitions", you're dropped into cfdisk. What you want to do, is go to "New" => "Primary", Hit Enter to choose the entire drive, then hit "Bootable". The result should look something like this:

Pick Write, then Quit. When asked to pick which filesystem to format, pick ext3. Unlike installing Linux Properâ„¢, we won't have a Swap partition (Android devices don't have swap either!)

When asked to install GRUB, say Yes. You'll need to Reset the VM because it hangs after startup. A few seconds later, you should have a Super Fast Android VM, with Google Apps (like Play Store) as well as it being rooted which makes digging into your app's data much easier.

Setting up adb Debugging

This is the only part that isn't ideal - once you enable debugging via the standard "Tap on Build seven times to become Developer", you have to run a few commands every time you want to enable debugging.

First, hit Alt-F1 in the VM to drop to the Linux Terminal, then type netcfg:

Remember the IP address, then run:

adb tcpip  
adb connect   ## Replace with your IP

> connected to

You're now good to go - logcat, debugging, everything is good to go!

What's Missing

A few of the testing-related features of higher-end emulators like Genymotion aren't present in Android-x86, if you need features like Geolocation fakes, or simulating sensors, you might have to stick with Genymotion (though to be honest, I never got the appeal of features like this - can't you just mock it?).

For me though, Parallels + Android is <3.