Using Julia on Android?

Thanks @xiaodai that worked perfectly. Running Julia on my android device right now. Cheers :+1:

2 Likes

Running Julia on Android is cool, and while it is then in some sense an Android app, has anyone done an “independent” Android app in Julia. Even just a proof-of-concept “hello world” type? Or even better with an even loop working with the Java-based framework? As in an .APK file you could deploy to the Google Play store (runable without Ubuntu or other first installed), or done the first steps to what would end up as APK.

My understanding is that while useful, a Julia Android app is only really an Ubuntu app, running under Ubuntu, running in Android, and that is still a good step, but a long way from an APK?

I know the technical difficulties, you would want to runwith bionic, not regular libc, so is there something to help like libhybris, but for the other way:

https://reverseengineering.stackexchange.com/questions/22547/how-to-use-x64-86-elf-file-from-an-apk-file-in-a-linux-machine

Not related to Android or Bionic (only “just x86-64 for simplicity”), but I just found out Google has a plan (from 2019) for a new “libc in LLVM”:

http://lists.llvm.org/pipermail/llvm-dev/2019-June/133308.html

Julia has support for musl, and while bionicis the default on Android, musl may work there (or is that only the plan?):

3 Likes

Hi,

sorry to dig up this topic but I’am trying to install Julia 1.3.1 with Userland and I ran into the same error as @Iulian.Cioarca about libopenblas.so which I think I have fixed with:

$execstack -c ./julia1.3.1/lib/julia/libopenblas.so

but I still can’t run julia:

here is the output of lscpu:

gsch@localhost:~$ lscpu
Architecture:        armv7l
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           2
Vendor ID:           ARM
Model:               4
Model name:          Cortex-A53
Stepping:            r0p4
CPU max MHz:         1401.0000
CPU min MHz:         768.0000
BogoMIPS:            38.00
Flags:               half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm aes pmull sha1 sha2 crc32

If someone manage to fix this error I’am all ear ! :slight_smile:

Since 1.3.1 is not officially supported anymore, I would suggest trying this with Julia 1.5 first. It might have already been fixed since then.

2 Likes

Update from my side:
Julia 1.5 is working well, but meanwhile I also changed the phone and I’m on 64 bit Android 10.

I try at first the 1.5 but there is no binaries for the armv7 architecture (32bits) for Julia version more recent than the 1.3.1 :slightly_frowning_face:

I am currently trying to build the latest master from source on my Raspberry Pi. Will let you know how that goes.

1 Like

Hi,

In my side I didn’t manage to install the 1.3.1 version but the 1.2.0 run smoothly (except for the libopenblas error which is fixed with execstack)

V1. 5 can’t be launched.

I got Julia 1.5 running on Android (Galaxy Pad S4) as follows:

Then download and install the Julia 1.5 binaries for ARM (do not use apt-get install julia because this would install an old Julia version):

2 Likes

The Galaxy Pad S4 is powered by a Snapdragon 835 which use a 64bits armv8 architecture. I think the issue of using julia on android is cause by the use of a old 32bits armv7 architecture

Work smoothly in a recent Xiaomi.
The only thing is that to start Ubuntu the script in now ./startubuntu.sh instead of just ./start.sh

I followed this instruction and got error CANNOT LINK EXECUTABLE "julia"....
For long time of googling I found the solution: https://github.com/termux/termux-app/issues/1703#issue-676231188

BE CAREFUL: IT COULD CAUSE DATA LOSS (All my installed Python packages removed :sob: )

Just run it after installing Julia and all get work!

Fyi, the Android Matlab keyboard seems to be quite useful with Julia too.

How to connect termux Julia to jupyter notebook

How to connect android Julia to jupyter notebook

If your Jupyter server is running on another machine (e.g. Linux or Windows) you can just connect with your Android browser to it.

I do not know if running a Jupyter server in Termux is possible.

I just want to share how great to have Julia running on Android with an external keyboard.

the setup is simple:
Termux + void-in-termux + Julia 1.7.1 + Pluto + Brave (dark theme)

7 Likes

Couldn’t install Pluto, no problem to install Plots. Any clues?

1 Like

Maybe try to remove .julia/registries/ folder?