Firefox OS関連

FirefoxOS


ここでFirefox OSのビルド・インストール方法、アプリ開発に関わる情報を紹介していきます。

■メニュー


Firefox OSについて

以下はMDN(Mozilla Developer Network)のFirefox OSのページの前文を翻訳して引用。
 Firefox OSはMozilla Boot to Gecko(B2G)プロジェクトによって開発された新時代のオペレーティング・システムです。根底ではLinuxカーネルが使用され、 Geckoベースのランタイムエンジンで起動します。そしてユーザーはHTML, JavaScript, その他オープンウェブアプリケーションAPIだけを使って開発したアプリケーションを走らせることができます。
  Firefox OSは現在非常に活発な開発のもとにあります。我々(Mozilla)はあなた方がGaiaを使用・ハックしたり、アプリを作成するのが簡単になる方法を模索しています。 しかしながら皆さんにはFirefox OSをビルドして携帯電話にフラッシュしたり、Firefox OSの全体のスタックを構築したりするような事をおこなうためにシステムに 関する知識を必要とします。
 下記リンク(MDNのサイトの各リンク)は、Firefox OSが乗ったデバイス上で動作するアプリの開発や、Gaiaの設定を変更してそれを走らせることに興味がある開発者の方々のために たくさんのガイドを用意しています。

FirefoxOSの構成

上に戻る

FirefoxOSはよくHTML+JavaScriptでできてると言われるが、それは表面上のこと。簡単に言うと、OSの表面を司るGaia
Linuxカーネルやハードのドライバ、各種センサーの低レベルの階層で管理をするGonk
そしてGaiaとGonkをつなぐ、Firefox(ブラウザの方で)おなじみのGeckoの3層で構成されている。
MDNの次の図がわかりやすいと思う。リンク先でどうぞ。


ソースディレクトリの構成

上に戻る
ルートディレクトリをB2Gとして、多くのフォルダとファイルがあるが、一般の開発者が気にすべきはGaiaのフォルダだろう。
B2G ディレクトリ内部
  • abi/
  • bionic/
  • bootable/
  • dalvik/
  • device/
  • download-galaxy-nexus/
  • external/
  • frameworks/
  • gaia/
  • gecko/
  • gonk-misc/
  • hardware/
  • libcore/
  • ndk/
  • objdir-gecko/
  • out/
  • prebuilt/
  • rilproxy/
  • scripts/
  • system/
  • tools/
  • vendor/
gaia ディレクトリの内部
  • apps/ ・・・ システムアプリが格納されている
  • build/
  • dictionaries/
  • dogfood_apps/
  • external-apps/ ・・・ サードパーティ製アプリ?
  • external-dogfood-apps/
  • locales/ ・・・ ロケール(言語や地域設定)が格納されている
  • media-samples/
  • shared/ ・・・ gaiaのUIや処理で共通で使われるべきファイルが格納されている
  • test_apps/ ・・・ テストアプリが格納されている
  • tests/ ・・・ テストツールが格納されている
  • tools/
  • Android.mk
  • index.html ・・・ エミュレータ等から見た場合の端末全体のUIとなるファイル
  • LICENCE
  • Makefile
  • README.md
上記B2Gディレクトリ内で、改造に関係ありそうなディレクトリとしては
B2G/device
B2G/gecko
B2G/system
などがある。
ビルドが完了したあとに使用するイメージファイルがあるのは次の場所だ。
B2G/out

※ワンポイント※
FirefoxOSアプリの作成についてのページでまた触れようと思うが、FirefoxOSアプリで共通スタイルや共有すべきライブラリは
すべて gaia/shared に収められている。
gaiaディレクトリが実際の端末へのインストール後にそのままであることはない(はず)。
なのでgaia/sharedを自分のアプリから適切に、自動的に参照してくれる仕組みが build/webapp-zip.jsというファイルで
できるらしいが・・・現在(2013/02/17)そんなファイルは存在せず、その仕組も利用できない。
自動参照の仕組みができるまでは、当分は自分が必要なgaia/sharedの中のファイルを自分のアプリフォルダに入れて使うしかないだろう。