GeckoView:Mozilla面向移动浏览器打造的渲染引擎
(給前端大全加星標(biāo),提升前端技能)
轉(zhuǎn)自:開源中國
Mozilla 現(xiàn)已推出面向 Android 的全新移動(dòng)瀏覽器?Firefox Preview。與大多數(shù)瀏覽器所采用的 Bink 渲染引擎不同,Firefox Preview 的渲染引擎 GeckoView 由 Mozilla 自行開發(fā)。
Mozilla 認(rèn)為,這種獨(dú)立性一定程度上避免了互聯(lián)網(wǎng)被單一的科技巨頭控制。
根據(jù) Mozilla 工程師的介紹,他們開發(fā) GeckoView 的原意是希望將 Firefox 的渲染引擎作為一個(gè)可重用庫引入 Android 平臺(tái)。
通過將 GeckoView 引擎與 Firefox 應(yīng)用程序相分離,開發(fā)團(tuán)隊(duì)創(chuàng)建了一種更新、更快和更容易維護(hù)的方式來開發(fā) Android 應(yīng)用程序。這種方法利用了 Gecko 卓越的性能、隱私和對(duì)最新 Web 標(biāo)準(zhǔn)的支持。
下面我們來看看關(guān)于 GeckoView 的一些介紹和應(yīng)用案例。
背景
我們都知道 Android 系統(tǒng)提供了內(nèi)置的 WebView,應(yīng)用程序可通過 hook 的方式以在 app 的上下文中顯示網(wǎng)頁。不過 Android 的 WebView 并非真正用于構(gòu)建瀏覽器,所以它禁用了許多高級(jí) Web API。另外,它的目標(biāo)平臺(tái)也不是統(tǒng)一的,不同的手機(jī)可能有不同版本的 WebView。
在這樣的背景下,GeckoView 誕生了。
功能
作為一個(gè)渲染引擎,GeckoView 提供了完整的功能:
功能齊全:GeckoView 旨在通過簡(jiǎn)單的 API 向應(yīng)用程序暴露 Web 的全部功能。可以把它想象為利用了 Gecko(支持 Firefox 的引擎)的全部功能,而它的 API 類似于 WebView 并且易于使用。
適用于應(yīng)用程序和瀏覽器:GeckoView 特別適合構(gòu)建移動(dòng)瀏覽器,同時(shí)可以把它作為 Web 引擎組件嵌入到任何類型的應(yīng)用程序中。
自包含:GeckoView 是一個(gè)與應(yīng)用程序捆綁在一起的獨(dú)立庫。
符合標(biāo)準(zhǔn):與 Firefox 一樣,GeckoView 為現(xiàn)代 Web 標(biāo)準(zhǔn)提供了出色的支持。
使用 GeckoView 的其他項(xiàng)目
Mozilla 在許多其他的產(chǎn)品都使用了 GeckoView,列舉幾個(gè)如下(Firefox Preview 除外)。
Firefox Focus
Focus 的簡(jiǎn)潔性有助于進(jìn)行實(shí)驗(yàn)測(cè)試,Mozilla 目前正利用它在 GeckoView 和 Android 的內(nèi)置 WebView 之間進(jìn)行隔離測(cè)試。這有助于確保 GeckoView 的穩(wěn)定性和性能。
雖然 Firefox Focus 十分出色,但它不是一款通用的瀏覽器。設(shè)計(jì)之初它就不會(huì)跟蹤歷史記錄和書簽,也不支持 WebRTC 等 API。
Reference Browser
和 Firefox Preview 一樣,Reference Browser 也是一款使用 GeckoView 引擎和 Mozilla Android 組件構(gòu)建的完整瀏覽器。不過它不是面向普通用戶推出,其目標(biāo)受眾是瀏覽器開發(fā)者。事實(shí)上,Reference Browser 更像是一個(gè)“試驗(yàn)基地”,用來測(cè)試 GeckoView 和組件是否合適并按預(yù)期運(yùn)行 —— 并不受市場(chǎng)產(chǎn)品的限制。
Firefox Reality
這是一款專為獨(dú)立虛擬現(xiàn)實(shí)頭戴設(shè)備而設(shè)計(jì)的瀏覽器。除了利用 Gecko 對(duì)沉浸式網(wǎng)絡(luò)技術(shù)的出色支持外,Firefox Reality 還展示了 GeckoView 的多功能性。
Firefox for Android
雖然 Firefox for Android (“Fennec”) 不使用 GeckoView 進(jìn)行渲染,但它使用 GeckoView 來提供對(duì) Progressive Web Apps 和 Custom Tabs 的支持。此外,由于 GeckoView 和 Fennec 都基于 Gecko,因此他們都受益于這個(gè)通用基礎(chǔ)架構(gòu)的改進(jìn)。
Mozilla 將 GeckoView 視作為 Mozilla 下一代移動(dòng)產(chǎn)品的基礎(chǔ)。為了更好地支持這一未來,他們已停止 Firefox Focus 的開發(fā),以將精力集中在 GeckoView 的開發(fā)上。
過去六個(gè)月,Mozilla 對(duì) GeckoView 的內(nèi)部實(shí)現(xiàn)進(jìn)行了許多改進(jìn),特別是在編譯器級(jí)優(yōu)化和對(duì)其他 CPU 架構(gòu)的支持方面。亮點(diǎn)包括:
現(xiàn)已啟用 Android 上的配置文件引導(dǎo)優(yōu)化(PGO),使得編譯器通過實(shí)際運(yùn)行和觀察 GeckoView 收集的數(shù)據(jù)來生成更高效的代碼。
IonMonkey?JavaScript 的 JIT 編譯器已面向 GeckoView 的 64 位 ARM 架構(gòu)啟用
現(xiàn)在正在為 x86_64 架構(gòu)生成 GeckoView 的構(gòu)建
實(shí)現(xiàn)這些功能除了滿足在 Google Play 的上架要求外,支持 64 位架構(gòu)還可以進(jìn)一步提高 GeckoView 的穩(wěn)定性(減少內(nèi)存崩潰)和安全性。
由于 Firefox Preview 尚處于測(cè)試階段,對(duì)于即將發(fā)布的 Firefox Preview 正式版本,Mozilla 正致力于添加對(duì)?Web 推送和“添加到主屏幕”等功能的支持。
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
Firefox Preview發(fā)布,下一代移動(dòng)瀏覽器
JS 中可以提升幸福度的小技巧
JS 開發(fā)常用工具函數(shù)
覺得本文對(duì)你有幫助?請(qǐng)分享給更多人
關(guān)注「前端大全」加星標(biāo),提升前端技能
好文章,我在看??
總結(jié)
以上是生活随笔為你收集整理的GeckoView:Mozilla面向移动浏览器打造的渲染引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用MATLAB敲qda,LOMO_XQD
- 下一篇: 操作系统虚拟存储管理实验