聊聊 Firefox Preview 背后的渲染引擎 GeckoView
Mozilla 现已推出面向 Android 的全新移动浏览器 Firefox Preview。与大多数浏览器所采用的 Bink 渲染引擎不同,Firefox Preview 的渲染引擎 GeckoView 由 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 外)。
Focus 的简洁性有助于进行实验测试,Mozilla 目前正利用它在 GeckoView 和 Android 的内置 WebView 之间进行隔离测试。这有助于确保 GeckoView 的稳定性和性能。
虽然 Firefox Focus 十分出色,但它不是一款通用的浏览器。设计之初它就不会跟踪历史记录和书签,也不支持 WebRTC 等 API。
和 Firefox Preview 一样,Reference Browser 也是一款使用 GeckoView 引擎和 Mozilla Android 组件构建的完整浏览器。不过它不是面向普通用户推出,其目标受众是浏览器开发者。事实上,Reference Browser 更像是一个“试验基地”,用来测试 GeckoView 和组件是否合适并按预期运行 —— 并不受市场产品的限制。
这是一款专为独立虚拟现实头戴设备而设计的浏览器。除了利用 Gecko 对沉浸式网络技术的出色支持外,Firefox Reality 还展示了 GeckoView 的多功能性。
虽然 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 JavaScript 的 JIT 编译器已面向 GeckoView 的 64 位 ARM 架构启用
- 现在正在为 x86_64 架构生成 GeckoView 的构建
实现这些功能除了满足在 Google Play 的上架要求外,支持 64 位架构还可以进一步提高 GeckoView 的稳定性(减少内存崩溃)和安全性。
对于即将发布的 Firefox Preview 版本,Mozilla 正致力于支持 Web 推送和“添加到主屏幕”等。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 使用 Hyperledger Fabric 和 Composer 实现区块链应用程序
目前无法绕过技术领域的是区块链话题。但除了加密货币之外,还有更多有趣的应用程序可以带来许多激动人心的软件生态系统。这也适用于Hyperledger项目,该项目提供了一个非常模块化的区块链框架。让我们看看使用Hyperledger Fabric和Composer实现区块链应用程序是多么容易。 关于项目Hyperledger Hyperledger是一个umbrella项目的名称,在该项目下开源区块链方法和工具是协同开发的。它由Linux基金会于2015年推出,并享有IBM,英特尔和富士通等软件巨头以及大型社区的热烈参与。Hyperledger的GitHub存储库目前比以往更加活跃。任何人都可以参与开发。 在Hyperledger中,不仅开发了单个区块链框架(或平台)。相反,重点是并行采用多种方法,创造协同效应,可重复使用的组件和灵活性。从Hyperledger概念的角度来看,区块链网络与比特币或以太网等加密货币的代表无法比较。相反,Hyperledger网络的节点分布在参与组织中,这使得私有,许可或联盟区块链网络特别有趣。首先,我们可以忘记公共区块链的工作证明,股权证明和其他共识机制。所...
- 下一篇
中国拟立密码法:任何组织或个人不得窃取他人加密信息
密码法草案共分总则,核心密码、普通密码,商用密码,法律责任,附则五章四十四条。 中新网北京6月25日电 (梁晓辉 黄钰钦)密码法草案25日提请十三届全国人大常委会初次审议。草案明确,任何组织或者个人不得窃取他人的加密信息,不得非法侵入他人的密码保障系统,不得利用密码从事危害国家安全、社会公共利益、他人合法权益的活动或者其他违法犯罪活动。 密码法草案中的密码,是指使用特定变换对信息等进行加密保护或者安全认证的产品、技术和服务。密码的主要功能有两个:一个是加密保护,另一个是安全认证。 密码法草案共分总则,核心密码、普通密码,商用密码,法律责任,附则五章四十四条。 作为一部密码领域综合性、基础性法律,密码法立法过程中秉持三个原则:一是明确对核心密码、普通密码与商用密码实行分类管理的原则。二是注重把握职能转变和“放管服”需要与保障国家安全的平衡。三是注意处理好草案与网络安全法、保守国家秘密法等有关法律的关系。 关于密码工作的领导和管理体制,草案明确:坚持中国共产党对密码工作的领导;中央密码工作领导机构对全国密码工作实行统一领导,制定国家密码重大方针政策,统筹协调国家密码重大事项和重要工作,推进...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6