GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Android-Startup.html ・ emacs-doc.conao3.com

H.2 AndroidでEmacsを起動する

Emacsは、ソースコードやパッケージマネージャー経由でAndroidデバイスにインストールされるわけではありません。代わりに、別のオペレーティングシステム上でAndroid向けにコンパイルされ、生成されたバイナリがアーカイブにまとめられた後、それがシステムに転送されてインストールされます。

インストール後、システムはデスクトップ(いわゆる「ホーム画面」)にアプリケーションアイコンを配置します。その後、そのアプリケーションアイコンをクリックするとEmacsが起動します。

起動時、Emacsはシステムログバッファにメッセージを表示します。起動時にそのバッファを読み取るには、別のコンピュータにAndroid Debug Bridge (adb) ユーティリティがインストールされている必要があります。

Androidシステムで「USBデバッグ」機能を有効にし、adbユーティリティがインストールされた別のシステムにUSBで接続すると、その別のシステムで以下のコマンドを実行することでログを確認できます。

$ adb logcat | grep -E "(android_run_debug_thread|[Ee]macs)"

GNU/LinuxまたはUnixシステムにadbユーティリティがインストールされていることを前提に、以下の手順に従ってデバイスに接続してください。

  1. システム設定アプリの「端末情報」ページを開き、「ビルド番号」または「カーネルバージョン」の項目を5〜7回タップして、デバイスの「開発者向けオプション」を有効にしてください。
  2. 設定アプリの「システム」ページ内にあるはずの「開発者向けオプション」設定ページを開いてください。
  3. 「USBデバッグ」スイッチをオンにします。
  4. USBケーブルの一端をデバイスに、もう一端をコンピューターのUSBポートに接続してください。
  5. お使いのコンピューターでコマンド adb shell を実行してください。接続済みデバイスへのアクセス権限がまだ付与されていないため、実行に失敗するかフリーズします。
  6. お使いのデバイスに表示される、コンピューターからのアクセスを許可するかどうかを問うポップアップを確認してください。

インストールされている Android や adb のバージョンによっては、他にも接続を確立する方法があるかもしれません。詳細については、公式ドキュメント https://developer.android.com/studio/command-line/adb を参照してください。

Emacs が起動したら、非同期シェルコマンドとして logcat コマンドを実行するだけで(Emacs からシェルコマンドを実行する を参照)、ログバッファが表示されます。

他のAndroidプログラムからemacsclientプログラム(Emacsをサーバーとして使用するを参照)を起動する方法はないため、Emacsはemacsclientプログラムのラッパーを提供しており、これは任意のファイルを開くことができるアプリケーションとしてシステムに登録されています。

そのラッパーがファイルを開くプログラムとして選択されると、オプション --reuse-frame、--timeout=10、--no-wait および開くファイルの名前を指定して emacsclient を呼び出します。その後、正常に終了すると、フォーカスは開いている任意の Emacs フレームに移動します。

ただし、ラッパーを開いた時点で Emacs が起動していない場合は、Emacs を起動し、開くべきファイルを引数として渡します。なお、その Emacs がさらに Emacs サーバーを起動しなかった場合、その後ラッパーでファイルを開こうとしても失敗します。

一部のファイルは、通常のファイルシステムAPIとは独立してシステムがアクセスを提供する「コンテンツ識別子」としてEmacsに渡されます。Emacsは、/content/by-authority および /content/by-authority-named という名前の擬似ディレクトリを使用してこれらのファイルにアクセスします。これらのディレクトリの内容についていかなる想定もせず、また、自身でファイルを開けようとしないでください。

この機能は Android 4.3 以前では提供されておらず、その場合はこうしたファイルは開く前に一時ディレクトリにコピーされます。

Emacsは、通常のテキストファイルを開くだけでなく、emacsclientラッパーを「org-protocol」リンクを開くことができるプログラムとしても登録しています(The Org ManualのProtocolsを参照してください)。

さらに、ラッパーは mailto URI にメールを送信できるプログラムとしても登録されており、そのような URL を開くために呼び出された際は、その URI を第1引数として関数 message-mailto を呼び出します。 この機能は、Emacs サーバーが既に起動していない場合には動作しません。