webkit介紹

我們已經知道,Android瀏覽器的內核是Webkit引擎,Webkit的前身是KDE小組的KHTML。Apple將KHTML發揚光大,推出了裝備KHTML的改進型的Webkit引擎的瀏覽器Safari,獲得了非常好的反響。Webkit內核在手機上的應用十分廣泛,例如Google的手機Gphone,Apple的iPhone,Nokia的Series 60 browser等所有使用的Browser內核引擎,都是基於Webkit。隨着計算機、手機及連網裝置的普及,未來終端運算都會在雲端執行,目前雲計算技術在網絡服務中已經隨處可見,例如搜索引擎、網絡信箱等,使用者只要輸入簡單指令即能得到大量信息。未來的手機GPS等行動裝置都可以透過雲計算技術,發展出更多的應用服務。因此人們只要擁有一個功能強大的瀏覽器,就能滿足平時工作生活的需要。

Webkit是一個開源瀏覽器網頁排版引擎,與之相應的引擎有Gecko(Mozilla、firefox等使用的排版引擎)和Trident(也成爲MSHTML,是IE使用的排版引擎)。同時,Webkit也是蘋果Mac Os X系統引擎框架版本的名稱,主要用於Safari、Dashboard、Mail和其他一些Mac OS X程序。Webkit所包含的WebCore排版引擎和JSCore引擎來自於KDE的KHTML和KJS,當年蘋果比較了Gecko和KHTML後,仍然選擇了後者,就因爲它擁有清晰的源碼結構、極快的渲染速度。而今Android系統也毫不猶豫地選擇了Webkit。它具備觸摸屏、高級圖形顯示和上網功能,用戶能夠在手機上查看電子郵件、搜索網址和觀看視頻節目等。可以看出這是一個非常強大的Web應用平臺。

WebKit由3個模塊組成:JavaScriptCore、WebCore和WebKit:

  • WebKit:整個項目名稱。
  • JavaScriptCore:JavaScript解釋器。
  • WebCore:整個項目的核心,用來實現Render引擎,解析Web頁面,生成一個DOM樹和一個Render樹。
WebCore的主要功能有:
  • Page:與外框相關的內容(Frame,Page,History,Focus,Window)。
  • Loader:加載資源及Cache。
  • HTML:DOM HTML內容及解析。
  • DOM:DOM CORE 內容。
  • XML:XML內容及解析。
  • Render:排版功能。
  • CSS:DOM CSS內容。
  • Binding:DOM與JavaScriptCore綁定的功能。
  • Editing:所有與編輯相關的功能。
JavaScriptCore的主要功能有:
  • API:基本JavaScript功能。
  • Binding:與其他功能綁定的功能,如DOM、C,JNI。
  • DerviedSource:自動產生的代碼。
  • ForwordHeads:頭文件,無實際意義。
  • PCRE:Perl-Compatible Regular Expressions(Perl兼容的規則表達式)。
  • KJS:JavaScript內核。
  • WTF:KDE的C++模板庫。
對WebKit各個模塊的功能有了瞭解,下面我們看看WebKit的解析過程是怎樣的。流程如下:
  • CURL獲得網站的stream。
  • 解析劃分字符串。
  • 通過DOM Builder按合法的HTML規範生成DOM樹。
  • 如果有JavaScript,JSEngine就通過ECMA-262標準完善DOM樹。
  • 把DOM傳給LayoutEngine進行佈局,如果有CSS樣式,就通過CSSParser解析。
  • 最後Rending渲染出來。
而Google對WebKit進行了封裝,爲開發者提供了豐富的Java接口,其中最重要的便是android.webkit.WebView控件。
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章