There are already ways to run Android apps in Linux distributions such as Ubuntu or Debian, including the Android SDK emulator, running Android-x86 or Remix OS in a virtual machine, or using Genymotion, but those solutions are a little cumbersome to setup. Shashlik Android emulation layer aims to simplify the process of running Android apps in their own window within Linux desktop distributions.
The Android apps can be started from the start up menu or dash like any Linux program. The apps are currently running inside an emulator so you actually boot a stripped down version of Android each time you start the app, which means they’ll take a little while to start. OpenGL and graphics are all rendered on the host for better performance. In the future, the emulator (virtual machine) may be dropped, and instead Shashlik could simply become a container, which requires rewriting libbinder in userspace
There are two ways to try Shashlik:
- Build it from source following the instructions in What is Shashlik? page.
- Download and install the pre-built deb or AUR package
I started with the first one, but since you actually build a complete Android system it takes forever to checkout the code, so I went the easy and fast way by installing the Ubuntu package:
sudo dpkg -i shashlik_0.9.3.deb
Than you’ll need to get some apk files, and I installed CPU-Z and Antutu 6.0.4 in Ubuntu 14.04 as follows:
The apps were successfully installed, but installation process did not really end up cleanly:
Successfully installed CPU-Z
Traceback (most recent call last):
File "/opt/shashlik/bin/shashlik-install", line 109, in <module>
message ("Successfully installed %s" % app_name)
File "/opt/shashlik/bin/shashlik-install", line 22, in message
File "/usr/lib/python3.4/subprocess.py", line 537, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.4/subprocess.py", line 859, in __init__
File "/usr/lib/python3.4/subprocess.py", line 1457, in _execute_child
raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'kdialog'
That’s because kdialog is missing, and if you don’t like the error messages, it can be installed with:
sudo apt-get install kde-baseapps-bin
Once this is done you’ll have a dialog showing the app is successfully installed, and you can access either app via Ubuntu dash. Pretty neat.
I got more lucky with Antutu, as it could run, perform the benchmarks excluding 3D graphics, and get system information.
Results are however hit and miss, even after you’ve installed the application and run it successfully once, the black screen issue may come back.
The developers also mentioned that “the current version has been tested to work within a KDE Plasma 5 environment. In other environments, it *could* work, but is not tested by the developers”, and they showed both Flappy Bird and Spotify to work in that environment.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
7 Replies to “Run Android Apps in Linux with Shashlik Android Emulation Layer”
Does this emulation layer include Android DRM framework with support for DRM plug-ins which apps such as Netflix uses for media crypto?
>du -hs ~/Downloads/shashlik/
I’m pretty sure it doesn’t. It could be added I suppose but I doubt open source devs have much interest in that.
Yes, it’s large, I think it’s based on AOSP with some modifications…
it did pull the full git repo for all components
i’m pretty surprised the deb package is only 150Mb
thankyou, it works on mint 18 😀
‘kde-baseapps-bin’ has no installation candidate (needed to install kdialog)
How can it run on Ubuntu 19.04 without kde?