みんなのケータイ

Androidの内なるLinuxコマンドを実行できる「Android Terminal Emulator」。ウィンドウをいくつも開けたり、表示内容をメール発信できたりとかなり強力なターミナルアプリだ

 山根氏がWindows Phone向けの「MS-DOS Mobile」の話を書いていたので、私もZenFone 5にインストールしている「Android Terminal Emulator」を久しぶりに起動してみた。なんというか、このアプリはWindows Phoneの遊びと違って、Linux勢のガチさを思い知らされる一品だ。

 AndroidというOSは、大雑把に言えば、かなりチューンされたLinux OSと、Dalvik(またはART)仮想マシン、それと諸々のソフトウェア類から構成された環境だ。だから、Windows PhoneにおけるDOSのようなジョークではなく、(かなりサブセットにはなるものの)Androidスマートフォンには中に、インターネット上のサーバーなどでも使われているガチの「Linux」が存在しているのである。

 そして、世の中には冗談や酔狂ではなく、結構本気でAndroidスマートフォンをLinuxマシンとして扱うためのソフトウェアを用意してくれている、尊敬すべき人たちがいる。

 「Android Terminal Emulator」または省略して「ATE」と呼ばれているアプリは、そんな尊敬すべき人たちの中の一人が、まず、内なるLinuxを触るための第一歩として用意してくれたツールのひとつで、Linuxコマンドを実行するコマンドライン環境だ。Google Playで「Terminal Emulator」や「端末エミュレータ」で検索すると、一番最初にこのアプリが表示されるので、インストール自体はなんなくできるだろう。

「Android Terminal Emulator」の入手は普通のアプリ同様、Google Playからできる。「端末エミュレータ」といった単語で検索すると先頭に表示されるはずだ

 実行すると、表示されるのは「$」のシンプルなコマンドプロンプト。そう、UNIX/Linuxのrootユーザーになったことのある人なら経験あるであろう、あのプロンプトが表示されるのだ。

 ちなみにAndroidに実装されているシェルは、UNIX由来のkshをコンパクトに作りこんだ「mksh」で、それ用に作ってやればシェルスクリプトなども当然実行できる。

【Android Terminal Emulator】
ポチポチとスクリーンをタッチしてソフトウエアキーボードからLinuxコマンドを打ち込んで実行することができる

 コマンドは、画面に表示されるソフトウエアキーボードからポチ、ポチ、と打ち込んでいけばいい。たとえば「uptime」というコマンドを打ち込んでやると、システムは「up time: 13 days, 03:47:02……」と、ZenFone 5の電源が入ってから13日と3時間47分02秒経っていることを教えてくれる。

 このアプリのダウンロードページには「あなたの内側に秘めている開発者魂を解き放ちましょう!」と説明が書かれている通り、スマートフォンのスマートさのガワをひっぺがして遊んでみたい少年の心を持つ者にはなんとも心惹かれてしまうアプリなのである。

 残念ながら、Android用のアプリというのは、Android内にあるLinuxカーネルより上のレイヤーにある仮想マシン上で動くように作られているため、このコマンドプロンプトから呼び出すというようなことはできないが、その代わり今まで母艦PCに接続してADBからデバッグ用コマンドで行っていた操作や、UNIX/Linux用に作られたさまざまなコマンドやアプリの実行が可能。Linuxマシンとして使う分にはかなりのことができる。

 ちなみに、ATEをインストールするとコマンド類はadb(アンドロイドデバッガー)からも使えるscreenshotなどのほか、システムディレクトリである/system/bin/*に入っているものが利用可能となる。また、筆者は使っていないのだが、busyboxなるLinuxの各種コマンドを実行可能にするツールや、vimなどのエディタも配布されているそうである。

SL4Aを使ってPerlスクリプトを、Android端末上で作ることもできる

 さらには、たとえばプログラミング好き人間のためには(こちらはGoogle PlayではなくAPKをインストールしなければならないのでハードルは高くなるが)、Androidには「SL4A」というIDE環境も用意されていて、スクリプティング言語であるPythonやPerlを使うこともできる。この環境では、各言語用のAndroid APIも用意されているのでたとえばPerlからAndroidのカメラを操作したり、GPSでの位置情報を得たりすることさえも可能となるようだ。

 ここまで来るともうガチすぎて何のことだかわからなくなってしまった読者も多いかもしれないが、とにかくAndroidをLinuxとして使おうというユーザーたちの努力とその成果は、ものすごいものである。

 もしLinux経験者であったり、プログラミングスキルがあるユーザーがいたら、これらのツールをちょっと触ってみてほしい。これらは、あなたの開発者魂を本当に解放してくれるかもしれないと、筆者は思うのだ。