mozilla
您的搜索结果

    准备第一次B2G的构建

    在构建B2G之前,你需要下载编译B2G构建的代码库并做配置。本篇就是教你如何完成这一过程。

    配置步骤会需要一些时间来下载构建FirefoxOS的必要文件,时间的长短取决你的网速。(如果网速在150KBps,下载整个Android代码库将要几十个小时)。等待下载是很乏味的过程,如果你读完本页及已经开始配置脚本,可以考虑去配置与试用一下Firefox OS 模拟器,或去熟悉一下应用开发文档(像是如何设计与创建一个应用、了解后续步骤的信息等)。

    配置和构建 B2G 的可能需要较长的时间,你可以去做一些其他工作或者和朋友去喝杯咖啡。

    如果你在等待代码下载,或者在开始前想体验一把,你可以看下下面的视频,该视频演示了构建Firefox OS准备工作。(大陆地区无法看到该视频。。。)

    克隆B2G代码库

    第一步,克隆一份 B2G 远程的Git版本库到本地后,才可以开始你的第一个构建。这一步不会获取所有想要的东西!相反,只会获取B2G构建系统和配置的实用工具。最主要的B2G代码都在 Mozilla Mercurial 主仓储中。

    使用 git 来克隆你的版本库:

    git clone git://github.com/mozilla-b2g/B2G.git

    克隆之后(应该会花个几分钟),cd 到 B2G 的目录:

    cd B2G
    

    为你的设备配置专属 B2G

    重要:请注意只支援 Android 4(又名:Ice Cream Sandwich)的移动设备,或是各种支持的IT平台(目前只有 Firefox OS 设备)。请确认你手机运行的是ICS,否则这个步骤很可能会因为驱动程序在某些非Nexus设备上失败。另外,如果你需要将ICS刷入移动设备,请留意有些USB集线器和刷机工具不兼容,因此可能需要将移动设备连接到内建的USB端口。
    重要:如果你在 Ubuntu 12.10+ 或 Fedora 上构建,需要在检索 B2G 源码后指定 GCC4.6 为默认主编译器,(默认情况下发行版使用 GCC4.7)。可以阅读 Changing the default host compiler 了解如何做到这一点。
    注意:在运行任何构建命令之前,请先阅读下面左右指令,以确保你正在做的事是正确的!

    一旦有了构建 B2G 的系统环境,为了正确安装你需要设定移动设备  。要获得支持设备列表,可以使用  config.sh 工具, 如下所示:

    ./config.sh
    

    这会显示一个支持设备列表,例如:

    Usage: ./config.sh (device name)
    
    Valid devices to configure are:
    - galaxy-s2
    - galaxy-nexus
    - nexus-4
    - nexus-s
    - nexus-s-4g
    - otoro
    - unagi
    - inari
    - keon
    - peak
    - leo
    - hamachi
    - helix
    - tara
    - pandaboard
    - emulator
    - emulator-jb
    - emulator-x86
    

    如果你的设备未被列出,应该马上停止来帮忙将 B2G 移植到你的设备,或是等别人完成移植。我们当然比较希望你可以帮忙移植!

    注意:Firefox OS 手机页面上可以找到你手机的设备名。
    注意:对于 Keon 配置和构建在 Mac 上进行是无法工作的。针对该设备的构建你需要使用 Linux。
    注意:如果因为任何原因,你想要编译构建 Gecko 的某个特定版本,请阅读  Building against a custom Gecko,然后再继续。如果你想要构建一个你设备默认以外的分支(例如,建立 B2G 的特定版本),请阅读 Building a branch
    注意:不同设备默认的可能是自己的分支版本,未必是主干(trunk)版本.。

    这将是一个很好的喝咖啡时间,需要将所有所需的代码提取、构建并引导到 Gecko,这一过程会花费很长的时间,你可能需要通过使用 Ctrl-C 停止和稍后重新启动工作。如果你觉得某部分因为终止,而未完成,可以运行 “./repo sync” 来修复任何可能出现的问题。

    为移动设备配置

    首先,连接你的设备,在配置过程中需要访问它。

    如果你的设备被列出,可以通过运行 config.sh 指定你的设备名称再次启动配置程序。例如,要为三星 Google Nexus S 构建,请键入:

    ./config.sh nexus-s
    
    注意:如果你得到了一个"fatal: manifest 'nexus-s.xml' not available"的错误提示,这时你只需要指定一个你想要使用的分支 。请阅读 Building a branch了解详情。

    在配置的刚开始,你可能需要设置颜色使用的选项,在这里你可以只选择“Y”,因为可能会想要一个自己的颜色版本。完事之后会继续配置流程。现在就可以去喝个咖啡休息一下,因为你第一次需要把构建 Boot to Gecko 中所有要的程序都抓下来。

    使用系统备份配置构建

    如果你的手机不再使用 Android 且 B2G tree 还没装到手机上,但聪明地作一份/system 分区的备份的话,你可以在系统备份基础上执行构建,像这样:

    ANDROIDFS_DIR=<absolute path to parent dir of system dir> ./config.sh <target>
    

    请注意,构建系统将会有默认存放目录,如“backup-inari/system”(取决于设备配置),如果打算把文件存放在默认位置,你不需要特意指定目录。

    注意:如果你的手机原本就运行着 Firefox OS,而从来没有运行过Android,它仍然会细致的把文件挂载到/system 分区,这样会为你指引到正确的文件。

    配置构建一个模拟器

    如果你想要在模拟器中构建,可以选择一款 ARM 设备模拟器作为指定模拟器,或是使用 "emulator-x86" 来打造x86模拟器。后者速度更快,但不能准确的表现出实际移动设备的表现。

    现在,举个例子,构建ARM模拟器,应该这样配置:

    ./config.sh emulator
    

    在配置的刚开始,你可能需要设置颜色使用的选项,在这里你可以只选择“Y”,因为可能会想要一个自己的颜色版本。完事之后会继续配置流程。现在就可以去喝个咖啡休息一下,因为你第一次需要把构建 Boot to Gecko 中所有要的程序都抓下来。

    此时你应该准备好开始构建,除非你需要更高级的信息,详情如下。

    注意:模拟器无法在64位 Linux上构建。

    注意:./config.sh 可能会比你想想的更耗费时间和网络资源。你可能需要通过使用 Ctrl-C 停止和稍后重新启动工作。如果你觉得某部分因为终止,而未完成,可以运行 “./repo sync” 来修复任何可能出现的问题。

    构置定制一个 Gecko

    可能你会想要或需要以好几种版本的 Gecko 来编译 Boot to Gecko(manifest 中预设是一种)。你可以在你抓仓储(在上述的 config.sh 之前),藉由编辑 .userconfig 来做到这件事情在举例来说,如果你要根据 mozilla-central 来编译:

    export GECKO_PATH=/path/to/mozilla-central
    export GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk
    

    注意:如果是在 Mac OS X 中编译自定义版 Gecko 的话,文件系统会区分  mozilla-central 目录的大小写。

    注意,可以在你抓仓储之前(也就是在上述的 config.sh 之前)或之后几步。你也可以通过多个 UserConfig 的文件(使用不同的设置 - 当然每个都需要不同 OBJDIR)和编辑,保留多个构建(与调试等)。添加一个符号连接(symlink)指向一个配置(你想要使用哪个构建就指向那个配置)。

    欲了解更多信息,请阅读 Changing the Gecko source tree

    建立一个分支

    如果你想要构建一个非默认的分支(注:默认分支可能不是“主干”),需要调用 config.sh 并前缀分支名称,像这样:

    BRANCH=branch-name ./config.sh <device>

    分支名称应该是合乎逻辑的,主要是按照产品/版本的名称,比如v1-trainv1.0.0、v1.0.1、v1.1、v1.1.0hd、v1.2,以此类推。举个例子,在模拟器上构建 B2G Firefox 1.2,你需要键入:

    BRANCH=v1.2 ./config.sh emulator

    如果你已经运行过 config.sh,可以通过去B2G/.repo/manifests 查看分支名称,或者用 “git branch -a”,使用分支名在行的最尾端即可,如:“v1-train” 或 “master”:

      remotes/origin/master
      remotes/origin/v1-train
      remotes/origin/v1.0.0
      remotes/origin/v1.0.1

    另外要了解更多关于定制,你可以查看 Customization with the .userconfig file

    复制你的 B2G 树(tree)到一台新机器

    如果你之前已经设置了 B2G tree,如果你又有了一代新电脑,想要把 B2G tree 从一台电脑转移到另一台电脑的话,你会发现至少比起重新配置整个事情更容易。

    要做到这一点,将你旧电脑的硬盘挂载到新电脑,然后敲入下面的命令,就可以了:

    rsync -a source/ dest/
    

    source 是整个原码树(source tree)的完整路径(包括后面的斜线),而 dest 是你要复制到目标位置(同样也包含后面的斜线,它很重要!)。

    注意:如果你采用把文件从一台电脑复制到另一台电脑的方法,应该确保在开始构建之前运行一次“./build.sh clean”。如果不这样做,可能会遇到编译问题。

    如果你采用了这个方法迁移代码,可以跳过本文余下的部份,然后直接跳到的“构建”部份。

    更新你的B2G树

    当存储库更新到了新版本,你要更新你的B2G tree。./sync 命令不会更新你的B2G树。要做到这一点,你可以运行下面的命令:

    git fetch origin
    git checkout origin/master

    你可以运行一下命令,检查是否工作正常:

    git show HEAD

    并检查提交的版本是否与最新提交版本显示匹配:https://github.com/mozilla-b2g/B2G/commits/master

    文档标签和贡献者

    此页面的贡献者有: ziyunfei, smith_zhong, c_king
    最后编辑者: ziyunfei,
    隐藏侧边栏