我想几乎每个人都知道 Mozilla 在开发的这款很棒的新产品,它在移动世界中引起了很多关注。我当然指的是 Firefox OS(代号为 Boot2Gecko),如果你还没有听说过它,那么你需要立即访问产品页面,以及 Wiki 了解更多技术概述。
为了不赘述 Wiki 上已经有的内容,Firefox OS 由三个不同的部分组成
- Gonk - ‘操作系统’,即底层 Linux 内核和硬件抽象层 (HAL)
- Gecko - 应用运行时,也存在于你的桌面和移动版 Firefox 中
- Gaia - 操作系统的用户界面
为 Gaia 贡献代码
作为一个前端工程师,这个新的操作系统开辟了一个充满可能性新世界,但是,你知道吗,你也可以参与并为 Gaia 做贡献?这是真的,从今天开始,我将撰写一系列文章,介绍如何参与。今天的话题是如何获得一个能够让你在 Gaia 上工作、测试和贡献代码的工作环境。好的,让我们开始吧。
第一步是访问 Github,并 fork 和 clone Gaia 仓库。
git clone git://github.com/yourusername/gaia.git && cd gaia
完成上述操作后,你就可以创建你的本地 Gaia 配置文件了。在 gaia 目录(你现在应该位于该目录中)中,运行
DEBUG=1 make
上述过程会执行很多操作,第一次运行它会需要一些时间,所以我的建议是,休息一下,给自己泡杯咖啡。完成上述操作后,最后一行输出应该是类似于
Profile Ready: please run [b2g|firefox]
-profile /Users/schalkneethling/mozilla/projects/gaia/profile
下载 B2G 桌面构建
记下 -profile 标志,因为你将在稍后需要它。接下来,我们需要下载一个 B2G 桌面构建。对于 Gaia 第 1 版的工作,这是当前的重点,我们将使用 Aurora 构建,在链接的 FTP 页面上,选择你平台的最新构建,下载完成后,按照你环境中安装应用程序的常规流程进行操作。
注意:由于应用发送和处理事件的方式发生了一些变化,B2G 桌面的最新构建将无法正常工作。为了解决这个问题,并确保更稳定的开发环境,你可以使用来自 http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g18/ 的构建。
现在我们有了配置文件和桌面构建,让我们将它们连接起来。打开一个终端(命令行)并输入以下命令
/path/to/b2g-bin -profile /path/to/profile
# Note: On Mac the path is slightly different as b2g-bin lives
# inside the Contents folder of the .app so here use:
/path/to/b2g/B2G.app/Contents/MacOS/b2g-bin
-profile /path/to/gaia/profile
设置应用
运行上述命令后,将打开一个窗口,其大小与当前 Firefox OS 目标设备的大小相同,并且将显示设置应用。单击并完成设置。之后,将加载一个手机巡回应用,你可以选择跟随或跳过它。
注意:目前桌面构建中存在一个错误,退出巡回后,你将看到一个黑屏。要进入锁定屏幕,你需要关闭 B2G(Ctrl+C 应该可以做到)并重新启动。如果你使用 DEBUG=1 构建你的 Gaia 配置文件,并且在 B2G 加载时出现 404 错误,你可能会发现你需要在你的 etc/hosts 文件中添加一些条目(有些需要,有些不需要)。这里有一个 你可以直接复制到其中的 gist(GasMask 是一个很好的工具,可以在 Mac 上管理你的 hosts 文件)
对代码进行更改
在浏览了一下界面之后,让我们看看如何对当前应用之一进行简单的更改,并查看更改后的结果。
在 B2G 运行的情况下,打开日历应用,它应该位于 Home 右侧第三个屏幕的左上角。在底部,你将看到显示日历的月份、星期或日期的常规触发器。现在,在你选择的编辑器中,打开 gaia > apps > calendar 中的 index.html 文件。
在大约第 180 行,你将看到反映我刚刚提到的选项卡的 HTML。继续删除 <menu> 元素并保存文件。
<menu id="view-selector">
<li class="today">
<a href="#today">Today</a>
</li>
<li class="time-selection">
...
接下来,无需重新构建 Gaia,只需关闭 B2G 并重新启动。现在再次打开日历应用,你将看到之前的选项卡消失了,如预期的那样。很棒!现在返回并撤消你的更改,然后重新启动 B2G 和日历应用。你的选项卡现在应该恢复,并像以前一样工作。这展示了使用 B2G 桌面进行开发时的常见工作流程的一个简单示例。
调试
在这个环境中,调试是比较棘手的事情之一,但我们并非一无所有。如果你像以前一样启动 B2G,但附加 -jsconsole 标志,你将看到你从 Firefox 中知道的错误控制台随之打开。当你想检查脚本错误或将日志消息输出到控制台时,这很有用。
为了看看它是如何工作的,打开 gaia > apps > calendar > js > views 中的 month.js 文件,在第一行之后添加
console.log("Test log message when loading the Calendar App....");
保存更改并使用 -jsconsole
标志启动 B2G。启动后,单击错误控制台的消息选项卡,然后打开日历应用,你应该会看到打印的消息。
注意:如果你没有看到消息被记录到控制台,可能是因为控制台日志记录已被禁用。要解决这个问题,请转到 Firefox OS 上的设置应用,然后转到设备信息 > 更多信息 > 开发者 > 启用控制台。
这将结束本系列的第一篇文章,但在结束本文之前,这里还有一些有用的地方可以获取信息并加快开发速度
- 由 James Lal 提供的 不断增长的 B2G 脚本列表。
- 加入 Gaia 邮件列表
- 在 IRC (irc.mozilla.org) 频道 #gaia 上找到所有人
- 在 MacOSX 上模拟硬件按钮 以及在 Windows 上(*有限,但应该可以帮助你解决问题)
34 评论