androidで簡易Web開発環境をつくる

Tools
Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

あまり実用性はありませんがなんとなくやってみたのでメモ

環境:Galaxy Note SC-05D 純正ROM android 4.1.2 rooted

Terminal IDEをインストール

Gitが使えるターミナルエミュレーターです。ほかにjavaのコンパイラやtelnetサーバーなどもついています。

ただし日本語対応していないうえ、外部キーボードは英語配列でしか使えません。

普段使いには辛いので、Gitなどを使うとき限定で使用します。

Vim Touchをインストール

日本語に対応している、android版のvimです。Terminal IDEのvimは日本語が使えないなどの制約があるので、コードを触るときは基本的にはこちらを使います。プラグインも簡単なものならPC版などと同じように動くので、vim使いの人ならかなり便利に使えると思います。

IMEによっては日本語入力ができなかったりしますが、google日本語入力を使えば問題なしです。

.vimrcは内部ストレージの直下に置いておけば読んでくれます。

プラグインは Terminal IDEと併用してNeoBundle等で管理するか、.vimrcで個別にruntimepathを設定して読みこむようにします。

物理キーボードを使用

Bluetoothキーボード(ELECOM TK-FBP052BK)を使用。

そのままだと英語配列になってしまうので、Google日本語入力の設定で物理キーボードの配列を日本語配列109にします。rooted端末ならkl, kcmファイルを追加して日本語配列化した方がIMEを問わず使えて便利です。

参考:Androidでも日本語キーボードが使える。キーレイアウトファイル(要rooted)

もっともこの設定をしてもTerminal IDEではやっぱり英語配列になってしまいます。

Bit Web Serverをインストール

Xampp、Mampのようなものです。

Webサーバー(lighttpd)、php、mysql、phpmyadminが含まれます。

Terminal IDEでGitを使う

Terminal IDEではhttp(https)が使えないのでSSHかgitプロトコルを使います。gitプロトコル使うときは名前解決ができないようなのでIPを直打ちする必要があります。

以下作業はTerminal IDE上で行います。

Terminal IDEのホームディレクトリは /data/data/com.spartacusrex.spartacuside/files/ です。

SSH接続用の公開鍵・秘密鍵を作成

ssh-keygenで作成した鍵だとSSH接続時にエラーがでるので、Terminal IDE付属のdropberkeyで作成します。パスフレーズは設定できません。またdropbearkeyに対応したサーバーでなければログインできません。ちなみにgithubやbitbucketにはログインできました。

$ mkdir ~/.ssh
$ dropbearkey -t rsa -f ~/.ssh/id_rsa
$ dropbearkey -y -f ~/.ssh/id_rsa | grep "^ssh-rsa" >> ~/.ssh/authorized_keys

作成したら公開鍵(authorized_keys)をサーバーにアップします。

SSH の設定

SSHを使うときに~/.ssh以下を自動で読み込んでくれたりはしないので、環境変数のGIT_SSHにラッパースクリプトを指定して、秘密鍵を使えるようにします。

$ vi ~/.bashrc

# 以下を追加
alias ssh='ssh -i ~/.ssh/id_rsa'
export GIT_SSH=~/bin/ssh_git
$ mkdir ~/bin
$ vi bin/ssh-git

# 以下を記述
#!/data/data/com.spartacusrex.spartacuside/files/system/bin/bash
exec ssh -i ~/.ssh/id_rsa "$@"

パーミッションを変更します。

$ chmod 755 ~/bin/ssh_git

Gitのユーザー情報を設定

.gitconfig等にユーザー情報を設定してもコミット時に反映されないようなので、環境変数でユーザー情報を設定します。

$ vi ~/.bashrc

# 以下を追加
export GIT_AUTHOR_NAME="{username}"
export GIT_AUTHOR_EMAIL="{username}@{domain}]"
export GIT_COMMITTER_NAME=$GIT_AUTHOR_NAME
export GIT_COMMITTER_EMAIL=$GIT_AUTHOR_EMAIL

SGitでGitを使う

GUIのGitクライアントアプリです。こちらはTerminal IDEとは逆にSSHが駄目でhttp(https)はOKです。コミットメッセージに日本語が使えるので、日本語でコミットをしたい場合や、httpが使いたい場合はこちらを使います。

SGitで新規にリポジトリを作成する場合にはディレクトリが指定できないので、Terminal IDEで好きな場所にリポジトリをつくり、SGitでインポートするのがおすすめです。インポートしたらoriginのURLをhttpに変えましょう。

おわりに

興味本位でやってみましたが、お世辞にも快適とは言いがたいです。ツールが不十分でセキュリティにも不安が残ります。

素直にノートパソコンにubuntuでも入れて使いましょう。

参考

Getting git Working on Android Devices

SSH and GIT on Android with Terminal IDE

コメント