I am running termux on an android tablet and really have no idea how to get Julia installed on it. Any suggestions on what to do? I googled and found some information about installing a Linux version onto termux but that seems too complicated — is there a simpler way to use Julia on Termux?
Additionally, I tried downloading the x64 version of Julia 1.8.5 onto my Android environment but it wasn’t working – it complained about files being missing… I can provide more info if needed but I am just curious what folks tend to do.
Perhaps the reason for this is because Android doesn’t implement a fully compliant POSIX environment, or at least whatever system calls Julia expects. Thus, a full Linux environment is required.
I think the only way around that would be to compile Julia using Android’s NDK which may be difficult (or impossible?)
That said, in the longer term it may be possible and relatively easy with the upcoming Android Virtualization Framework, though that is just conjecture on my part.
If it ever becomes accessible to developers/users it would become much easier to bundle and distribute a Julia app from Google Play, running the Julia executable in a virtualized sandbox environment.
Hunh! Your idea makes complete sense to me and wasn’t something I considered (regarding POSIX). Exciting about virtualization someday in the future and hope that works out; maybe I can try assisting there when it comes time? I may review Julia issues to see if there is anything for Termux and to see if anyone could point me in the direction for why Julia doesn’t work out of the box (without a POSIX system) on Android.
Well whaddya know, it looks like this is indeed going to be the case! Android Authority reports recent work in AOSP of a “Terminal” app that installs and manages a Debian VM using the above mentioned Android Virtualization Framework (AVF).
It’s a significant development because this is the first time the virtualization feature has been exposed to the end user without root permissions. AVF has been baking for a few years now in a limited capacity, but it’s only been accessible by hardware vendors, not third party application and certainly not end users (Here’s a talk from Qualcomm about how they implemented AVF using their own hypervisor, Gunyah). It’s clearly of value to manufacturers, as they are able to open up their hardware to a much wider range of software for testing, validation, etc.
I imagine that this Terminal app is also meant to showcase the virtualization API, but whether it’ll be for first party or third party apps is unclear; the API has been available for some time for privileged system apps, I wonder if that will remain the case.
Regardless, this is great news for us Julia users!
This is an intriguing possibility, for e.g. Julia Julia with the REPL, or well anything else, but not to make native Android apps.
I think the new juliac might help make that more practical.
Python 3.13 officially supports Android (again), so we’re competing with it, or maybe a better path to use together. E.g. Python’s kivy.org (or something like BeeWare even better?) enables “cross-platform GUI apps”:
Kivy runs on Android, iOS, Linux, macOS and Windows.
Julia already supports ARM64 (on macOS tier 1, not tier 1 on Linux, why not?), See also:
What minimal dependencies does Julia require? E.g. Julia currently relies on glibc (or musl), C library, not Android’s bionc. What else might be problematic? I think if Python used and calling Julia with juliac compiled libraries, then some proof-of-concept native Julia app could be made, easier.