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.
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.
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.