Android
 Computer >> コンピューター >  >> スマートフォン >> Android

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

スマートフォンにとって、Androidアプリは間違いなく最高の発明のひとつです。各アプリには特定の役割があり、Google Playストアの膨大な品揃えのおかげで、選択肢は無数にあります。しかし、アプリの最大の強みである「ひとつの仕事に特化する」という特性は、複雑なタスクに直面したときには逆に制約になり得ます。

Androidアプリはサンドボックス化され、GUIファーストで、平均的なユーザー向けに設計されています。しかし、すべての人が平均的なユーザーというわけではありません。AndroidスマホはフルのLinuxデスクトップを動かせるのですから、ターミナルを使い始めれば、「スマホに何ができるのか」という考え方は根本的に変わります。

AndroidでLinuxを動かす手段は主に2つ

すべてを可能にするターミナルツール

AndroidでLinuxターミナルを実行する方法は、大きく分けて2つあります。1つ目はTermuxです。無料かつオープンソースのターミナルエミュレータで、Android独自のBionic libcを使って最小限のLinux環境をスマホ上で動作させます。root権限は不要で、Debianのaptをベースにしたパッケージマネージャーを利用できます。

2つ目は、Google純正のLinuxターミナルです。Androidの新しい「ターミナル」アプリは、スマホ上で動く完全なDebian Linux仮想マシンです。Android Virtualization Framework(AVF)、そしてその基盤となるKVM(カーネルベース仮想マシン)技術により、通常のAndroidアプリと並行して動作するサンドボックス化されたLinux環境を構築します。いわば、スマホの中にもう一台の小さなコンピュータが入り、システムの他の部分から完全に隔離されている状態です。

両者の主な違いは、互換性とDebianリポジトリへのアクセス範囲です。TermuxはほぼすべてのAndroidスマホで動作しますが、パッケージマネージャーのpkgはDebianのパッケージライブラリほど充実していません。一方、Android標準のLinuxターミナルではaptにアクセスでき、Linuxのコマンドラインユーティリティを網羅的に使えますが、お使いの端末で利用できるかは機種次第です。

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと
Termux

OS: Android
価格モデル: 無料・オープンソース

Termuxは、Androidに本格的なLinuxターミナル環境をもたらすアプリで、コマンドラインツールやパッケージをネイティブに実行できます。

スマホがSSHサーバーになる

端末をミニマシンに変えるリモートアクセス

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

PlayストアにもSSHアプリはありますが、Linuxターミナルで動かせる本格的なSSHユーティリティほど便利ではありません。Android上でフルのLinuxターミナルが使えるなら、そうしたツールも自由に走らせられます。

Termuxなら、pkg install opensshの一撃でOpenSSHをインストールし、sshdを起動するだけで、スマホは一瞬にしてホームネットワーク上のアドレス指定可能なノードになります。タイムスタンプやパーミッションを保ったまま、rsyncでフォルダ丸ごとをスマホとPCの間で双方向に同期できます。Playストアの主流ファイル転送アプリでは、これを正しく処理できるものはほぼありません。

MTPはトラブルの元になりがちですし、Wi-Fi転送アプリは挙動が不安定です。SSH経由のrsyncなら毎回確実に動き、差分同期によって変更された部分だけを転送します。この方法で一度スマホのバックアップや写真ライブラリ全体のコピーをしてしまえば、もうケーブルを挿す時代には戻りたくなくなるでしょう。

スマホを実際にスクリプトできる

繰り返し作業を自動化する力

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

Androidアプリにも自動化機能はあります。しかし、それはほぼ自分自身のデータに限定されます。バックアップアプリは自分のバックアップしか予約できず、ギャラリーアプリは自分の写真しか整理できません。アプリ同士が思いどおりに連携することは、通常できません。ターミナルは、その力を与えてくれます。

GUIアプリは、同じ操作を100回繰り返す必要が出てきた瞬間に限界を迎えます。一方、コマンドラインはスクリプトと自動化のために生まれた存在です。Linuxターミナルがあれば、シェルスクリプトを書き、パイプやリダイレクトでコマンドをつなぎ、何段階もある面倒な作業を、実行・予約・設定ファイルに保存できるたった1つのコマンドに変えられます。

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

たった1つのスクリプトで、数百のファイルの一括リネーム、ログの処理、データのバックアップ、テキストの変換を、指が画面をスワイプするより速くこなせます。Androidでは、Termux:APIのような統合レイヤーと組み合わせると特に強力です。このTermuxコンパニオンアプリは、SMS送信、カメラの使用、GPSセンサーへのアクセス、バッテリー残量の照会といったAndroidシステムの一部を、小さなコマンドラインツールとして公開します。入門用のBashスクリプト例もネット上に豊富にあります。

なお、Termuxを使う場合は、シェルスクリプトから端末のハードウェアやOS機能へ直接アクセスするためにtermux-apiパッケージが必要です。Android標準のLinuxターミナルでは、追加のものは一切不要です。

ポケットの中のサーバーになる

手のひらからサービスをホスト

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

Android上でLinuxが動いているなら、それをサーバーにすることだってできます。古いAndroidスマホは、想像以上に優秀なミュージックサーバーになり得ますし、デスクトップ機で動くサーバーとまったく同じように振る舞います。Wi-Fiメディアサーバー、Googleドライブの代わりになるファイル共有サーバーなど、Linuxで動作し、さほど重いハードウェアを要求しないものなら、ほぼ何でも担えます。

TermuxはJellyfinによるメディアストリーミング、個人Webページの公開、トレントクライアント、スマートホーム自動化の常時稼働ノードとしても機能します。しかも、root化は一切不要。いつでも元通り、普通のスマホとしてすぐに使い続けられます。

デスクトップにだってなる

GUI、キーボード、そして驚くほど実用的な環境

外出先でノートPCを忘れ、どうしてもデスクトップ環境が必要になった――そんなときも、Linuxターミナルがあればスマホは即席でフル機能のLinuxデスクトップに変わります。PixelにLinuxをインストールしたところ、それは立派なワークステーションになりました。

TermuxはTermux-X11などのコンポーネントと組み合わせることで、Android上にXサーバーを構築できます。そこにPRoot化したDebianやArchを載せれば、XFCEのような軽量デスクトップ環境を起動でき、パネルやウィンドウ、グラフィカルアプリまで揃います。

本格的なデスクトップ体験のためには、USB-Cドックを使ってキーボード、マウス、モニター、可能ならイーサネットケーブルまで接続するのがおすすめです。この構成は万人向けではなく、専用のLinuxマシンほど滑らかではありませんが、普通のAndroidアプリでは実現できない用途を開放してくれます。伝統的なLinux GUIアプリを動かし、拡張機能付きの本物のデスクトップブラウザで作業でき、事実上、常にミニLinuxコンピュータをポケットに入れていることになります。

ここからがAndroidの本当の楽しさ

Linuxが切り拓く新しいコントロールの層

Androidの隠れたポテンシャルを解放する――Linuxターミナルが実現する、アプリストアだけでは不可能なこと

Android上のLinuxは、想像以上に実用的です。特に日々の作業にターミナルやサーバーが関わる人にとっては顕著でしょう。導入とセットアップは簡単で、扱いはさらに簡単。そして端末に何らかのダメージを与えることも一切ありません。

もちろん制限もあります。GUIアプリを扱うには画面サイズが物足りないこともありますし、Androidのタッチキーボードはターミナル用途には決して最適とは言えません。そしてパフォーマンスの問題もあります。Androidスマホは多くのことができますが、デスクトップやノートPCのように重い計算処理を高速にこなすことはできず、引き出せる性能には限界があります。

それでも、基本的なコンピューティング、スクリプティング、リモートアクセス、ファイル管理、自動化という用途において、ターミナルは十分すぎるほどの働きをしてくれます。何より嬉しいのは、完璧なアプリを求めてPlayストアを探し回る必要がもうないということです。

著者について

Yadullah Abidi氏はデリー大学でコンピュータサイエンスを専攻し、チェンナイのAsian College of Journalismでジャーナリズムの修士号を取得。Windows/Linuxシステム、プログラミング、PCハードウェア、サイバーセキュリティ、マルウェア分析、ゲーム分野で10年以上の経験を持ちます。現在はMakeUseOfのスタッフライターとしてサイバーセキュリティ、ゲーム、コンシューマーテックを担当しており、JavaScript/TypeScript、Next.js、MERNスタック、Python、C/C++、AI/MLに精通したフルスタック開発者でもあります。

  1. Androidで画像キャッシュを特定して消去し、ストレージ容量を回復する方法

    Androidスマートフォンは、持ち運びのしやすさと十分なバッテリー駆動時間により、世界中で高い人気を誇っています。しかし、ストレージ容量の限界という課題は依然として残っています。この問題は、外部ストレージを利用するか、ジャンクファイルやキャッシュファイルによって無駄に占有されている領域を解放することで解決できます。本記事では、無料アプリ「Systweak Photos Cleaner」を使って、画像キャッシュや一時的な画像ファイルを削除し、内部ストレージの空き容量を回復する方法をご紹介します。 Androidで画像キャッシュを特定・削除して容量を回復する手順 Photos Cleanerの

  2. デジタルスレートはお子様のアルファベット習得にどう役立つ?幼児向け学習アプリ「ABCD Drawing」徹底解説

    パンデミックが世界中に広がる中、小さなお子様を学校へ通わせることは容易ではありません。しかし、英語のアルファベットの習得は、今後のあらゆる教育の基礎となる重要なステップです。大人にとってアルファベットを覚えることは簡単に思えますが、子どもにとっては文字を覚え、識別し、書くことは決して簡単なことではありません。こうした背景を踏まえ、Systweak Softwareは、アルファベット学習をゲーム感覚で楽しめるアプリを開発しました。本記事では、子どもたちが勉強していることに気づかないまま、アルファベットと数字を自然に学べる「ABCD Drawing」アプリをご紹介します。 ABCD Drawing