この記事は編集レビューを必要としています。ぜひご協力ください。
アプリケーションを開発、配布するにあたって、B2G OS 上でアプリがどのように起動、管理されるのか、その詳細について理解する必要はありませんが、多少なりとも関心はあるかもしれません。また、この情報は B2G OS プラットフォーム開発者や、OS を新しいハードウェアへ移植するチームにとっても有益なものとなるでしょう。
アプリの起動プロセス
ユーザが起動したいアプリを選択した場合、あるいはアプリが起動される必要がある場合、App
API からのアプリ参照を得ることによってホーム画面アプリが起動し、App.launch()
メソッドを呼び出してアプリを起動します。
Gecko はそのリクエストを受け取り、System アプリへ mozChromeEvent
を送り、アプリの詳細を伝えます。System アプリは、自身の DOM ツリーへ新しい <iframe>
を挿入し、そこにアプリを読み込むことで、そのイベントを処理します。アプリが終了するまで、そのフレームがアプリの居場所となります。
各アプリはアプリの情報を記述したマニフェストを必要とし、そのパッケージ内で特定のファイル構造を持ちます。詳しくは アプリマニフェスト の記事を参照してください。
Gecko との通信
Gecko と Gaia の System アプリ間の通信は mozChromeEvent
と mozContentEvent
を通じて行われます。mozChromeEvent
はクロームからコンテンツへの送出であり、mozContentEvent
はコンテンツからクロームへの送出です。この通信は、信頼された UI の作成と閉鎖を管理したり、通知やその他のタスクのために必要な機能を挿入したりするのに使用されます。これにはあるアプリを起動するよう System アプリへ伝えることも含まれます。
注: これに関するドキュメントは、System アプリやその下層の対応コードに取り組んでいる開発者が主に関心を持つものとはいえ、整備する必要があります。今のところ、b2g/chrome/content/shell.js
にあるコードを参照することで、これがどのように使われているか、多くの情報を収集できます。