去年九月,我们写了一篇关于 使用 GeckoView 将 Firefox 的渲染引擎作为可重用库引入 Android 的文章。通过将 Gecko 引擎与 Firefox 应用程序分离,我们创建了一种更新、更快、更易于维护的创建 Android 应用程序的方式。这种方法利用了 Gecko 的出色性能、隐私和对尖端 Web 标准的支持。
随着我们今天发布的基于 GeckoView 的 Firefox Preview,我们想分享一下我们在 2019 年所取得的成就以及 GeckoView 的未来发展方向。
介绍 Firefox Preview
我们很高兴地宣布今天 发布 Firefox Preview (GitHub),这是一款从头开始构建的浏览器,其核心是 GeckoView 和 Mozilla Android 组件。虽然它仍处于早期预览阶段,但这是我们第一个完全使用这些新技术构建的最终用户产品。
Firefox Preview 是我们构建、测试和提供独特功能的平台。我们将用它来探索移动浏览器外观和感觉的新概念。我们鼓励您 试一试!
其他使用 GeckoView 的项目
但不仅仅是这些 - Mozilla 还在许多其他产品中使用 GeckoView。
Firefox Focus
迄今为止,Firefox Focus 是我们最主要的 GeckoView 用户。Focus 的简单性使其易于进行实验。目前,我们正在使用 Focus 对 GeckoView 和 Android 的内置 WebView 进行拆分测试。这有助于我们确保 GeckoView 的性能和稳定性满足或超过 Android 平台库设定的期望。
虽然 Focus 在其领域非常出色,但它并非通用的浏览器。Focus 按照设计不跟踪历史记录或书签,也不支持 WebRTC 等 API。然而,我们需要一个地方来测试这些功能,以确保 GeckoView 足够健壮,能够构建功能齐全的浏览器。这就是 Reference Browser 的作用。
Reference Browser
与 Firefox Preview 一样,Reference Browser 是一款使用 GeckoView 和 Mozilla Android 组件构建的完整浏览器,但至关重要的是,它不是最终用户产品。其目标受众是浏览器开发人员。事实上,Reference Browser 是一个验证 GeckoView 和组件是否相互配合并按预期工作的试验场。我们获得了在没有市场产品限制的情况下开发核心库的能力。
Firefox Reality
GeckoView 还为 Firefox Reality 提供动力,Firefox Reality 是专为独立虚拟现实头显设计的浏览器。除了利用 Gecko 对沉浸式 Web 技术的出色支持外,Firefox Reality 还展示了 GeckoView 的多功能性。与 Focus 和 Firefox Preview 等“传统”浏览器核心相同的库也可以为完全不同的媒介提供动力。
Firefox for Android
最后,虽然 Firefox for Android (“Fennec”) 不使用 GeckoView 进行常规浏览,但它确实使用它来支持渐进式 Web 应用和自定义标签。此外,由于 GeckoView 和 Fennec 都基于 Gecko,因此它们共同受益于对该通用基础设施的改进。
GeckoView 是 Mozilla 下一代移动产品的基础。为了更好地支持未来,我们在专注于完善 GeckoView 和准备发布 Firefox Preview 的同时,停止了 Focus 的新功能开发。如果您有兴趣在未来支持 Focus,请通过填写 这份调查 来提供帮助。
内部
除了产品开发外,过去六个月还见证了 GeckoView 内部许多改进,特别是在编译器级优化和支持更多 CPU 架构方面。亮点包括
- Android 上的 Profile-Guided Optimization (PGO) 现已启用,这使编译器能够通过考虑实际运行和观察 GeckoView 收集的数据来生成更有效的代码。
- IonMonkey JavaScript JIT 编译器 现已启用,用于 64 位 ARM 版本的 GeckoView。
- 我们现在正在为 x86_64 架构生成 GeckoView 版本。
除了满足 Google 对在 Play 商店中列出的应用程序即将推出的要求 外,支持 64 位架构还进一步提高了 GeckoView 的稳定性(更少的内存不足崩溃)和安全性。
对于即将发布的版本,我们正在努力支持 Web 推送和“添加到主屏幕”等功能。
参与
GeckoView 不仅仅是为 Mozilla 而设计的,我们希望它对您也有用。
感谢 Emily Toop 对 GeckoView 文档 网站的新贡献。无论是以使用 GeckoView 的应用程序开发人员身份,还是以 GeckoView 贡献者的身份,现在开始都比以往任何时候都更容易。如果您发现需要改进的文档,欢迎您随时提交 拉取请求。
我们也很乐意直接为您提供帮助。如果您需要任何与 GeckoView 相关的事项的帮助,您可以在
- #mobile 频道中找到我们,该频道属于 Mozilla 的 IRC 服务器,或者
- 在 mobile-firefox-dev 邮件列表中,或者
- 在 Twitter 上的 @geckoview。
请随时提出任何问题或意见。
关于 Dan Callahan
Mozilla 开发者关系工程师,前 Mozilla Persona 开发人员。
5 评论