AndroidはLinuxカーネルを利用しているため、「Androidでも開発環境を作ろう」という試みはいくつもされてきた。
個人的に「古いAndroid端末をスレイブノードにしたクラスターシステムを作りたい」という野望があり、いくつか試してみた。ここではそのAndroidで使えるターミナル環境をまとめてみようと思う。
#試したもの
##Android Terminal Emulator (ATE)
Google Play
おそらく調べた限りでは一番古い。
- 容量が軽い。
- 古い端末にも対応している。
- sshdが使えない(多分)。
- ハードウェアキーがUS配列にしか対応していない。(Google日本語入力を使えばJISが使える?)
##Termux
Google Play
- aptが使える。
- ポートが固定されているなど制約はあるが、sshd(sshサーバ)が使える。
- gccが使えずllvm系のclangを使う必要がある。fortranは使えるコンパイラがない。
- openMPIもaptでは入らない。
- Emacsが重い。
Archlinux on Termux
Termux上にArchLinuxをインストールすることもできる。
- ArchLinuxなのでpacmanが使える。
- gccが使える。
- sshdが走らない。
- 容量が全部合わせて4GB近くなった。スマホやタブレットの限られたストレージでこの容量は痛い。
##UserLAnd
prootという機能を使って疑似的なroot環境を再現しているらしい。別記事にて。
https://qiita.com/Bluepost59/items/7f5608dff98c82ffb668
#調べたもの
##GNURoot Debian
Google Play
名前に「Root」とあるが、root不要でインストールできる。prootという機能を使って疑似的なroot環境を再現しているらしい。インターフェースにATEを使っているようだ。
- aptが使える。
- gccも入る。
- openSSHではsshdを走らせることができないが、dropbearを使えばSSHサーバもできるらしい。
- なんと、お目当てのopenMPIもaptで入れることができる。
-
ATE同様US配列しか使えない。emacsでカーソルキーもつかえない(これはちゃんと設定すればいけるかも?)。Google日本語入力を使えばJIS配列で使える。(ただしいろいろ癖がある。これについては別記事でまとめたいと思う。) - 2018年夏頃に開発が終了し、UserLAndに受け継がれた模様。
##Linux on Android
https://qiita.com/iruka/items/5bcc36aa07518f099b5e
Androidに無理やりUbuntuをインストールする。rootが必要。手持ちの端末でrootを取ろうとしてできなかったので試せなかった。
Linux on Androidでクラスタコンピューティングをしている先行研究がある。
Android端末を使用したクラスタ計算機システムの構築
その研究グループはその後openMPIをAndroidNDKで実装しなおしているようだ。
無線接続型Androidクラスタシステムの自動構築制御手法
#キーボードとIME
CUIではCtrlやAltといったキーが必須になるが、通常のAndroid向けIMEの多くには備わっていない。そもそもコーディングするのにタッチは大変なので、物理キーボードはあった方がよい。
物理キーのつなぎ方はbluetoothでもUSBでもよい。最近は百均でもmicroUSB-USB Aの変換ケーブルを売っているので、108円でPCのものを流用できる。
#まとめ
おそらく一番お手軽なのはTermuxかUserLAndだと思う。gccを使いたいならUserLAnd一択だと思う。
ただしopenSSHでsshdが走ってMPIも使える、MPIクラスタのスレイブノードにできるものは見当たらなかった。もし知っていたら教えてください。