Android Termux で日本語入力を行う / UserLAnd との併用

普段使っている Note PC よりもハイエンドスマートフォンの方が性能が良いことが判明してから、Android を Note の代わりに活用する方法をいろいろ試しています。主な用途は外出時の議事録などのメモ取りとちょっとしたプログラミングです。

Android 上で root なしに利用できる開発環境として Termux と UserLAnd があります。

UserLAnd は Android 上に PC とほぼ同等の Linux 環境を構築可能で日本語入力もできます。その代わり proot のオーバーヘッドがありファイルアクセスが遅くなっています。また GUI が使えるものの GPU が使われておらず、PC と比べると画面描画は低速です。

Termux はファイルアクセスのオーバーヘッドがなく高速ですがパッケージがあまり多くありません。日本語入力にも非対応。

機能面では UserLAnd だけで済むのですが、速度面で少々難があるので工夫が必要です。下記はライブラリのコンパイル時間の比較です。

Google Pixel 3 (Android 9.0 Pie) Snapdragon 845
実行環境 Compiler Time (秒)
(1) Termux clang-7.0.1 32.6
(2) UserLAnd Debian + Termux VNC clang-7.0.1 34.5
(3) UserLAnd Ubuntu 18.04 SSH clang-6.0.0 72.9
(3) UserLAnd Debian Stretch VNC clang-3.8.1 220.4
(3) UserLAnd Debian Stretch SSH clang-3.8.1 219.0
Essential Phone PH-1 (Android 9.0 Pie) Snapdragon 835
実行環境 Compiler Time (秒)
(1) Termux clang-7.0.1 38.4
(2) UserLAnd Ubuntu + Termux VNC clang-7.0.1 40.5
(2) UserLAnd Debian + Termux VNC clang-7.0.1 41.7
(3) UserLAnd Debian Stretch VNC clang-3.8.1 423.6
(3) UserLAnd Debian Stretch VNC clang-4.0.1 456.9
(3) UserLAnd Ubuntu 18.04 VNC clang-6.0.0 95.6
(3) UserLAnd Arch SSH clang-7.0.1 107.0

・Time (秒) の値が小さい方が高速

(1) = Termux のコンソールから直接実行
(2) = UserLAnd から ssh で Termux に login して実行
(3) = UserLAnd 上で直接実行

Termux (1) が一番速く、UserLAnd 経由で Termux を利用した場合 (2) もほぼ速度が落ちずに済んでいます。

Termux と比べると UserLAnd は 2〜12倍くらい遅くなっています。かなりばらつきがあり Debian が極端ですが原因はわかっていません。

UserLAnd は Desktop アプリの利用や日本語入力などの環境として利用して、Termux でできる作業は Termux で行うのが効率良いことがわかります。

上の結果 (2) では Desktop 上の LXTerminal から Termux に ssh 接続していますが、ウィンドウ上の Terminal の描画は遅くなります。パフォーマンスが低いデバイスでは X11/VNC ではなく UserLAnd の SSH から Termux にログインすることをお勧めします。こちらの方が Terminal の描画は高速で、uim-fep の日本語入力が使えるようになります。

● Termux で日本語入力を行う方法

1. UserLAnd に任意の Distribution をインストールして日本語環境を設定
2. Termux 上で sshd を起動
3. ssh で Termux にログイン

● 1. UserLAnd の設定

4通りの方法を wiki にまとめました。

Ubuntu + SSH コンソールでの日本語入力 (uim-mozc)
Debian + SSH コンソールでの日本語入力 (uim-mozc)
Ubuntu + VNC デスクトップでの日本語入力 (fcitx-mozc)
Debian + VNC デスクトップでの日本語入力 (uim-mozc)

その他 UserLAnd 関連はこちら
Android の上の開発環境: UserLAnd

● 2. Termux の設定と sshd の起動

Termux では予め sshd を起動しておく必要があります。手順は下記の通り。ssh でログインするためにはパスワードの設定が必要です。

$ pkg update
$ pkg install openssh
$ passwd
パスワードの設定
$ sshd

● 3. Termux へのログイン

UserLAnd から Termux へのログイン方法。VNC (LXDE desktop) を使う場合は LXTerminal を使ってください。

$ ssh localhost -p 8022

●実際に使用してみて

Snapdragon 845 クラスのスマートフォンでは Ubuntu + VNC + Termux で十分だと感じます。議事録などのメモ用途で使う場合は、Bluetooth Keyboard があれば Note PC 代わりになりますし、外出時のコードの確認にも使えます。

どこでも作業空間を作り出せる Oculus Go も非常に魅力なのですが、VR にパワーが取られてしまい VNC は重くなります。テキストエディタの作業は SSH Console の方をお勧めします。もっとパワーのあるスタンドアロン機種や、ハイエンド機種 + GearVR/Daydream だったらもう少し快適な作業ができるかもしれません。

関連ページ
Android の上の開発環境: UserLAnd
Android の上の開発環境: Termux

関連エントリ
Android 9.0 と Bluetooth Keyboard による日本語入力
Android で動く Linux 環境 UserLAnd が XServer XSDL に対応
Oculus Go を文章書き&開発マシンにする
UserLAnd とブラウザ
Android 上の開発環境と UserLAnd
OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd