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 10.211.55.7:5555 ## Replace with your IP
> connected to 10.211.55.7:5555
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.
Previous post: Introducing Squirrel for Windows
Next post: I Am Not Web Scale: Wunderlist Edition