この記事は編集レビューを必要としています。ぜひご協力ください。
B2G OS シミュレーターを使用すると、実際の端末に似た Gecko ベースの環境で Gaia やウェブアプリを実行することができます。端末のハードウェアをエミュレートしないので、端末 API のテストをするには不適切ですし、実際のハードウェア上でのテストの代替にはなりません。しかし例えば 連絡先 と 設定 API といったFirefox で利用できない API を持っています。よって、アプリケーション開発の間や Gaia ユーザインタフェース自体を動かしている間は有益でしょう。この記事では Firefox OS デスクトップクライアントのダウンロード、もしくはビルド、同様に使用方法を取り扱います。
記: Firefox OS デスクトップクライアントを使うのに最も簡単な方法は WebIDE から Firefox OS Simulator add-on を使う事です。 デスクトップクライアントをビルドする必要はありません。
ナイトリービルドをダウンロードする
Firefox ナイトリー のように、B2G OS シミュレーターのデスクトップクライアント ( b2g- で識別されます) は最新のソースコードから毎日自動的にビルドされます。最新のビルドは MozillaのFTP サーバから利用可能です。必ずあなたの OS 向けの最新バージョンのアーカイブを選択してください。これで自分でビルドしなくてすむようになりますし、更にGaia のダウンロードもする必要がなくなります。
アプリケーションは、必ず書き込み可能な場所にインストールしてください。アプリケーションはインクルードされた Gaia プロファイルを更新できる必要があります。
自分自身でビルドしたい場合以外は、スキップしてシミュレーターを実行するに進みましょう。それはコードベースに変更を加えてテストしたい場合に必要です。
シミュレーターをビルドする
初めにやらなければいけないことは、標準 Mozilla ビルド環境をセットアップすることです。これを一旦行えば、必要なコードをプルダウンして、Firefox OS デスクトップクライアントをビルドするように、構成を行えるようになります。
初回用コードをダウンロードする
ソースコードを置きたいディレクトリに行き、Gecko が全て入っている mozilla-central
リポジトリを複製しましょう :
hg clone https://hg.mozilla.org/mozilla-central
もしくは、Githubから同じコードをダウンロードできます:
git clone https://github.com/mozilla/gecko-dev
コードを更新する
後で追加でビルドする場合、確実に最新版のコードで make したいと思うでしょう。これが最新の変更をプルする方法です :
cd mozilla-central hg pull -u
または、
cd gecko-dev git pull
mozconfig
を作成する
次に、Firefox の代わりに Boot to Gecko クライアントをビルドするビルドシステムを構成するために、mozilla-central
ディレクトリに mozconfig
ファイルを作成する必要があります。このファイルは下記を含みます:
. "$topsrcdir/b2g/config/mozconfigs/common" mk_add_options MOZ_OBJDIR=../build # この行は gecko-dev または mozilla-central を使用する場合にはコメントアウトする必要があります mk_add_options MOZ_MAKE_FLAGS="-j9 -s" ac_add_options --enable-application=b2g ac_add_options --disable-libjpeg-turbo # このオプションは Gaia のテストを実行可能にしたい場合に必要になります ac_add_options --enable-tests # mozTelephony/mozSms インタフェースを有効にする # 転送したい開発スマートフォンを実際に所有している場合のみ # この行を有効にしてください。起動時にクラッシュしたら、 # この行がコメントになっているか確認してください #ac_add_options --enable-b2g-ril
B2G デスクトップクライアントで Mochitests を実行したい場合(mochitest-b2g-desktop
か mochitest-plain
のいずれか) または Gaia ユニットテストを実行したい場合、 ENABLE_MARIONETTE=1
の行をこのファイルに含める必要もあります。
ビルドする
さて、デスクトップクライアントをビルドする準備ができましたので、以下のコマンドを mozilla-central
ディレクトリの中で実行してください :
./mach build
ビルドクライアントは objdir/dist/bin
ディレクトリ(mozconfig
ファイルの MOZ_OBJDIR
で指定した値に基づきます)の中に配置されます。
記: 問題がある場合、まず ここで依存性を確認して下さい。
Gaia をダウンロードする
デフォルトではデスクトップクライアントは空のスクリーンを表示します。というのはシステムアプリとしてどのウェブアプリを最初に読み込むのか知らないからです。システムアプリとデフォルトアプリの集合は Gaia と呼ばれる Firefox OS に搭載されていて、ダウンロードが必要です。
Gaia を初めてダウンロードするには、GitHub にあるソースコードリポジトリを複製しましょう :
git clone https://github.com/mozilla-b2g/gaia cd gaia
既に存在する Gaia のクローンを更新するには、GitHub から最新の変更をプルできます :
cd gaia git pull
custom-settings.json を作成する
何をしているのかを知っていて、色々な調整オプションをセットしたい場合、gaia/build/config/custom-settings.json
ファイルを作ってそこに追加できます、例えば:
{
"lockscreen.enabled": false,
"lockscreen.locked": false,
"devtools.debugger.remote-enabled": true
}
この例はロック画面をバイパスする便利な例で、そうしないとデスクトップではマウスやトラックパッドを使ってロック解除できないためバイパス不可能です。
プロファイルを生成する
次に、デスクトップクライアント用に Gaia のアプリをセットアップする必要があります。これはパッケージングされた Gaia アプリを端末にインストールするのと同じやり方で同梱し、また特権のあるシステムアプリ用のパーミッションも設定します。我々はこれをプロファイルを生成することで行います。以下のコマンドは(gaia
ディレクトリでこれを実行してください) その処理を行います:
make DESKTOP_SHIMS=1 NOFTU=1 DEBUG=1
これで gaia
ディレクトリの下に profile-debug
ディレクトリが作成されたはずです。新しいプロファイルにはカスタマイズされた拡張機能と、B2G が正しく実行されるのに必要となるその他の構成が含まれています。
デスクトップクライアントを実行する
一旦クライアントをビルドして(もしくはナイトリーデスクトップアプリケーションをダウンロード、インストール)Gaia をダウンロードすれば、Firefox OS デスクトップクライアントを起動する準備が整います。
Linux で実行する
組み込まれた Gaia プロファイルを使用して、Linux でデスクトップクライアントを実行するには、単に b2g
実行可能ファイルを実行するだけです。そのバイナリは前にダウンロードしたアーカイブの中、もしくは、クライアントを自分でビルドした場合は objdir/dist/bin
ディレクトリにあります。
b2g -profile gaia/profile-debug
あなたはうっとうしいレンダリングの問題で悩まされるかもしれません。それを回避するには、gaia/profile/prefs.js
ファイルに以下の行を追加してください:
user_pref("layers.acceleration.disabled", true);
Mac で実行する
ナイトリービルドをダウンロードした場合は、いつものように Finder から簡単に起動することができます。コンソールの出力は、Mac に含まれている標準コンソールユーティリティプログラムを実行すれば見ることができます。
もし、異なる Gaia プロファイルを指定したい場合 (例えば上記と別にダウンロードしたGaiaプロファイル) は、b2g
ラッパープログラムを使用しないで、b2g
バイナリを実行する必要があります。b2g
バイナリの場所と、プロファイルディレクトリの指定の際に絶対パスが必要な為に、コマンドラインは少し複雑です :
.../B2G.app/Contents/MacOS/b2g -profile /full/path/to/gaia/profile-debug
Windows で実行する
Windows でナイトリービルドを実行するには、b2g.exe
を起動するだけです。その代わりに b2g-bin.exe
実行可能ファイルを実行すると、実行内容のカスタマイズが可能です。これはバンドルされた Gaia を自動的に使用するラッパープログラムをバイパスします。
コマンドラインオプション
デスクトップクライアントを使っている時のランタイム体験を調整するのに、使用可能なコマンドラインオプションが多数存在します。-help
オプションを使用することでオプションリストが取得できます。このセクションでは特に興味深いオプションのいくつかを取り上げます。
画面サイズを指定する
--screen
オプションを使用することでシミュレートしたい端末の画面サイズを指定できます :
b2g --screen=<width>x<height>[@<dpi>]
<width>、<height>、<dpi> は、ほとんど見た目通りのパラメータです : 端末の画面の幅と高さはピクセルで、DPI で端末の解像度を指定します。例えば :
b2g --screen=320x480 b2g --screen=320x480@160
オプションで、シミュレートしたい画面サイズと解像度を特定の端末名で指定可能です :
iphone
ipad
nexus_s
galaxy_nexus
galaxy_tab
wildfire
tattoo
salsa
chacha
screen.jsの中でこれらプリセット端末が定義されています。
別の画面を選択するには、たぶん下記のようにプロファイルパスを指定する必要があります:
./b2g-bin --profile ./gaia/profile/ --screen=galaxy_tab
JavaScript コンソールを開く
コマンドラインからの起動時に -jsconsole
フラグを付けて起動すると、B2G デスクトップクライアントで JavaScript コンソールを開くことができます。ビルドが終わったら、実行するだけです :
.../b2g -jsconsole -profile /path/to/your/profile
Mac にナイトリービルドをインストールした場合は、こんな感じに実行します :
/Applications/B2G.app/Contents/MacOS/b2g -jsconsole -profile /path/to/your/profile
記: Firefox OSの製品ビルドでは、デフォルトでコンソールログ出力 (例えばconsole.log()
) が無効です。有効にするには、 開発者設定 を開き、Console Enabled 設定を有効にします。
起動時に指定したアプリケーションを起動する
デスクトップクライアントで b2g が起動する際に自動起動するアプリケーションを指定することも可能です。これはシステムが読み込みを完了した後、すぐに実行されます。これを行うには、--runapp
オプションを使用して、実行するアプリケーションの名前をパラメータとして指定するだけです。例えば :
.../b2g -profile /path/to/your/gaia/profile-debug --runapp email
記: 起動するアプリを探す前に、指定された名前は正規化が行われ、全て小文字へ変換され、全てのダッシュと全てのスペースは削除されます。正規化された名前はその後、利用可能なアプリのマニフェストのマニフェストから、同様に正規化された名前と比較されます。例えば、電子メールアプリの名前が現在 "E-mail" の場合、この正規化のおかげで --runapp email
で動作します。
引数無しで、もしくは空の引数で --runapp
オプションを指定した場合、シミュレーターは、使い方に関する概要メッセージと一緒に既知のアプリケーションのリストをターミナルに出力します。
注意 : --runapp
オプションを使用する際は、副作用としてロック画面が無効になり、再有効化することができません。ロック画面をテストしたいプロファイルでは、このコマンドを使用しないか、設定アプリケーションを使用して手動で Settings > Screen Lock を使って元に戻すことが前提になっています。もしそれが問題であれば、遠慮なくこの振る舞いを変更するパッチをコントリビュートしてください。
使用法のヒント
このセクションは、B2G デスクトップクライアントを使用する いくつかの役立つヒントを提供します。
- ESC キーは "back" ボタンと同じ機能を実行します。
- Home キーは "home" ボタンと同じ機能を実行します。Mac では、Home キーは Fn + ← (Fn + 左矢印)で使用できます。
- End キーは "電源" ボタンと同じ機能を実行します; Macでは、End キーは Fn + → (Fn + 右矢印)で使用できます。
- Page Up と Page Down キーはそれぞれ"音量アップ" と "音量ダウン" ボタンと同じ機能を実行します;Macでは、Page Up キーは Fn + ↑ (Fn + 上矢印) で、Page Down キーは Fn + ↓ (Fn + 下矢印)で使用できます。
- Home キーの長押しは "Card View"を開きます; Macでは、 Cmd + Fn + ← (Cmd + Fn + 左矢印) で "Card View"を開きます。
トラブルシューティング: シミュレーター起動時のブランク画面
b2g -profile gaia/path/to/gaia/profile
を使ってb2gを起動した時、"Cannot reach app://system.gaiamobile.org" のエラーと一緒にブランク画面が表示されることがあります。これを修正するためにいくつか確認できることがあります:
- gaiaディレクトリで
DEBUG=1 make
プロファイルを使ってリビルドする - b2g を再実行する
- これで直らない場合、他のプロセスが 8080ポートをリッスンしていないか調べる。Gaia のデフォルトプロファイルは
httpd.js
を起動し、これは 8080ポートをリッスンします。デバッグプロファイル実行時に、B2G は localhost:8080 に接続します。ほかのプロセスが 8080ポート上で動いている場合、b2g はgaiaのホーム画面の表示に失敗するでしょう。- これに当てはまるのかを見つけ出すには、
httpd.js
のログ出力を有効にできます。このプロファイル内でのhttpd.js
はgaia/profile/extensions/httpd/content/httpd.js
の場所にいます。編集するのにこのファイルを開きます。 var DEBUG=false;
の行をvar DEBUG=true; に変更します。
- ファイルを保存して B2G を再起動します。コンソールでhttpdのログを見る事ができるでしょう。
- これに当てはまるのかを見つけ出すには、
次のステップへ
これでBoot to Gecko が動作するシミュレータービルドが手に入りましたので、テストしたり、開発したり、その他のことを実行させたりできるようになります :