Programando pelo Android com Termux

Para quem tem computador o Termux é um "quebra-galho" para emergências. Entretanto aqueles que não possuem computador podem meter-se em física computacional quase sem problema algum usando o Termux. A única limitação é quanto ao poder de processamento, mas hoje em dia o Android possui quase tanto poder, às vezes até mais, quanto um computador pessoal comum.
Para instalar o Termux basta baixar o aplicativo no Fdroid ou na PlayStore.


------------------------------------------------------------
1.0 - Preparando ambiente de trabalho:
------------------------------------------------------------

Uma vez instalado o Termux abra o aplicativo. Agora vamos baixar e instalar alguns programas que serão uteis:
# proot wget servem para downloads via terminal
# openssh serve para acesso remoto
# nano serve pra edição de arquivos de texto
# htop serve para monitoramento dos processor rodando no sistema
# coreutils serve para autorizar o app a ler sistema de arquivos
# clang serve para compilar programas em C e C++
# gnuplot serve para plotar gráficos
apt update && apt upgrade -y && apt install -y proot wget openssh nano htop coreutils clang gnuplot
#

Agora vamos vazer o Termux pedir permissão para ler a memória interna com o seguite comando:
termux-setup-storage

Se tudo deu certo você já possui instalado a maioria dos programas que irá usar.
------------------------------------------------------------
2.0 - Colorindo o terminal:
------------------------------------------------------------

Vamos coloririr um pouco o terminal, o arquivo .bashrc possui todas as configurações que são carregadas ao iniciar sessão. Baixe as configurações que eu utilizo:
wget -O $HOME/.bashrc 'https://github.com/ismaeldamiao/ismael-damiao-repo/raw/master/bash/bashrc/.bashrc'
#

Essas servem tanto para o termux quanto para um terminal no computador. Se desejar veja aqui o código fonte e instruções de como mudar as cores e os nomes que aparecem no terminal. Note que as configurações somente terão efeito ao iniciar nova sessão no Termux.

Para iniciar nova sessão você pode digitar exit ou "puxar" o menu da esquerda e tocar em new session.

Se quiser que apareça o desenho de um android com algumas informações do sistema toda vez que abrir o termux, inicie nova sessão no Termux, caso ainda não o tenha feito após baixar o script acima, e digite:
screenfetch

Se tudo deu certo o Terminal deve informar o usuário, o diretório atual e estar colorido.

------------------------------------------------------------
3.0 - Instalando o Ubuntu:
------------------------------------------------------------

Agora vamos preparar o ambiente para programar. Acima eu indiquei o clang como compilador de programas mas, na verdade, esse compilador é horrível, para resolver esse problema vamos instalar o Ubuntu chroot para Termux, ele vai funcionar como um verdadeiro terminal ubuntu. Digite:
wget -O ubuntu.sh 'https://drive.google.com/uc?export=download&id=1XGqchzzzz3bc9JuO8eKvHyHRrqRdOlFy' && bash ubuntu.sh
#

Pronto! Se tudo seu certo certo, sempre que quiser entrar no seu ubuntu digite:
start-ubuntu

Uma vez dentro do seu ubuntu instale novamente os compiladores e o editor de texto:
apt update && apt install -y gcc gfortran nano
#

Se tudo deu certo seu ubuntu está pronto para compilar programas em c, c++ e fortran!

Para sair do ubuntu e voltar ao Termux basta digitar:
exit

------------------------------------------------------------
4.0 - Manuseando arquivos:
------------------------------------------------------------

O Termux possui um diretório onde ele trabalha, mas os outros aplicativos não têm acesso a esse diretório. Além disso o Termux tem acesso aos arquivos do nosso ubuntu mas o ubuntu não têm acesso nem aos arquivos do Termux nem aos do telefone. Dessa forma, a depender do que queremos fazer, será necessário estar a mover/copiar os arquivos.

O manuseio de arquivos é o incoveniente do termux, seguem abaixo alguns comandos que podem lhe ajudar nessa tarefa:
# Para copiar para o ubuntu
cp arquivo $UBUNTU
# Para copiar do ubuntu
cd $UBUNTU
cp arquivo $HOME # ou
cp arquivo /sdcard
# Para copiar para a memória interna
cp arquivo /sdcard
# Para copiar da memória interna
cd /sdcard
cp arquivo $HOME #ou
cp arquivo $UBUNTU

Para entender melhor esses comandos experimente digitar:
echo $HOME
echo ~
echo $UBUNTU

Note que $HOME pode ser abreviado por ~ e é uma maneira mais simples de se referir ao diretório padrão do Termux, já $UBUNTU é uma maneira mais simples de se referir ao diretório root do Ubuntu que nós criamos.

Para abrir quase qualquer arquivo (imagens, vídeos, etc) externamente (com outro app) pelo Termux use o comando:
termux-open NomeDoArquivo

------------------------------------------------------------
5.0 - Programando:
------------------------------------------------------------

Baixe o Droid-Edit Pro, um aplicativo que será de grande utilidade para editar nossos códigos:
wget -O ~/storage/downloads/DrodEdit.apk 'https://drive.google.com/uc?export=download&id=1bssw1gExFR9lq192eKEqhpbDeLUUIrYP'
#

Para instalar o apk que baixamos use o seu gerenciador de arquivos, vá até o seu diretório de downloads a instale o apk.

Uma vez instalado o apk volte ao Termux vá à memoria interna e crie um arquivo com extensão .c para testar:
cd /sdcard && touch main.c

Agora abra o DroidEdit e através dele abra o arquivo que deixamos na memória do telefone. Se tudo deu certo você já pode escrever seu programa!

------------------------------------------------------------
6.0 - Testando(Opicional):
------------------------------------------------------------

Vamos fazer um teste, acredito que assim você, além de ver que funciona, entenderá melhor como usar o Termux. Para começar baixe meu programa Sierpinsky.f90:
wget -O Sierpinsky.f90 'https://github.com/ismaeldamiao/ismael-damiao-repo/raw/master/fortran/Sierpinsky/Sierpinsky.f90'
#

Antes de compilar, vamos mover ele para o ubuntu:
mv Sierpinsky.f90 $UBUNTU

Agora inicie seu ubuntu:
start-ubuntu

Agora compile com o gfortran:
gfortran Sierpinsky.f90 -o Sierpinsky.out

Agora execute o programa:
./Sierpinsky.out

Se tudo deu certo, foi gerado um arquivo chamado Sierpinsky_Gasket.dat. Saia do ubuntu:
exit

Copie o arquivo de dados para o diretório do Termux:
cp $UBUNTU/Sierpinsky_Gasket.dat ~

Vá até o diretório do Termux:
cd ~

Nesta página você encontrará um guia sobre o gnuplot. Abra o gnuplot:
gnuplot

Agora plote o "gráfico":
set terminal png size 720, 720
set output 'output.png'
set size square
set title "Sierpinsky"
plot "~/Sierpinsky_Gasket.dat" pt 8 ps 0.9
#

Se tudo deu certo, foi criada uma imagem com o nome output.png. Saia do gnuplot:
exit

Abra a imagem:
termux-open output.png

Se tudo deu certo, parabéns! Seu Termux está configurado e funcionando.


------------------------------------------------------------
BONUS:
------------------------------------------------------------

Irá ser de grande utilidade mudar o teclado do seu Android para facilitar o uso do Termux. Eu uso o AnySoftKey-board.

Já para quem vai programar exclusivamente pelo Android por algum tempo recomendo que compre um teclado USB e um cabo/conector OTG, ambos são baratos e fáceis de encontrar, sai bem mais em conta que comprar um PC. Isso é só uma dica para fascilitar na hora de programar e não é necessário segui-la.