Thanks to the hard work of some talented developers, there are now multiple ways to run Android apps and games on Linux, and we describe seven of them in this article.
Why Running Android Apps Don’t Run Natively on Linux?
Considering that Android and Linux share the same kernel, one might assume that it would be easy to run Android apps natively on Linux, but it isn’t. That’s because the kernel is just the core of an operating system, and it takes a lot more software than just the kernel to run the applications you interact with on a daily basis.
Furthermore, Android APK files are not straightforward executables (like .exe files on Windows). They are essentially installer packages whose purpose is to extract files to certain specific locations. When executed, the extracted files call certain functions of the Android operating system to access the file system, hardware components, and so on.
Popular Linux distributions make no effort to be compatible with Android apps, so Linux users have to simulate Android devices on their computers using Android emulators or use an operating system that’s compatible with Android apps.
Anbox is conceptually similar to Wine (a free and open-source compatibility layer that makes it possible to run Windows applications on Linux) because it abstracts hardware access and integrates Android applications with the Linux operating system.
The entire project is open source and licensed under the terms of the Apache and GPLv3 license. The goal of its developers is to make it so that every Android app and game can run on Linux. Because Anbox runs without hardware virtualization, it offers decent performance and tight integration with the host operating system.
Because Anbox is distributed exclusively as a snap (its developers claim that snaps make their lives much easier and allow them to frequently release updates without the need to customize them for multiple distributions), you can install it only on supported distributions unless you install Snap manually, which takes just a few simple commands, all of which are described in detail on Snap’s website.
With Anbox installed, you can add APKs using the Android Debug Bridge (adb). Afterward, you can launch your applications via the host system application launcher and manage them just like all other applications running on your system.
2. Arc Welder
If you’re a Google Chrome user, you can run Android apps on Linux using ARC Welder, also known as App Runtime for Chrome. This Chrome extension is actually intended to let Android developers test and publish their Android Apps to Chrome OS on other platforms, but that doesn’t mean you can’t use it for your personal purposes.
Because Arc Welder is a tool for developers, it doesn’t provide access to apps published in the Google Play Store. In order to run an Android app, you first need to find and download its APK file and then open the file using Arc Welder. Fortunately, there are many websites that let you easily download APK files, including APKMirror, APKPure, or APK Store.
Unfortunately, Arc Welder was last updated in June 2018, so bugs are to be expected. Still, you would be hard-pressed to find and easier way to run Android apps on Linux.
Because this is the year 2020, we can’t recommend the once-popular Android emulation solution called Shashlik anymore. The last version of Shashlik was released in 2016, and its developers have been quiet ever since. However, we can recommend something even better: Genymotion.
This cloud-based Android emulator is a boon to all Android developers who would like to streamline app testing and enjoy virtually unlimited scalability thanks to the computing power of Amazon Web Services, Microsoft Azure, Google Cloud Platform, and Alibaba Cloud.
Genymotion can emulate over 3,000 Android device configurations and simulate every imaginable scenario thanks to its full set of hardware sensors. The only problem is that you get only 60 minutes of use for free, and then it’s 5 cents per minute.
Android-x86 is a project whose aim is to port Android to the x86 instruction set. Because Android-x86 is a complete operating system, you need virtualization software like VirtualBox to run it inside your Linux distribution.
When setting up a VirtualBox virtual machine for Android-x86, Set Type to Linux, and Version to Linux 2.6 or newer. Allocate at least 2 GB of RAM and create a new hard disk image with 8 GB of storage space or more. Load the Android-x86 installation image and follow the official installation instructions.
When running Android-x86 inside a virtual machine, you can’t really expect great performance because Android-x86 is meant to run on bare metal.
5. Android Studio IDE
Android Studio IDE is Google’s official integrated development environment for Android. It’s built on JetBrains’ IntelliJ IDEA software and runs on Linux, Windows, macOS, and Chrome OS. Included with Android Studio IDE is an Android emulator intended for running and debugging apps in the Android studio.
To install the emulator, choose the Android Emulator component in the SDK Tools tab of the SDK Manager. Open the app you want to run and click the green play-like button in the menu bars at the top. When asked to choose a device, click the Create New Virtual Device button and specify its properties. Once you’re finished, select it from the list of available virtual devices and click OK. The virtual device should start up right away and automatically open your application.
The Android Emulator inside Android Studio IDE doesn’t exactly amaze with its performance or usability, but it gets the job done when you just want to run a single Android app on Linux without installing it on your smartphone.