移動WebKit-帶你進入瀏覽器的世界

平時在使用移動端瀏覽器(Android/iOS)總會有這樣的體驗:
a.Android手機的瀏覽器就是shit,卡爆了/iOS的(safari)還不錯哦;

b.某東、某寶據說使用的是H5頁面,為什麼性能這麼好?
c.平時用的QQ瀏覽器,UC瀏覽器性能還不錯啊,為什麼自己做的WebView頁面這麼爛?

說到移動端的瀏覽器,就必須說到瀏覽器的內核:作為瀏覽器最重要或者核心的部分,瀏覽器內核通常也被稱為渲染引擎(Rendering Engine)。所謂的渲染,就是根據描述或者定義構建數學模型,通過模型生成圖像的過程。瀏覽器的渲染引擎就是能夠將 HTML/CSS/JavaScript 文本及其相應的資源文件轉換成圖像結果的模塊。

移動WebKit-帶你進入瀏覽器的世界

瀏覽器內核

目前移動設備瀏覽器上常用的內核有

  • Webkit,

  • Blink,

  • Trident,

  • Gecko等,

移動WebKit-帶你進入瀏覽器的世界

其中iPhone和iPad等蘋果iOS平臺主要是WebKit,Android 4.4之前的Android系統瀏覽器內核是WebKit,Android4.4系統瀏覽器切換到了Chromium,內核是Webkit的分支Blink,Windows Phone 8系統瀏覽器內核是Trident。

需要注意的是iOS平臺上的WebKit,考慮到安全性,強制要求ios平臺上到應用使用ios到WebKit框架及js等:蘋果公司在App Store的政策中寫道:“Apps在瀏覽網頁時,必須使用iOS的WebKit框架以及WebKit JavaScript。”然而,第三方的瀏覽器不僅僅被迫使用Safari的內核——他們是被迫使用舊的慢的WebKit Javascript 引擎,而只有Safari可以使用最新最快的Nitro Javascript引擎。這就有點霸道了!

後面講到優化部分,顯然不包括ios上的,著重介紹Android上的優化;

移動瀏覽器內核WebKit介紹

WebKit是目前主流的移動瀏覽器渲染引擎,主要設計是用來讓網頁瀏覽器繪製網頁。WebKit目前作為AppleSafari及Google Chrome(直到版本27)等瀏覽器的主要引擎。根據StatCounter的瀏覽器市場份額調查,於2012年11月,Webkit市佔超過了40%,它已經成為擁有最大市場份額的排版引擎,超越了InternetExplorer所使用的Trident及Firefox所使用的Gecko引擎。Webkit也作為一些實驗性質瀏覽器的基礎引擎,包含Amazon Kindle 電子書閱讀器,同時也使用在下列移動操作系統的默認瀏覽器,包含蘋果電腦iOS、Android, BlackBerry Tablet OS、Bada、Tizen及webOS。WebKit的C++應用程序接口提供了一系列的Class讓我們可以在視窗上顯示網頁內容,並且實現了一些瀏覽器的特色,包含使用者鏈接點擊、管理前後頁面列表以及使用者曾經訪問過的歷史頁面等等。

WebKit的HTML及JavaScript源代碼源自於KDE的KHTML及KJS程序庫,現在已經由KDE、蘋果電腦、諾基亞、Google、Bitstream、RIM、Igalia等進行獨立專案開發。OS X、Windows、GNU/Linux以及其他類Unix系統操作系統,皆支援這個專案。

WebKit的WebCore及JavaScriptCore元件使用GNU寬通用公共許可證開源,而其他的WebKit元件則採用BSD許可證開源。

WebKit2發佈於2010年4月8日,Webkit2的目標是將元件抽象化,並提供更乾淨的網頁渲染,它會利用從周圍的界面或是應用程式的殼,建立一個環境使網頁的內容(JavaScript、HTML、排版等等)將會在另外一個程序(Process)運行,比起WebKit,這個抽象化的做法打算令WebKit2可重複使用一個更簡單的程序。因為WebKit2對比起WebKit有 一個不相容的API ,所以導致他的名字被改變為WebKit2。

WebKit優化

做開發的朋友,對移動端開發有點基礎或瞭解的,就會知道手機上的某東、某寶,採用的是Hybrid的開發技術,他們都是基於移動操作系統(Android/iOS)上的WebView進行開發的,通過在原生應用嵌入Html5頁面,展示特定的效果或用戶體驗;然而,你以為就這麼簡單嗎?錯了,不得不說某東、某寶的實力還是有目共睹的,體現在產品上,媲美原聲應用的體驗,流暢的頁面,很顯然是做足了功課的。筆者不明白他們內部的技術,不過多說明,我們可以說一說目前比較火的騰訊X5內核(同樣比較牛叉的還有UC的U3內核據說已經升級到U5,百度的T5內核-基於Trident);

眾所周知,WebKit 是一個開源的瀏覽器引擎,包含WebCore排版引擎和JSCore引擎。既然是開源,個大瀏覽器廠商,手機品牌商,移動應用產品開發商等必然會對WebKit進行不斷的改進優化,直至滿足使用,達到優秀的使用體驗;

騰訊X5內核介紹

TBS騰訊瀏覽服務(http://x5.tencent.com/tbs/index.html)

官網介紹,一句話:X5內核,解決系統WebView兼容性差、加載速度慢、功能缺陷等問題解決一切令開發者們頭疼的問題,讓開發者快速而輕鬆地開啟開發之旅嗯,果然很霸氣,也有底氣,每次拿出一份大數據的成績單,就讓人心服口服了,哈哈。

移動WebKit-帶你進入瀏覽器的世界

TBS(騰訊瀏覽服務)的優勢

1) 速度快:相比系統webview的網頁打開速度有30+%的提升;

2) 省流量:使用雲端優化技術使流量節省20+%;

3) 更安全:安全問題可以在24小時內修復;

4) 更穩定:經過億級用戶的使用考驗,CRASH率低於0.15%;

5) 兼容好:無系統內核的碎片化問題,更少的兼容性問題;

6) 體驗優:支持夜間模式、適屏排版、字體設置等瀏覽增強功能;

7) 功能全:在Html5、ES6上有更完整支持;

8) 更強大:集成強大的視頻播放器,支持視頻格式遠多於系統webview;

9) 視頻和文件格式的支持x5內核多於系統內核

10) 防劫持是x5內核的一大亮點

目前tbs服務已經更新到3.0了,備受開發者吐槽的各種問題,也修改的七七八八了,問題可能一直會有,但體驗絕對越來越好。現在不做過多的介紹,我們放到下次講解和體驗。

講到這裡,開頭提出的幾個問題是不是疑竇頓消了,希望您有所收穫。

堅持原創技術分享,您的支持將鼓勵我繼續創作!


分享到:


相關文章: