Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

使用 Firefox OS 的電腦桌面 client 程式

Firefox OS 的 desktop client,也被稱為 B2G desktop client,讓您可以在一個以 Gecko 為基礎的環境-有點類似實際行動裝置的環境下執行 Gaia 和 web apps。它不會模擬行動裝置的硬體,因此它並不適合拿來測試行動裝置的 API,也不能取代在實際硬體上的測試。然而,它的確擁有一些 Firefox 上所沒有 APIs,像是聯絡人(Contacts)和設定(Settings)的 Apis。因此,當我們在開發應用程式、或是在操作 Gaia 使用者介面上可以派上用場。

這篇文章不但涵蓋下載或是建置 Firefox desktop client,也包含了如何使用它。

下載 nightly 版本

如同 Firefox Nightlies 一般,Firefox OS 的 desktop client 每天都會用最新的原始碼編譯出一個版本。最新的版本將 可以從 Mozilla FTP 伺服器取得。請確定挑到最新的版本和對的封存給您的作業系統。

我們現在可以略過下面內容,直接到「執行 desktop client」。

建置 desktop client

我們需要做的地一件事情是架起 Mozilla 的標準建置環境。一旦我們有了這個環境,我們可以降低我們所需要的原始碼,並且設定建置 Firefox OS 的 desktop client。

第一次下載原始碼

在我們要放置程式碼的目錄(資料夾)中,讓我們將包含所有 Gecko 的 mozilla-central 倉儲 (repository)給複製下來。

 hg clone https://hg.mozilla.org/mozilla-central

更新程式碼

當我們之後編譯後來的版本時,我們要確定我們有最新的原始碼。下列就是如何拉到最新的更新的指令:

cd mozilla-central
hg pull -u

建立 mozconfig

接著,我們要在 mozilla-central 目錄下新增一個檔案 mozconfig 來設定建置系統去編譯 Boot to Gecko client 程式而不是 Firefox:

mk_add_options MOZ_OBJDIR=../build
mk_add_options MOZ_MAKE_FLAGS="-j9 -s"

ac_add_options --enable-application=b2g
ac_add_options --disable-libjpeg-turbo
 
# This option is required if you want to be able to run Gaia's tests
ac_add_options --enable-tests

# turn on mozTelephony/mozSms interfaces
# Only turn this line on if you actually have a dev phone
# you want to forward to. If you get crashes at startup,
# make sure this line is commented.
#ac_add_options --enable-b2g-ril

建置(編譯)

現在我們已經準備好要在目錄 mozilla-central 裡面、透過下面的指令來編譯 desktop client。

./mach build

編譯好的 client 會被放在 ../build/dist 目錄下 (基本上是依照 mozconfig 檔案裡面的 MOZ_OBJDIR 參數所指定的值)。

執行 desktop client

預設 desktop client 會顯示空的畫面,因為它並不知道一開始要載入哪個 web app 來當做系統 app。系統 apps 和 Firefox OS 中預設會有的 apps 就被稱為 Gaia。

下載 Gaia

第一次下載 Gaia、讓我們從 GitHub 上複製原始碼的倉儲 (repository):

 git clone https://github.com/mozilla-b2g/gaia

為了更新成 Gaia 的一個已存在的版本,我們可以從 GitHub 拉最新的更新:

cd gaia
git pull

產生 profile

接著我們需要設定 desktop client 中 Gaia 的 apps。這包括包裝行動裝置上也有的 Gaia apps,以及設定系統 apps 的權限。我們透過產生一個 profile 來做這些事情。接著的指令會做這些事情:新的 profile 包含一個客製的擴充以及其他 B2G 正常運作所需的設定。所以在 gaia 目錄裡執行下面的指令:

cd gaia
make

這應該會在 gaia 目錄下面建立一個 profile 目錄。

在 Linux 上執行

只要在啟動 b2g 執行檔的時候加上 profile 參數,就可以使用我們剛剛產生的 profile 來啟動 desktop client 。如果是自己編譯的話,執行檔的位置會在早先下載下來的 tarball 裡面,如果是自己編譯的話,就會在 ../build/dist/bin 的目錄裡。

.../b2g -profile gaia/profile

您可能會碰到惱人的 rendering 問題。只要在 gaia/profile/prefs.js 裡面加上下面這行就可以避開這個問題:

user_pref("layers.acceleration.disabled", true);

在 Mac 上執行

在 Mac 上,b2g 執行檔的位置和需要指定 profile 的絕對路徑,因此指令比較複雜:

.../B2G.app/Contents/MacOS/b2g -profile /full/path/to/gaia/profile

指令的選項(或參數)

在使用 desktop client 時,你可以使用一些指令的參數來調校執行時的體驗。您可以用 -help 這個參數來列出參數的列表。這一節涵蓋一些特別的參數。

明確指定螢幕大小

您可以用 --screen 來指定您想要模擬的行動裝置的螢幕大小:

b2g --screen=<width>x<height>[@<dpi>]

<width>, <height>, and <dpi> 都是相當不用解釋的參數:行動裝置以 pixels 為單位的長和寬以及 DPI 解析度。舉例來說:

b2g --screen=320x480
b2g --screen=320x480@160

或者,您可以使用某些行動裝置的名字來模擬他們的螢幕大小和解析度:

  • iphone
  • ipad
  • nexus_s
  • galaxy_nexus
  • galaxy_tab
  • wildfire
  • tattoo
  • salsa
  • chacha

開啟 JavaScript console

在您開啟 B2G 的 desktop client 時,您可以藉由加上 -jsconsole 這個記號來開啟
JavaSCript console。在編譯之後,只要:

.../b2g -jsconsole -profile /path/to/your/profile

如果您已經在 Mac 上安裝了 nightly 版本的話,您可以照著下面的指令:

/Applications/B2G.app/Contents/MacOS/b2g -jsconsole -profile /path/to/your/profile

在 B2G 啟動時,指定開啟一個應用程式

您現在可以指定一個應用程式在 b2g desktop client 開始運作時,自動執行起來。這會在其他系統程式被掛載起來之後,馬上讓指定的應用程式被執行起來。只要加上 --runapp 這個參數、後面在加上要執行應用程式的名字,就可以做到了。如下:

 .../b2g -profile /path/to/your/gaia/profile --runapp email

在尋找要執行的 app 之前,指定的名字要被正規化為全部小寫、且不能帶有 - 和空白的符號。接著這個正規化過的名字會被拿來和 app 的 manifest 的名字做比較。

舉例來說,現在 email app 的名字是「E-mail」,但是因為正規化的效果, --runapp email 這個參數是 ok可以執行的。

如果您加了 --runapp 參數但是卻沒有帶後面的 app 名字、或是帶了空的名字的話,b2g client 會列出一串列表,其中包括已知的應用程式和簡短的使用訊息。

Note:--runapp 參數會有關閉螢幕鎖的副作用,且不會再度啟用螢幕鎖。這是假設您不會用這個指令加上 profile 來測試螢幕鎖,否則您會重新打開這個選項。如果這個行為會造成問題的話,也歡迎提供 patch 來改變這個它。

Usage tips

這一節提供一些在使用 B2G desktop client 時,有幫助的技巧。

  • ESC 鍵提供了和 "back" 一樣的功能。
  • Home 鍵提供了和 "home" 按鈕一樣的功能;如果您用的是 Mac 的話,Home 鍵是 Fn+← (Fn + 左鍵)。

Next steps

現在您有一個執行 Boot to Gecko 的 desktop 版本了,您可以在上面測試、開發以及做其他事情:

文件標籤與貢獻者

 此頁面的貢獻者: chrisdavidmills, jeremychen, teoli, kewang, naihsi
 最近更新: chrisdavidmills,