GeckoView:Mozilla面向移动浏览器打造的渲染引擎

更新日期: 2019-07-05 阅读: 3.7k 标签: 浏览器

Mozilla 现已推出面向 Android 的全新移动浏览器 Firefox Preview。与大多数浏览器所采用的 Bink 渲染引擎不同,Firefox Preview 的渲染引擎 GeckoView 由 Mozilla 自行开发。Mozilla 认为,这种独立性一定程度上避免了互联网被单一的科技巨头控制。


根据 Mozilla 工程师的介绍,他们开发 GeckoView 的原意是希望将 Firefox 的渲染引擎作为一个可重用库引入 Android 平台。

通过将 GeckoView 引擎与 Firefox 应用程序相分离,开发团队创建了一种更新、更快和更容易维护的方式来开发 Android 应用程序。这种方法利用了 Gecko 卓越的性能、隐私和对最新 Web 标准的支持。


下面我们来看看关于 GeckoView 的一些介绍和应用案例。


背景

我们都知道 Android 系统提供了内置的 WebView,应用程序可通过 hook 的方式以在 app 的上下文中显示网页。不过 Android 的 WebView 并非真正用于构建浏览器,所以它禁用了许多高级 Web api。另外,它的目标平台也不是统一的,不同的手机可能有不同版本的 WebView。

在这样的背景下,GeckoView 诞生了。


功能

作为一个渲染引擎,GeckoView 提供了完整的功能:

  • 功能齐全:GeckoView 旨在通过简单的 API 向应用程序暴露 Web 的全部功能。可以把它想象为利用了 Gecko(支持 Firefox 的引擎)的全部功能,而它的 API 类似于 WebView 并且易于使用。
  • 适用于应用程序和浏览器:GeckoView 特别适合构建移动浏览器,同时可以把它作为 Web 引擎组件嵌入到任何类型的应用程序中。
  • 自包含:GeckoView 是一个与应用程序捆绑在一起的独立库。
  • 符合标准:与 Firefox 一样,GeckoView 为现代 Web 标准提供了出色的支持。


使用 GeckoView 的其他项目

Mozilla 在许多其他的产品都使用了 GeckoView,列举几个如下(Firefox Preview 除外)。


Firefox Focus

Focus 的简洁性有助于进行实验测试,Mozilla 目前正利用它在 GeckoView 和 Android 的内置 WebView 之间进行隔离测试。这有助于确保 GeckoView 的稳定性和性能。

虽然 Firefox Focus 十分出色,但它不是一款通用的浏览器。设计之初它就不会跟踪历史记录和书签,也不支持 WebRTC 等 API。


Reference Browser

和 Firefox Preview 一样,Reference Browser 也是一款使用 GeckoView 引擎和 Mozilla Android 组件构建的完整浏览器。不过它不是面向普通用户推出,其目标受众是浏览器开发者。事实上,Reference Browser 更像是一个“试验基地”,用来测试 GeckoView 和组件是否合适并按预期运行 —— 并不受市场产品的限制。


Firefox Reality

这是一款专为独立虚拟现实头戴设备而设计的浏览器。除了利用 Gecko 对沉浸式网络技术的出色支持外,Firefox Reality 还展示了 GeckoView 的多功能性。


Firefox for Android

虽然 Firefox for Android (“Fennec”) 不使用 GeckoView 进行渲染,但它使用 GeckoView 来提供对 Progressive Web Apps 和 Custom Tabs 的支持。此外,由于 GeckoView 和 Fennec 都基于 Gecko,因此他们都受益于这个通用基础架构的改进。

Mozilla 将 GeckoView 视作为 Mozilla 下一代移动产品的基础。为了更好地支持这一未来,他们已停止 Firefox Focus 的开发,以将精力集中在 GeckoView 的开发上。

过去六个月,Mozilla 对 GeckoView 的内部实现进行了许多改进,特别是在编译器级优化和对其他 CPU 架构的支持方面。亮点包括:

  • 现已启用 Android 上的配置文件引导优化(PGO),使得编译器通过实际运行和观察 GeckoView 收集的数据来生成更高效的代码
  • IonMonkey Java 的 JIT 编译器已面向 GeckoView 的 64 位 ARM 架构启用
  • 现在正在为 x86_64 架构生成 GeckoView 的构建

实现这些功能除了满足在 Google Play 的上架要求外,支持 64 位架构还可以进一步提高 GeckoView 的稳定性(减少内存崩溃)和安全性。由于 Firefox Preview 尚处于测试阶段,对于即将发布的 Firefox Preview 正式版本,Mozilla 正致力于添加对 Web 推送和“添加到主屏幕”等功能的


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/4023

相关推荐

浏览器禁用了javascript,各种浏览器如何开启javascript的方法总汇

您的浏览器禁用了JS脚本运行,请启用该功能。怎么解除浏览器禁用js?这篇文章将总结整理各个浏览器如何开启、禁用javascript的方法总汇。

监听浏览器刷新及关闭

为保证‘高度安全性’,用户每次退出页面或浏览器都要清除登陆信息,每次进入系统都要重新登陆(每次登陆还要手机验证码等乱七八糟的验证信息,,,求用户的心里阴影面积),但是刷新页面不可以清除登陆信息。

Js实现阻止浏览器返回的功能

无论pc端还是移动端,浏览器都会带有后退按钮或后退键.主要方便我们能返回以前访问过的页面,但有时候我们不得不关闭这个功能.尤其是对于一些推广落地页,用户进入后不希望它返回

window.open被拦截的解决方法总汇

介绍window.open方法被浏览器拦截的处理方式。在 Chrome 的安全机制里,非用户直接触发的 window.open 方法,是会被拦截的,这是由于浏览器为了维护用户安全和体验,下面采用几种变通方法解决:表单提交的方式、onclick事件、延迟打开等

Chrome浏览器crx格式插件安装教程

谷歌浏览器在旧版本(大概是v67版本)之前安装crx插件都非常简单,直接将crx拖放到浏览器内就可以安装了。但是之后的新版本(目前已经升级到v80版本)就只允许用户通过谷歌应用商店安装插件

如何将网站设置为浏览器首页

提示:按 Ctrl + D 即可添加网址到浏览器收藏夹中,方便下次访问fly63导航。下面是如何设置首页的方法。Google Chrome浏览器设为首页的方法;Firefox火狐浏览器设为首页的方法

完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题

h5活动页面底部有个悬浮图片按钮,使用fixed悬浮定位在底部,但是在安卓端的百度浏览器下打开,却发现该图片一闪而过,在百度浏览器中消失不见。

Fiddler无法正常抓取谷歌等浏览器的请求_解决方案

fiddler会自动给浏览器设置一个代理127.0.0.1端口8888,并且记忆浏览器的代理设置,所有的请求先走fiddler代理,再走浏览器代理。解决方案:关闭SwitchyOmega代理,或者使用其代理中的系统代理选项。即可解决问题。

js判断浏览器内核是否是safari浏览器

PC端只有Chrome有Safari字段吗?为什么不需要判断其他浏览器?其实360,QQ等浏览器的userAgent字段也会带有Safari字段,但是由于他们基于Chrome二次开发的,所有也会携带有Chrome字段。

Vue单页面应用阻止浏览器记住密码

现象1:路由切换时再次提示是否记住密码,解决办法:这其实是个代码bug,在登录页面,用form把输入框都包起来就行了。现象2:autocomplete=off无效

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!