在Gaia仓库下的执行make命令会创建一个Gaia配置文件,继而装载到您的设备端或运行在 B2G Desktop 中。本文会对make不同的选项详细探究。
注意: 在Makefile文件中有许多环境变量,不要太依赖它们,因为在将来可能会去掉。
创建的配置文件一般存放在gaia的根目录下,例如 /gaia/profile
文件夹,其中包括下面的条目:
defaults/
: 文件夹中会包含默认的配置信息,也就是重启手机后装载的信息。extensions/
: 文件夹下包含的是扩展项。settings.json
: Settings 文件user.js
: 文件中包含更多的设置/配置信息webapps/
: 文件夹中包含所有需要安装到手机上的web 应用。
注意: 当您已经生成了一个配置文件而且想要构建一个新的文件,就必须在构建新的配置文件前,将原有的删除。
默认命令
make
该命令只是给您一个非调试下的默认编译。 对于一个带有品牌的构建,您需要使用Official Mozilla branding make命令; 对于调试构建,您需要使用 Debug make命令。
推送到设备端
make install-gaia make reset-gaia
使用 ADB (Android Debug Bridge) 安装工具,上面的make命令会将Gaia推送到设备端。 install-gaia
会将Gaia更新从您工作的文件夹推送到设备端。 reset-gaia
在将Gaia推送到手机前会清除所有现存的配置,配置文件,web 应用以及数据库信息。
编译特定的应用
APP=system make APP=system make install-gaia
当一个配置文件已存在时, APP
参数允许您指定特定的app重新打包,而不是对所有的Gaia应用重新打包和重新发布。
指定自定义的profile文件夹
您可以指定一个自定义的文件夹来构建您的profile文件。例如使用 PROFILE_FOLDER:
PROFILE_FOLDER=profile-b2g-desktop make
不同设备的编译
下面几个 make 选项是不同的设备进行编译,其用途也会不同。
创建Gaia的手机端编译
GAIA_DEVICE_TYPE=phone make
此次编译是从 /gaia/build/config/phone/apps-engineering.list 文件
获取app的。
创建Gaia的平板端编译
GAIA_DEVICE_TYPE=tablet make
此次编译是从 /gaia/build/config/tablet/apps-engineering.list
文件获取app的。
不同的编译类型
有些选项可以创建出不同的编译类型,其目的也有所不同。
Production make
PRODUCTION=1 make
它会创建 Gaia 的生产型编译版本
- Gaia is run as packaged apps, which are harder to debug, but are the best available state for apps in terms of available API permissions, etc.
- Test app 不会包含在其中
- 默认情况下,远程调试是关闭的
- 锁屏功能是开启的(反过来会切断 USB 连接)
- Marionette is turned off
- 初次用户体验时开启的
- Offline cache is used.
注意: 您也可以使用 make production 替换该命令。
Debug make
DEBUG=1 make
The DEBUG
variable runs Gaia as hosted apps on a built-in web server on a specific GAIA_PORT
, rather than the default of packaged apps which have to be re-packaged after every change; this makes things easier to test. Launching the profile with the latest Firefox Nightly will also give you nice B2G specific panels on the Firefox Developer Tools.
In addition:
- Test apps are included in the build.
- Remote debugging is turned on by default.
- Lock screen is turned off (USB connections won't be interrupted.)
- Marionette is turned on, which is needed when running Gaia unit tests.
- First time user experience is turned off.
- Offline cache is not used, even if it is generated.
Device debug make
DEVICE_DEBUG=1 make
它可以禁用设备的锁屏, 并且启用 ADB 工具,因此在设备调试时是非常有用的。
在 Firefox OS version > 1.2 以上版本,当想要使用 App Manager 调试 Firefox OS webapps 时指定这个参数。
Debug desktop make
DEBUG=1 DESKTOP=0 make
这个选项可以创建一个 desktop 调试版本, 在 B2G desktop 中运行。
官方 Mozilla 分支 make
MOZILLA_OFFICIAL=1 make
Use this to make an official Mozilla-branded build.
Dogfood make
DOGFOOD=1 make
Dogfooding options and utilities are turned on, for example the Feedback app, which allows doog fooders to easily submit feedback on the OS.
System apps make
B2G_SYSTEM_APPS=1 make
这个环境变量能将 app 推送到 /system/b2g
而不是 /data/local
。当进行 user 编译时应使用这个命令。 当运行 make production 这个命令会自动设置。可用作
install-gaia
或 reset-gaia
。
发布和市场化定制编译
GAIA_DISTRIBUTION_DIR=./dir
注意: Read Market Customizations for more details.
开发者/调试选项
There are also make options for adding/removing features or changing settings, for debugging purposes.
使能远程调试
REMOTE_DEBUGGER=1
This enables remote debugging on the device, the same as using the option in the developer settings.
JavaScript 优化 make
GAIA_OPTIMIZE=1 make
This triggers an optimization pass on Gaia's JavaScript, concatenating/compressing the files. This is automatically set when running make production
. This can be used for install-gaia
or reset-gaia
too.
高分辨率图片资源
GAIA_DEV_PIXELS_PER_PX=1.5 make
When packaging the app, this option replaces images with their *@1.5x.(gif|jpg|png)
equivalents if such images exist. You need to use the above option as part of a standard make
command, for example:
GAIA_DEV_PIXELS_PER_PX=1.5 make reset-gaia GAIA_DEV_PIXELS_PER_PX=1.5 make install-gaia
Gaia is currently targetting the following screen resolutions:
- qHD: ~540×960; device pixel ratio = 1.6875
- WVGA: ~480×800; device pixel ratio = 1.5
- HBGA (320x240); device pixel ratio = 1
use GAIA_DEV_PIXELS_PER_PX
to make sure the images looks sharp on qHD and WVGA devices. see A pixel is not a pixel for more information about device pixels per css pixels.
低内存 profile 编译
GAIA_MEMORY_PROFILE=low make
This variable generates a low memory profile version of Gaia, aimed at low memory devices like the Tarako.
Haida features
HAIDA=1 make reset-gaia
This build enables the Haida feature set, which is currently limited to rocketbar and edge gestures, but will likely include other features in the near future.
禁用初次用户体验 (FTU)
NOFTU=1
使用这个环境变量可以禁用 FTU。
禁用锁屏
您可以使用 NO_LOCK_SCREEN 选项禁用 Firefox OS 的锁屏功能,例如:
NO_LOCK_SCREEN=1 make
参考工作负载 Reference Workloads
参考工作负载(Reference workloads)能够使开发者在一些应用中快速装载大量的数据,尤其是对新烧的机器。
在 Gaia 目录下可执行下面命令:
make reference-workload-light
- 200 contacts
- 200 sms messages
- 50 dialer history entries
- 20 gallery images
- 20 songs
- 5 videos
make reference-workload-medium
- 500 contacts
- 500 sms messages
- 100 dialer history entries
- 50 gallery images
- 50 songs
- 10 videos
make reference-workload-heavy
- 1000 contacts
- 1000 sms messages
- 200 dialer history entries
- 100 gallery images
- 100 songs
- 20 videos
make reference-workload-x-heavy
- 2000 contacts
- 2000 sms messages
- 500 dialer history entries
- 250 gallery images
- 250 songs
- 50 videos
这些命令可以接受 APP
环境变量或者是 APPS
环境变量(需要使用空格将各 app 名称分开)。例如:
APP=sms make reference-workload-light APPS="sms communications/contacts" make reference-workload-heavy
The apps available are:
APPS="gallery music video communications/contacts sms communications/dialer"
为了能够使用参考工作负载 (reference workloads), 必须安装 mid3v2 工具。 这个工具可以使用下面命令安装:
sudo apt-get install python-mutagen
如果您使用的是 Fedora 或 RHEL 操作系统,请使用下面命令:
sudo yum install python-mutagen
make 文档
Gaia 文档可以通过 jsdoc3 进行编译。要产生文档,可以使用下面的命令:
make docs
启用 IME 布局和词典
要启用键盘 IME 布局和词典, 请使用下面的命令结构:
GAIA_KEYBOARD_LAYOUTS=en,zh-Hant-Zhuyin,el,de,fr,zh-Hans-Pinyin make