Why Android Emulators?
The first question you need to ask yourself is what you want the Android emulator to do for you. Many times, you only need it for a specific application that you cannot get for your Linux desktop. Some times you want to run a game and sometimes you are looking to develop your own application.
Which works best for what?
Designed especially for testing your own code when coding from Android Studio. The built-in emulator is superior for testing your own applications, as expected this works best for using the Android SDK but you can use the emulator stand-alone. The images take a lot of disc space and use a lot of memory when used but all the features are there and it runs almost flawlessly. With this package you can also emulate the phone moving around, low battery and other hardware related situations.
Shashlik still works and is surprisingly powerful and simple to get started. Once you have it installed, you can install android applications by starting the Shaslik emulator and connecting to it using adb. Applications can then be started directly from your desktop. They will look like regular applications, but will be a little slow to start since the VM has to start before the application itself. Note that this package is still in beta and the last update was back in 2016 so make sure you don’t rely on updates. If, however, your application works then you can keep using it.
Android_x86 is also possible to run in a Virtual machine, Virtualbox is an idea but not the only one. The fun part about this package is that you can install it as a second OS on your disc and run it. When you do this you are no longer emulating, instead the whole install is done for your laptop. This also works when you want to use have more battery life from your Laptop, it usually uses much less power than your regular OS. Since it can replace your OS, it emulates everything near exactly. The analysis tools for your own applications is not something that has been prioritized in this project so it may lack a little in that area but for regular use it is great. Upgrading it is also simple, as the image is an ISO and there is an RPM file for the install.
Anbox is aiming to give you the ability to run Android Apps in Linux; In a box, as the name suggests. The package comes as a snap only, unless you are going to develop. If you want to build the code yourself, you need to download the entire source code for Android. This application is excellent for running small applications directly on your desktop. To install Android apps, the easiest way is to find a package manager and use that. The adb program contacts any Android connected to the computer, Anbox will act as a mobile connected to the computer it is running on. You can also add Google Play yourself, it is not included for legal reasons. F-Droid is a popular open source alternative.
Genymotion is only available as a closed source distribution but you can use it for free. When it is installed it is fully capable of emulating everything a phone can make. It uses VirtualBox in the background but has a nice GUI on top of it that makes running the tests a breeze. The company also offers online farms of emulated hardware that you can rent. This comes at a hefty price of course and it is only intended for professional developers.
If you use the Chrome browser, you can also use ARC-welder. This is an app from the Chrome Web store, the install takes a while since the app is large, it does include an emulator. Once it is installed and you start it, you are greeted with an extremely simple screen. The screen contains one big plus and the text ‘Add your APK’, here you have to have the apk file ready in local storage. Once the app is installed, there is an icon on your new tab, which you can click to start the app again. ARC-welder is intended for testing only and there are serious bugs for the Linux version but it integrates well with the Gnome desktop.
Sometimes you want to test apps, as a hobbyist use your own, as a pro, use online systems. For playing games, use Anbox, it is still early but already useful. When you are developing yourself, the Android SDK is your best option and their own virtual device will be the easiest to use. Genymotion comes into it’s own though when you need to test hardware related features and mapping applications.