# Using Julia on Android with UserLAnd

**URL:** https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498
**Category:** General Usage
**Tags:** android
**Created:** [April 3, 2021, 12:57pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498 "2021-04-03T12:57:59Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 3, 2021, 12:57pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/1 "2021-04-03T12:57:59Z")

</div>

The purpose of this post is to teach a way to use the Julia language on an Android smartphone.  
PS. Sorry for my English

## Step 1

Download these apps:

- UserLAnd (Linux emulator)
- CodeBoard (Optional. A custom keyboard for programming.)
- Via (Pluto.jl has a bug when typing in a indented code block in a mobile browser. Via emulates a PC browser while maintaining the mobile layout.)

## Step 2

Open UserLAnd and download the Debian distro. Select the SSH option, enter the username and password, then wait for the download to finish.

## Step 3

When the installation of Debian is finished, a terminal will appear. Enter your user password. Click enter.

 ![Screenshot_20210403-104504_UserLAnd](https://global.discourse-cdn.com/julialang/original/3X/f/6/f68ed5c13bbca78c7df147b670769a579dd9d0cb.jpeg)

Now we are going to update Debian’s dependencies. Paste the command below into the terminal and click enter.

`sudo apt-get update && sudo apt-get upgrade -y`

Having finished the update, let’s download the wget. Paste the command below into the terminal and click enter.

`sudo apt-get install wget -y`

Now let’s download Julia. Paste the command below into the terminal and click enter.

`wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.6/julia-1.6.0-linux-aarch64.tar.gz`

Next step, extract the downloaded file. Paste the command below into the terminal and click enter.

`tar -xvzf julia-1.6.0-linux-aarch64.tar.gz`

Having extracted the file, it is no longer needed. To delete the file, paste the command below into the terminal and click enter.

`rm julia-1.6.0-linux-aarch64.tar.gz`

Last step, create a symbolic link to the Julia language. Paste the command below into the terminal and click enter.

`cd`  
`mkdir bin`  
`echo "export PATH=\$HOME/bin:\$PATH" >> ~/.bashrc`  
`. ~/.bashrc`

After that last command, paste the command below into the terminal and click enter.

`ln -s "$HOME"/julia-1.6.0/bin/julia "$HOME"/bin`

## Run Julia!

Run Julia with the `julia` command. Enter PKG mode, and install Pluto.jl.

After installing Pluto.jl, start a Pluto.jl server and copy the link.  
`using Pluto; Pluto.run()`

For a better experience with Pluto.jl use the Via browser. Open Via, on the toolbar click the options icon \> tools \> user agent. Select the “Chrome PC” option.

 ![Screenshot_20210403-103845_Via](https://global.discourse-cdn.com/julialang/original/3X/8/d/8d1b9c4b9cf91aefc87b35dc811d8cf68ca2d06f.jpeg)

Now paste the Pluto.jl link in the Via address bar and start programming!

Obs.: Plots.jl does not run.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [April 3, 2021, 2:43pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/2 "2021-04-03T14:43:06Z")

</div>

This is brilliant!  
Would you know how to increase the font size?  
Tried command below but no luck:

```julia
gsettings set org.gnome.desktop.interface text-scaling-factor 2

```

---

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 3, 2021, 3:01pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/3 "2021-04-03T15:01:47Z")

</div>

Sorry @rafael.guerra. I don’t know how to change the terminal font size.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [April 3, 2021, 3:48pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/4 "2021-04-03T15:48:46Z")

</div>

@eliascarv, fyi the two-finger zoom technique seems to work fine and to stick.  
Many thanks for your great post.

---

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 3, 2021, 3:57pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/5 "2021-04-03T15:57:07Z")

</div>

You’re welcome! I didn’t know that the zoom gesture worked. I ended up learning something new too.

---

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 24, 2021, 12:26am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/6 "2021-04-24T00:26:07Z")

</div>

New commands for Julia 1.6.1:

`sudo apt-get update && sudo apt-get upgrade -y`

`sudo apt-get install wget -y`

`wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.6/julia-1.6.1-linux-aarch64.tar.gz`

`tar -xvzf julia-1.6.1-linux-aarch64.tar.gz`

`rm julia-1.6.1-linux-aarch64.tar.gz`

`cd`  
`mkdir bin`  
`echo "export PATH=\$HOME/bin:\$PATH" >> ~/.bashrc`  
`. ~/.bashrc`

`ln -s "$HOME"/julia-1.6.1/bin/julia "$HOME"/bin`

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [April 29, 2021, 10:44am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/7 "2021-04-29T10:44:03Z")

</div>

Thanks for the good stuff.  
Maybe it would be helpful to also add instructions to remove the symbolic link to the previous julia version, and to remove the previous installation?

Also, would you know how to easily install in this case, the beautiful [JuliaMono](https://juliamono.netlify.app/) fonts?

---

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 29, 2021, 12:39pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/8 "2021-04-29T12:39:10Z")

</div>

To remove the old version of Julia, delete the old directory with the following command:  
`rm -r julia-1.6.0`

To remove the symbolic link from the old version of Julia, go to the `bin` folder with the following command:  
`cd bin`  
Then, delete the symbolic link with the following command:  
`rm julia`

After doing this, you can download the new version of Julia normally:  
`wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.6/julia-1.6.1-linux-aarch64.tar.gz`

`tar -xvzf julia-1.6.1-linux-aarch64.tar.gz`

`rm julia-1.6.1-linux-aarch64.tar.gz`

And finally, create the symbolic link for the new version:  
`ln -s "$HOME"/julia-1.6.1/bin/julia "$HOME"/bin`

---

<div class="post-metadata">

### Author: ![eliascarv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliascarv/32/22152_2.png) [@eliascarv](https://discourse.julialang.org/u/eliascarv)
#### Post date: [April 29, 2021, 12:55pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/9 "2021-04-29T12:55:45Z")

</div>

Regarding changing the source of the terminal, I don’t know if it is possible.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [April 30, 2021, 12:29am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/10 "2021-04-30T00:29:11Z")

</div>

Followed instructions from @cormullion posted [here](https://cormullion.github.io/pages/2020-07-26-JuliaMono/#download_and_install) and all steps below could be performed alright.

However, no signs of JuliaMono fonts after creating the **local.conf** file, restarting UserLand, Debian linux and Julia 1.6.1:

```julia
cd /usr/share/fonts/truetype/

wget https://github.com/cormullion/juliamono/raw/master/juliamono-ttf.zip

sudo apt install unzip
unzip juliamono-ttf.zip
rm -r juliamono-ttf.zip

sudo apt install font-manager

$ fc-cache -f -v

sudo apt install nano

nano /etc/fonts/local.conf
# create file with content:
<alias>
    <family>monospace</family>
    <prefer>
            <family>JuliaMono</family>
        </prefer>
</alias>

```

---

<div class="post-metadata">

### Author: ![Peter\_Adelman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/peter_adelman/32/11907_2.png) [@Peter\_Adelman](https://discourse.julialang.org/u/Peter_Adelman)
#### Post date: [April 30, 2021, 1:10am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/11 "2021-04-30T01:10:23Z")

</div>

I have been using Julia via Termux on Android for a while. I don’t remember anything more complicated than downloading it, though.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [April 30, 2021, 1:22am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/12 "2021-04-30T01:22:56Z")

</div>

@Peter_Adelman, are you using JuliaMono fonts?

PS: changed Termux for UserLand because found the latter very simple to install and to run Julia.

This JuliaMono fonts business is another story.

---

<div class="post-metadata">

### Author: ![JeffreySarnoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jeffreysarnoff/32/1980_2.png) [@JeffreySarnoff](https://discourse.julialang.org/u/JeffreySarnoff)
#### Post date: [May 18, 2021, 8:47pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/13 "2021-05-18T20:47:05Z")

</div>

Does this thread suggest Julia is available on the newer Samsung cellphones?

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [May 18, 2021, 8:59pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/14 "2021-05-18T20:59:46Z")

</div>

Julia 1.6.1 on Nokia 8.1 with Android 11:

 ![Julia_1.6.1_on_Android11_Nokia8.1](https://global.discourse-cdn.com/julialang/original/3X/b/8/b80e85868a651b6c2af9ec5726bc6077d7811b8c.png)

 ![Screenshot_20210519-024509](https://global.discourse-cdn.com/julialang/original/3X/f/d/fdf31b0074ac86de16114d3729604abefadf586b.png)

---

<div class="post-metadata">

### Author: ![Klaas\_Pauly](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaas_pauly/32/14819_2.png) [@Klaas\_Pauly](https://discourse.julialang.org/u/Klaas_Pauly)
#### Post date: [May 19, 2021, 8:31pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/15 "2021-05-19T20:31:57Z")

</div>

Not sure what you mean by newer Samsung cellphones exactly, but I have Julia 1.6.1 running using this procedure on Samsung Tab S3 (Android 9, kernel v3.18, OneUI v1.1) as well as Samsung A40 (Android 11, kernel v4.4, OneUI v3.1). Neither is really “new”, but just to show that it works on a range of android versions on Samsung devices including the current release. Since Android 10 UserLAnd cannot grant blanket access to the SD card but that’s a known UserLAnd issue not specific to Samsung, and the issue including workarounds is explained in the app’s wiki.

---

<div class="post-metadata">

### Author: ![photor](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/photor/32/14343_2.png) [@photor](https://discourse.julialang.org/u/photor)
#### Post date: [February 14, 2022, 3:39pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/16 "2022-02-14T15:39:46Z")

</div>

I had successfully installed jupyter notebook for julia in arch linux on an Android cell phone. It was really nice.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [July 12, 2022, 8:37pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/17 "2022-07-12T20:37:51Z")

</div>

Installed latest UserLand App for Android and had to use modified command:  
`wget https://julialang-s3.julialang.org/bin/linux/aarch64/1.7/julia-1.7.3-linux-aarch64.tar.gz --no-check-certificate`

Then ran into trouble, with Julia launching but then immediately crashing with following error:

> **SYSTEM: caught exception of type**
>
> ```julia
> SYSTEM: caught exception of type
> 
> ^Cfatal: error thrown and no exception handler available.
> InterruptException()
> jl_mutex_unlock at /buildworker/worker/package_linuxaarch64/build/src/julia_locks.h:129 [inlined]
> jl_task_get_next at /buildworker/worker/package_linuxaarch64/build/src/partr.c:484
> poptask at ./task.jl:862
> wait at ./task.jl:871
> task_done_hook at ./task.jl:579
> _jl_invoke at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2247 [inlined]
> jl_apply_generic at /buildworker/worker/package_linuxaarch64/build/src/gf.c:2429
> jl_apply at /buildworker/worker/package_linuxaarch64/build/src/julia.h:1788 [inlined]
> jl_finish_task at /buildworker/worker/package_linuxaarch64/build/src/task.c:218
> start_task at /buildworker/worker/package_linuxaarch64/build/src/task.c:888
> userland@localhost:~/julia-1.7.3/bin$
> 
> ```

Any advice? Thanks in advance.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [August 5, 2022, 12:04pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/18 "2022-08-05T12:04:29Z")

</div>

Has anyone managed to install the latest UserLand Android app and run Julia?

Linking [related thread](https://discourse.julialang.org/t/system-caught-exception-of-type/87538).

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [November 4, 2022, 12:05am UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/19 "2022-11-04T00:05:35Z")

</div>

Android has over 2.8 billion active users and holds a global market share of 75%. So here it goes a shout-out for play, do, learn Julia on Android.

---

<div class="post-metadata">

### Author: ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)
#### Post date: [January 4, 2023, 10:55pm UTC](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498/21 "2023-01-04T22:55:01Z")

</div>

I usually use Julia on Android via Termux installed by FDroid:

> **[Termux | F-Droid - Free and Open Source Android App Repository](https://f-droid.org/en/packages/com.termux/)**
>
> Terminal emulator with packages

[Next page](https://discourse.julialang.org/t/using-julia-on-android-with-userland/58498.md?page=2)
