8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Termux】AndroidにVSCode ServerとDenoを導入する

Last updated at Posted at 2022-09-26

(2024-12-16 最新情報に大幅更新しました)

もうソフトウェア開発はスマートフォンで完結する時代が近くまで来ているかも知れません。

Termux

ここでTermuxのおさらいです。

Androidは Linux Kernel を基礎とした Android Kernel で動いているため、基本的にはLinuxバイナリがそのまま動きます。

TermuxはLinuxターミナルのようにAndroidをコマンドラインターミナルで操作するための端末アプリです。

検証環境

私が正常動作を確認した端末です。
割と最近の端末でも問題なく動作します。

端末名 型番 OS Root権限
GALAXY S 9+ SM-G9650 Android 8
GALAXY S 22 SCG13 Android 13
AQUOS Sense 8 SH-54D Android 14

インストール

まずはTermuxをインストールします。
リポジトリのリリースから最新版のAPKをダウンロードして、ファイルエクスプローラーなどからインストールしましょう。

インストールが完了しアプリを起動したら、とりあえず最低限の作業環境を整えておきます。

# ストレージへのアクセス許可
termux-setup-storage

# パッケージを更新
apt update -y && apt upgrade -y && apt autoclean -y && apt autoremove -y

# 基礎ツールをインストール
apt install -y busybox openssh termux-services proot-distro

# Termux起動時にsshdを自動起動
sv-enable sshd

# SSHでログインする際のパスワードを登録
passwd

# Ubuntuをインストール
proot-distro install ubuntu

これで作業が捗るようになりました。

今回導入するVSCode ServerやDenoは、そのままTermuxからは実行できません。
必ず先ほどインストールしたUbuntuから実行する必要があります。

パッケージマネージャ経由でインストールするツールについては、UbuntuでインストールしたものはTermuxからは実行できませんが、TermuxでインストールしたものはUbuntuから実行できます。

主な理由としては、一部のライブラリがAndroidと一般的なLinuxディストリビューションで異なるためです。

# Ubuntuにログイン
proot-distro login ubuntu --fix-low-ports --shared-tmp --termux-home

# パッケージを更新
apt update -y && apt upgrade -y && apt autoclean -y && apt autoremove -y

# 実行ファイルをダウンロード
busybox wget -O - 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-arm64' | busybox tar x -zO 'code' > /usr/local/bin/code
busybox wget -O - 'https://github.com/denoland/deno/releases/latest/download/deno-aarch64-unknown-linux-gnu.zip' | busybox unzip -p - 'deno' > /usr/local/bin/deno

# パーミッションを変更
chmod 700 /usr/local/bin/*

# 動作確認
code -V
deno -V

ちなみに、Ubuntuにログインするとスーパーユーザーとなりますが、これは PRoot という技術を使用しているためです。
実際にAndroidのRoot権限を取得しているわけではありません。

VSCode Serverを起動するときは serve-web サブコマンドを使用します。
Android内のローカルホストにVSCode Serverが構築されます。

# 127.0.0.1:8000をリッスン
code serve-web

後は、見慣れた画面で思うがまま開発を進められます!

SSH接続

SSHを使用して外部からTermuxを操作することも可能です。
実際に私も、自宅ではPCからアクセスして作業することがあります。

接続する際のパラメータを参考に載せておきます。
Termuxのsshdはデフォルトのリッスンポートが 8022 に変更されているので注意です。

この例では、無線LANなどでAndroidとPCが同じローカルネットワークに存在する想定です。
IPアドレスは適宜読み替えてください。

# 普通にログインする場合
ssh -p 8022 termux@192.168.0.1

# 直接Ubuntuにログインする場合
ssh -t -p 8022 termux@192.168.0.1 'proot-distro login ubuntu --fix-low-ports --shared-tmp --termux-home'

# PCからAndroidのVSCode Serverにアクセスする場合 (SSHポートフォワード)
ssh -TNg -p 8022 -L 127.0.0.1:8000:127.0.0.1:8000 termux@192.168.0.1

ギャラリー

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?