2019 年的 GeckoView

GeckoView 的标识去年九月,我们写了一篇关于 使用 GeckoView 将 Firefox 的渲染引擎作为可重用库引入 Android 的文章。通过将 Gecko 引擎与 Firefox 应用程序分离,我们创建了一种更新、更快、更易于维护的创建 Android 应用程序的方式。这种方法利用了 Gecko 的出色性能、隐私和对尖端 Web 标准的支持。

随着我们今天发布的基于 GeckoView 的 Firefox Preview,我们想分享一下我们在 2019 年所取得的成就以及 GeckoView 的未来发展方向。

介绍 Firefox Preview

Firefox Preview 的标识我们很高兴地宣布今天 发布 Firefox Preview (GitHub),这是一款从头开始构建的浏览器,其核心是 GeckoViewMozilla Android 组件。虽然它仍处于早期预览阶段,但这是我们第一个完全使用这些新技术构建的最终用户产品。

Two screenshots of Firefox Preview showing the home screen and a page loaded with the main menu open

Firefox Preview 是我们构建、测试和提供独特功能的平台。我们将用它来探索移动浏览器外观和感觉的新概念。我们鼓励您 试一试

其他使用 GeckoView 的项目

但不仅仅是这些 - Mozilla 还在许多其他产品中使用 GeckoView。

Firefox Focus

Firefox Focus 的标识迄今为止,Firefox Focus 是我们最主要的 GeckoView 用户。Focus 的简单性使其易于进行实验。目前,我们正在使用 Focus 对 GeckoView 和 Android 的内置 WebView 进行拆分测试。这有助于我们确保 GeckoView 的性能和稳定性满足或超过 Android 平台库设定的期望。

虽然 Focus 在其领域非常出色,但它并非通用的浏览器。Focus 按照设计不跟踪历史记录或书签,也不支持 WebRTC 等 API。然而,我们需要一个地方来测试这些功能,以确保 GeckoView 足够健壮,能够构建功能齐全的浏览器。这就是 Reference Browser 的作用。

Reference Browser

Reference Browser 的标识与 Firefox Preview 一样,Reference Browser 是一款使用 GeckoView 和 Mozilla Android 组件构建的完整浏览器,但至关重要的是,它不是最终用户产品。其目标受众是浏览器开发人员。事实上,Reference Browser 是一个验证 GeckoView 和组件是否相互配合并按预期工作的试验场。我们获得了在没有市场产品限制的情况下开发核心库的能力。

Firefox Reality

Firefox Reality 的标识GeckoView 还为 Firefox Reality 提供动力,Firefox Reality 是专为独立虚拟现实头显设计的浏览器。除了利用 Gecko 对沉浸式 Web 技术的出色支持外,Firefox Reality 还展示了 GeckoView 的多功能性。与 Focus 和 Firefox Preview 等“传统”浏览器核心相同的库也可以为完全不同的媒介提供动力。

Firefox for Android

Firefox 的标识最后,虽然 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 贡献者的身份,现在开始都比以往任何时候都更容易。如果您发现需要改进的文档,欢迎您随时提交 拉取请求

Logos of all GeckoView-powered projects

我们也很乐意直接为您提供帮助。如果您需要任何与 GeckoView 相关的事项的帮助,您可以在

请随时提出任何问题或意见。

关于 Dan Callahan

Mozilla 开发者关系工程师,前 Mozilla Persona 开发人员。

更多 Dan Callahan 的文章…


5 评论

  1. todd parrish

    感谢 Dan,非常有趣。感谢您的辛勤工作和洞察力。
    ATP

    2019 年 7 月 6 日 下午 7:50

  2. Alexandre Leduc

    既然它也在 x86-64 上编译,那么是否意味着它最终可以用作类似 Electron 的工具来构建使用 gecko 渲染 UI 的原生应用程序,或者这不是最终目标?

    2019 年 7 月 11 日 上午 4:41

    1. Dan Callahan

      GeckoView 与 Android 平台紧密相连,因此将其直接转换为类似 Electron 的桌面运行时不可行。但是,我们希望 Android 开发者能找到 GeckoView 的创造性用途!

      2019 年 7 月 12 日 上午 5:19

  3. Andrew Vickers

    Geckoview 是否有启用可构造样式表 API 的标志?

    2019 年 7 月 18 日 下午 7:13

    1. Dan Callahan

      Gecko 尚未支持可构造样式表。您可以关注 Bug 1520690,以便在开始工作时收到通知。我们确实认为它是 值得原型化的,但尚未进行此项工作。

      2019 年 7 月 19 日 上午 5:46

本文评论已关闭。