不同的浏览器使用不同的引擎渲染网页:Google Chrome和Opera用的是Blink(WebKit的一个分支),IE的是Trident,Safari的是WebKit。Mozilla也有自己的引擎,名为Gecko,它被应用于桌面版Firefox、Android版Firefox和Firefox OS中。这些项目都使用了相同的引擎,因此在桌面版Firefox浏览器上进行Firefox OS开发也是可行的。(不过有几个注意事项1)
为了开发和测试Firefox OS应用,你需要:
- 最新版的Firefox浏览器
- 如果你的设备运行的是Firefox OS 1.1,Firefox OS模拟器
- 编程用的文本编辑器2
注意:Firefox OS模拟器是用来测试Firefox OS 1.0至1.1的设备的,如果要测试Firefox OS 1.2+,请使用应用管理器(App Manager),我们稍后会详述。
最初写这本书时,Firefox OS 1.1是主流,官方的测试方式是使用Firefox OS 1.1模拟器。现在Mozilla已经改用新的应用管理器,比旧版模拟器好用多了,不过很遗憾,它不能连接Firefox OS 1.1设备。
由于现在有很多人在使用Firefox OS 1.1,且零售市场销售的设备,大部分运行的还是1.1版本,所以我们仍会保留Firefox OS 1.1模拟器章节,并沿用以前的内容。同时我们还将演示如何使用应用管理器来完成同样的任务。应用管理器是当前的主流方式,因此我先讲解应用管理器的内容,再讲解旧版模拟器。
Firefox 29及以上版本已经内置了应用管理器。我们将在应用管理器章节详述。
如果你的Firefox版本是29或以上,那么应用管理器已经内置了。当然,光有应用管理器是不够的。你还需通过应用管理器安装个模拟器,这样当你测试的时候,就不需要拿一部真实的设备连接电脑了。关于应用管理器,Mozilla提供了很全面的文档,要是你想深入了解一点可去看看。
应用管理器能够管理多个Firefox OS版本,因此你可以同时安装版本1.3, 1.4和2.0。请记住版本号越高,bug也越多。不过既然允许安装多个版本,那最好都装上吧,这样一来我们就能在不同版本的Firefox OS上测试应用了。
让我们看看这个全新的应用管理器,并把接下来要用到的东西都装上。要打开应用管理器,在菜单栏依次展开工具 -> Web开发者 -> 应用管理器。
打开应用管理器后,你会看到类似下图所示的界面
点击启动模拟器按钮,选择想要安装的版本。
应用管理器通过ADB与连接的设备进行交互。安装ADB Helper扩展,能帮你处理一切与ADB相关的操作。
我的建议是,把模拟器的全部版本和ADB Helper都装上。
假如你的设备运行的是Firefox OS 1.1,你得安装Firefox OS 1.1模拟器,因为这个新应用管理器不支持你的设备。
安装完Firefox后,下一步是安装Firefox OS 1.1模拟器,我们将用它来测试应用。运行Firefox,展开工具菜单,选择附加组件。
在右上角的搜索框,输入Firefox OS Simulator进行搜索,点击安装按钮开始安装。
W>注意:如果你的Firefox版本为29或以上,且你的设备运行的是Firefox OS 1.1或更早版本,那么你需要另一个版本的Firefox OS 1.1模拟器,此版本在附加组件商店是找不到的。它尚处于BETA阶段,但已经是现在能下载到的最好的版本了。点击链接下载,Mac OS X, Linux or Windows。只需把下载到的xpi文件拖进Firefox,然后根据提示进行安装。要是你想研究一下怎么在Firefox 29上安装Firefox OS 1.1模拟器,可以参考bug request #1001590 it。
安装完附加组件,可以在菜单栏的工具 -> Web开发者 -> Firefox OS Simulator找到它。
此外,你还能浏览Firefox OS模拟器附加组件页面,在那里下载模拟器。
在这章我们得知,Firefox浏览器、应用管理器和Firefox OS模拟器(还有一个好用的文本编辑器),就是开发Firefox OS应用所需的全部工具了。
所需的全部工具已经搭建好,在开始首次开发前,让我们先掌握一些基本概念。
Footnotes
-
虽然Mozilla的这些项目使用的都是同一个引擎,但是Firefox OS的引擎版本一般都落后于桌面版。因为目前Firefox OS的发布周期比桌面版Firefox浏览器的要长。在实际应用中,这意味着在Firefox OS设备上运行的时候,某些功能不能被支持(或者不能按预期正常运作)。所以一定要确保在Firefox OS设备上测试你的应用。还有一点请谨记,用户设备的Firefox OS版本不尽相同,不是每个用户都能用上最前沿的特性。当设备不支持某些特性时,一定要提供备选方案。 ↩
-
市面上有许多很棒的编辑器,它们难易不同,功能各异。假如你心尚未有所属,我推荐一个很流行的编辑器,SublimeText。我个人则比较喜欢WebStorm,一个用来开发Web应用并具有完整功能的IDE。 ↩