对于网页开发者来说,这是一个激动人心的时刻!
多年来,应用一直在蚕食网页,而现在我们看到网页正在吞噬操作系统。Mozilla 正在努力创建一个世界,在这个世界里,您可以编写基于标准的、开放式网页应用。这些应用应该像原生应用一样安装,并且在任何平台上都能正常运行。
随着新的 Firefox for Android 的发布,我们现在将自动将您的开放式网页应用转换为原生 Android 应用。
但是,如何在将您的应用提交到 Marketplace 之前在 Android 上对其进行测试呢?
我们提供了一个新的工具添加到您的工具集中!
介绍 mozilla-apk-cli
如果您安装了 NodeJS 以及 zip/unzip,那么您可以使用我们新的命令行工具来构建可测试的 .apk 安装程序。
mozilla-apk-cli
是一个命令行应用程序,因此下面的命令将在终端应用程序中运行。
设置非常简单
npm install mozilla-apk-cli
这将在 ./node_modules/.bin/
中为您提供一个新的程序 mozilla-apk-cli
。
您也可以使用以下命令全局安装
npm install -g mozilla-apk-cli
我假设您将 ./node_modules/.bin
放入了您的路径中,或者全局安装了它。
开放式网页应用有三种形式,CLI 可以构建它们全部
- 托管应用
- 打包应用 zip 文件
- 从源代码目录构建的打包应用
假设您正在开发一个 打包应用。
您的目录结构如下所示
www/
index.html
manifest.webapp
css/
style.css
i/
icon-256.png
icon-128.png
icon-60.png
js/
main.js
您可以使用以下命令构建一个可测试的 Android 应用
mozilla-apk-cli ./www my_test_app.apk
这将生成 my_test_app.apk
,您可以在以下两种方式中将它侧载到您的手机中
- 将其放在网上,从您的 Android 设备上的浏览器下载/安装
- 使用 adb 安装应用
adb install my_test_app.apk
在本博文中,我们不会介绍如何设置 adb
,但 Android SDK 网站 提供了一些有关 adb 的优秀 资源。
分发
请不要分发此测试 .apk 文件。!!!
如果您更改了应用,重新构建并将其发送给您的用户,更新将无法安装。使用 Android 的应用管理器,对于每个新的应用版本,您必须在安装第二个版本之前删除测试应用。
mozilla-apk-cli
仅用于在本地测试和调试您的新 Android 应用。当您对应用感到满意时,您应该通过 Marketplace 或 从您的网站(通过安装页面)来分发开放式网页应用。
您无需直接管理 .apk 文件。就像您无需管理 Mac OS X、Windows 或 Linux 构建您的开放式网页应用一样。
我们已将原生 Android 支持深度嵌入到 Firefox for Android 运行时中。当用户选择安装开放式网页应用时,原生应用将使用生产版 APK 工厂服务按需合成。这适用于您从任何网站或 Marketplace 安装开放式网页应用时。
CLI 如何工作?
回到我们的新测试工具。该工具是 APK 工厂服务 的前端客户端。它将您的代码发送到该服务的审核者实例。审核者不同于生产发布环境。
该服务会合成一个原生 Android 应用,使用 Android SDK 构建它,最后用开发证书对其进行签名。如前所述,此合成的 APK 是可调试的,不应分发。
该服务的好处在于,您无需在本地计算机上安装 Java、ant、Android SDK 和其他 Android 开发工具。您可以专注于网页,并使用任何方便的设备进行测试。
托管和打包 Zip 文件
我们刚刚介绍了如何测试打包应用(它是一个源代码目录)。现在让我们看看其他两种模式。如果您已经将打包应用构建成了一个 .zip 文件,请使用
mozilla-apk-cli ./my_app.zip my_test_app.apk
如果您正在构建托管应用,请使用
mozilla-apk-cli http://localhost:8080/ my_test_app.apk
没有 Android 设备?不要担心
也许您会说:“这听起来很不错,但我没有 Android 设备……我该怎么进行测试呢?”
好的,我们已经自动实现了这一点。
一方面,不用担心。 移动优先开发 教会我们的一点是,您永远无法拥有足够多的测试资源来覆盖所有设备和平台。网页是关于开放标准和渐进式增强的。
您的网页应用将作为一个原生 Android 应用更加完善,它将以用户期望的方式融入操作系统。
它不使用原生 UI 小部件,也不使用类似的东西,因此不需要进行广泛的测试。渲染引擎是已经安装的 Firefox for Android 中的 gecko。
另一方面……开放标准和兼容性是一个很好的故事,但作为网页开发者,我们知道有些东西往往会有平台特有的错误。我建议对支持的平台进行传统的评级,如果 Android 是一个优先事项,那么一定要购买一个设备,安装 Firefox for Android,并测试您的应用。
随着我们让原生体验在各个平台上(Android、Mac OS X 等)自动实现,我们随时欢迎您的反馈。您对此有什么想法?
mozilla-apk-cli 资源
CLI 工具的源代码位于 GitHub 上。如果您需要一个示例打包应用,这里有一个演示版本。APK 工厂服务的源代码也位于 GitHub 上。
加入我们的 频道,分享您的想法、反馈和问题,并请在 Marketplace 集成 中提交错误报告。
感谢 Wil Clouser 提供插图。
关于 Austin King
西雅图非教条艺术家/程序员类型的人类。应用工程团队的流氓网页开发者。拼写检查是留给弱者的。
关于 Robert Nyman [名誉编辑]
Mozilla Hacks 的技术布道者和编辑。发表演讲并撰写有关 HTML5、JavaScript 和开放式网页的博客文章。Robert 是 HTML5 和开放式网页的坚定支持者,自 1999 年以来一直在从事网页前端开发工作 - 在瑞典和纽约市。他还定期在 http://robertnyman.com 上写博客,喜欢旅行和结识新朋友。
17 条评论