When it comes to Android virtual devices there are many options available, including installing Android on VirtualBox. But when it comes to testing apps and debugging, two names are thrown around quite a bit: the Android Virtual Device (AVD) Manager, that is included in Android Studio; and Genymotion, a very stable alternative. Both offer their respective pros and cons, so let’s find out what they are.
What exactly are the advantages and disadvantages of Android virtual machines?
When testing apps, you will likely want to try your app on as many devices as possible, to make sure everything runs smoothly. The problem is, most people do not have a plethora of devices laying around to test on, so the next best thing is emulating the devices that you need to tested on. Using an Android virtual machine makes this very easy. There are some downsides however, this includes speed and some other factors that will limit what is possible with a virtual device.
In my testing Genymotion is definitely faster than the AVD Manager, with almost instant boot times and no lag.
In general, a virtual device is much slower than a real device, Google has worked with Intel in an attempt to bring a better experience using a kind of virtual machine. If you select x86_64 as the architecture then there is the option to run the Android virtual device in “fast virt mode” which uses Intel’s Hardware Accelerated Execution Manager (HAXM) to speed up the performance of the virtual device, the only problem is that this is for Intel’s x86_64 instruction set architecture, so this is not helpful if you need test test on x86_32, MIPS or ARM.
In my testing Genymotion is definitely faster than the AVD Manager, with almost instant boot times and no lag, it has been the closest experience to a real device that I have ever seen. But nothing is perfect, Genymotion currently lacks Android Wear support and there are no official stable Marshmallow builds at the time of writing.
What is Genymotion and how does it compare?
Genymotion is a third party program that offers Android virtualization so you can test against different versions of Android, and for debugging. Genymotion has many advantages over the AVD Manager (although a lot of them require a paid subscription). One of the major advantages that Genymotion offers is speed, as stated earlier Genymotion is definitely faster than virtual devices from the AVD Manager. This is because Genymotion uses the x86 architecture to run, which is great for performance. The problem with this though is that there is no option to change the architecture, x86 is the only one available, this means there is no way to test an app on ARM, which is the main architecture of Android devices.
Genymotion has a sidebar that loads on the right side of a virtual device offering anything you could want, and if for some reason something is missing, Genymotion also has a console to manually type in any command that is needed. The sidebar allows the ability to test the GPS, use a camera, change the virtual device’s battery stats, capture videos and much more.
Since the AVD Manager is handled by Google, it always has the newest Android version from the SDK.
Many of these require a subscription however. Genymotion also has a few other nice additions, like the ability to scroll on the device with a computer’s trackpad. The user interface is nice, but it is not as good as the AVD Manager as far as setting up a new virtual device. There is no option to create a virtual device from scratch, the user must select a base, which is less convenient than just being able to configure everything from a single screen to fit what is needed.
What is the AVD Manager and how does it compare?
Android Studio includes many tools to make developing apps easier, one of these tools is the Android Virtual Device Manager. While not as fast as Genymotion, the AVD Manager has a few major advantages over its competitor. Genymotion, as stated above, only runs in the x86 architecture, while the AVD Manager supports x86_32, x86_64, MIPS and, possibly the most important, ARM. This enables the developer to test across pretty much any device configuration, as well as Android Wear, which Genymotion does not support. The process of setting up a virtual device is very easy, there is every option imaginable from the Android version to the screen size to the type of processor architecture. This is something where Genymotion really needs to improve on. All of this being said, Genymotion seems to be a lot more stable in my testing, the AVD Manager seemed to lag at times and be just fine at other times, while Genymotion was lag free throughout all of the testing.
Since the AVD Manager is handled by Google, it always has the newest Android version from the SDK, whereas Genymotion does not have this luxury. Overall, the AVD Manager is not as user friendly or as stable as Genymotion, but offers more options and these may be needed for certain situations.
Depending on your needs, the AVD Manager or Genymotion may be right for you. If you want a stand alone application that is super stable but may cost money, then go for Genymotion. If you want a highly customizable first party virtual device manager, and can live with some stability issues, choose the AVD Manager. Either way, you will be able to test your apps and make sure everything runs the way it should, that being said, nothing beats an actual device, so you have one laying around, use it as well. You can get the AVD Manger along with the Android SDK and Android Studio here, and Genymotion here.