行動瀏覽器的核心WebKit介紹

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   os   使用   ar   java   

Hybrid App是運行在移動作業系統的WebView上面的,我們可以在原生頁面中嵌入HTML5網頁,WebView就是這個網頁的容器。WebView實際上是一種嵌入式的編程介面,WebView調用底層的瀏覽器核心如WebKit或Blink等解析網頁,因此瀏覽器的核心決定了Hybrid App HTML5頁面的展示效果和使用者體驗,目前市場上主流行動裝置WebView的核心基本上是Webkit,包括蘋果iOS系統和Android 4.4以前的版本。

瀏覽器核心通常也被稱為渲染引擎。所謂的渲染,就是根據描述或者定義構建數學模型,通過模型產生映像的過程。 瀏覽器的渲染引擎就是能夠將 HTML/CSS/JavaScript 文本及其相應的資源檔轉換成映像結果的模組。

目前行動裝置瀏覽器上常用的核心有Webkit,Blink,Trident,Gecko等,其中iPhone和iPad等蘋果iOS平台主要是WebKit,Android 4.4之前的Android系統瀏覽器核心是WebKit,Android4.4系統瀏覽器切換到了Chromium,核心是Webkit的分支Blink,Windows Phone 8系統瀏覽器核心是Trident。

行動瀏覽器核心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。

 

截至2013年3月7日,Webkit商標已被蘋果公司在美國專利及商標局註冊為其擁有商標。

 Chromium和Blink核心介紹

Blink是一個由Google和OperaSoftware開發的瀏覽器渲染引擎,Google將這個渲染引擎作為Chromium計劃的一部分,並且在2013年4月的時候公布了這一訊息。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支,並且在Chrome(28及往後版本)、Opera(15及往後版本)和Yandex瀏覽器中使用。

由於搭載iOS和Android系統智能手機稱霸全球手機市場,蘋果和Google也因此成為WebKit最大的推動者,並促使其成為目前最大的瀏覽器引擎。

早期的WebKit架構比較簡單,在API層不支援多進程,因此無法發揮多核CPU的硬體效能。為此,蘋果進行了擴充,提出了新一代架構WebKit2,同時,Google的跨平台瀏覽器Chromium也基於原來的WebKit提出了自己的Chromium沙箱架構,兩者不相容(參見:http://blog.csdn.net/shunzi__1984/article/details/6196483)。

但是由於蘋果在這個開源系統中有更多的話語權,因此Google只好被動接受,使用移植的方式來實現和主線WebKit2的對接,這增加了Chromium的複雜性,也影響了Chromium的架構移植工作。

顯然,瀏覽器對Google的重要性遠勝於蘋果,在自己的核心領域絕不能受制於人,因此Google決定利用WebKit的成果,開發自己的Blink引擎。

2013年4月,Google宣布將為Chrome瀏覽器開發新的自主渲染引擎Blink,與WebKit分道揚鑣,在未來10周內用Blink取代旗下所有平台的現有瀏覽器渲染引擎。隨後Opera宣稱將追隨Google,放棄WebKit支援Blink瀏覽器引擎。

Google的策略很簡單,先做減法,再做加法。Google已經公開表示,在最初階段Blink不會進行太大調整,但將很快從WebKit程式碼程式庫中刪除7個軟體包和7000個檔案。2013年5月份的Google I/O大會上的資訊顯示,他們的團隊已經從 Webkit 中拉取了 880 萬行臃腫代碼,其中的 450萬行被當即廢止。目前Google同時保留著Blink和WebKit兩個Team Dev,這兩個團隊都在著手剔除那些覺得不必要的功能。這種策略確保了WebKit開發人員有一個平穩的過渡期,慢慢適應新的API變化。

在最新的Android4.4 Kitkat版本中,原本基於AndroidWebKit的WebView實現被換成基於Chromium的WebView實現。在前面的章節中,筆者也介紹過基於Chromium的WebView實現即將成為Android系統上的預設實現方式,筆者也一直期待這一重大轉變,現在它真的發生了。而之前基於WebView介面的應用程式甚至可以直接工作在該實現上而不需要任何特別的改變。舉個例子來說,Android系統上的預設瀏覽器(AOSP中的瀏覽器),可以不需要任何改變直接工作在新的實現上。WebView只是一個介面類,通過一些內部設計的改變,其具體的實現可以在之前的Android WebKit和Chromium之間進行切換。新的Chromium實現專註於提供一致性的介面(為了相容以前的應用),而內部的渲染引擎改為使用基於Blink/Content核心的引擎,這實現不管是從功能上還是效能來講,都帶來巨大的提升。

行動瀏覽器的核心WebKit介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.