I used to hate android emulators, since the ones I’d tested on Windows were ad-ridden, slow bloatware.
The other day I needed to run an android app on Fedora 40.
I tried Waydroid and it worked very well. The app ran supersmooth as if it was running natively.
Also the cli syntax was very sane an user friendly.
waydroid app install|run|list …
So if you need an Android app on linux the experience might be better than what you think it would be.
I think a part of your positive experience is also thanks to Linux. Android emulation works better on it because the difference between Linux and Android is not that big and definitely not as big as between Windows and Android. Though Waydroid rocks anyways
The documentation says:
Waydroid uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container and provide Android applications on any GNU/Linux-based platform.
To my understanding this isn’t even emulation but regular container technology.
Yes, Waydroid uses lxc containers.
Wouldn’t some Android Apps require specific builds for x86 architectures? Does Android take care of that?
If you need arm, then you probably have to install libhoudini https://github.com/casualsnek/waydroid_script
A lot of android apps are built using Java/Kotlin, so you don’t actually need to care about architecture since the JVM supports both x86_64 and arm64.
There are exceptions to this though, since some apps need to run native code. Those apps would need some sort of emulation/translation layer for the arm instructions.
It took a long long time until Android emulators on Linux worked even close to what has been available on Windows.
The app ran super smooth as if it was running natively
That’s because it is native! Waydroid runs an android container on top of your existing kernel. You will notice that you can even see the Android processes while running Waydroid in a top utility.
Although the Android kernel is slightly customized isn’t it? I thought it exposed a few extra syscalls. How do these work on Waydroid?
https://wiki.archlinux.org/title/Waydroid#Kernel_Modules
You must use a kernel with the android-specific modules compiled in, or use the
binder_linux-dkms
module. I’ve noticed using a kernel with them built in is generally easier to get working.
deleted by creator
I just tried it 3 days ago on Fedora 40, Did not run for me.
Followed their wiki
How did you setup?
Yeah I tried it on pop os a while back and never could get it running at all
Are yiu sure you’re running Wayland and not X11?
Actually I was thinking of my arch system. You’re right, I’m on x11
I had a similar positive experience with Gamescope, which tamed a game that freaked out every time I moved the moude onto the other monitor.
Maybe Wayland’s healthy place is as a secondary window system you launch inside your normal X11 session.
Maybe Wayland’s healthy place is as a secondary window system you launch inside your normal X11 session.
Yeah you’ve got that perfectly backwards.
Wayland allows X11 apps to open using XWayland. Not the other way around.Xorg’s life is running short and will be largely abandoned in the near future.