AndroidデバイスでのEmacsのインストールは、ソースコードやパッケージマネージャーを経由しません。別のオペレーティングシステム上でAndroid用にEmacsをコンパイル、そのバイナリーをアーカイブにパッケージングしてからシステムに転送してインストールします。
インストール後にシステムがアプリケーションアイコンをデスクトップ(“ホームスクリーン”とも呼ばれる)に配置します。そのアプリケーションアイコンをクリックすると、Emacsが起動します。
Emacsはスタートアップ中のメッセージをシステムログバッファーに表示します。スタートアップ中にこのバッファーを読み取るためには、別のコンピューターにadbユーティリティー(Android
Debug Bridge)が必要になります。
Androidシステムで“USB
Debugging(USBデバッグ)”の機能を有効にした後に、adbユーティリティーがインストールされている別のシステムで以下のコマンドをUSB経由で実行すれば、ログを閲覧できます:
$ adb logcat | grep -E "(android_run_debug_thread|[Ee]macs)"
adbユーティリティーがGNU/LinuxあるいはUnixシステムにインストールされていると仮定すると、以下の手順にしたがってデバイスに接続できます。
adb
shellを実行する。接続済みデバイスへのアクセス権限をコンピューターにまだ付与していないので失敗、あるいはハングするだろう。
Androidおよびインストールしたadbのバージョンに応じて接続を確立する方法は異なるかもしれない。詳細については公式ドキュメントhttps://developer.android.com/studio/command-line/adbを参照してください。
Emacsが起動したら、非同期シェルコマンド(Emacsからのシェルコマンドの実行を参照)としてコマンドlogcatを実行するだけでログバッファーが表示されるでしょう。
別のAndroidプログラムからemacsclientプログラム(サーバーとしてのEmacsの使用を参照)を開始する方法が存在しないので、すべてのファイルをオープン可能なアプリケーションとして、Emacsがemacsclientのラッパープログラムを提供してシステムに登録します。
ファイルをオープンするプログラムとしてこのラッパーが選択されると、ラッパーがオプション--reuse-frame、--timeout=10、--no-wait、およびオープンするファイルの名前とともにemacsclientを呼び出します。それが成功するとオープンされているEmacsフレームにフォーカスが移ります。
ラッパーのオープン時にEmacsが実行中でなければ、オープンするファイルを引数としてEmacsを開始します。起動されたEmacsがその後にEmacsサーバーを開始しなければ、その後のラッパーによるファイルのオープンは失敗することに注意してください。
一部のファイルは“content identifiers”(システムにより提供される通常のファイルシステムAPIの範囲外へのアクセス)としてEmacsに与えられます。一部のファイルは“content identifiers”(システムによって提供される通常のファイルシステムAPI外部へのアクセス)としてEmacsに与えられます。これらのファイルにアクセスするために、Emacsは/content/by-authorityおよび/content/by-authority-namedという名前の疑似ディレクトリーを使用します。これらのディレクトリーの内容について何か仮定したり、ディレクトリーのファイルを自分でオープンしないでください。
この機能はAndroid 4.3以前では提供されていないので、それらのファイルはオープン前に一時ディレクトリーにコピーされます。
普通のテキストファイルに加えて、Emacsはemacsclientラッパーを“org-protocol”リンク(Protocols in The Org Manualを参照)をオープン可能なプログラムとしても登録します。
さらにこのラッパーはmailtoのURIにメールを送信可能なプログラムとしても登録されます。そのようなURLをオープンするために呼び出されると、そのURIを1つ目の引数として関数message-mailtoを呼び出します。この機能はEmacsサーバーがまだ実行されていなければ機能しません。