Next: , Previous: , Up: EmacstとAndroid   [Contents][Index]


H.2 AndroidでのEmacsの起動

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システムにインストールされていると仮定すると、以下の手順にしたがってデバイスに接続できます。

  1. システム設定アプリケーションの“About”ページで“build version”か“kernel version”を5から7回クリックして“developer options(開発者オプション)”を有効にする。
  2. 設定ページ“developer options”をオープンする(設定アプリケーションの“system”ページの下にあるはず)。
  3. “USB debugging”をオンに切り替える。
  4. USBケーブルの終端にあるデバイスと、もう一方の終端にあるコンピューターのUSBポートを接続する。
  5. コンピューターでコマンドadb shellを実行する。接続済みデバイスへのアクセス権限をコンピューターにまだ付与していないので失敗、あるいはハングするだろう。
  6. コンピューターからのアクセスを許可するかどうかを尋ねる画面がデバイス上にポップアップされる。

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サーバーがまだ実行されていなければ機能しません。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.