Android網絡開發之WebKet引擎基礎

Android瀏覽器的內核是Webkit引擎,WebKit的前身是KDE小組的KHTML。android

Apple公司推出的Safari瀏覽器,使用的內核是裝備了KHTML的WebKit引擎。web

WebKit內核在手機上應用十分普遍。瀏覽器

 

WebKit 是一個開源瀏覽器網頁排版引擎,相似的引擎有:ide

Gecko做爲Mozilla, Firefox的內核,佈局

Trident做爲IE的內核(也稱MSHTML)。ui

WebKit所包含的WebCore排版引擎和JSCore排版引擎來自於KDE的KHTML和KJS。ip

Apple公司選擇WebKit做爲內核是由於它擁有清晰的源碼結構、極快的渲染速度。資源

 

WebKit由3個模塊組成:JavaScriptCore, WebCore, WebKit。開發

1. JavaScriptCore: JavaScript解釋器。字符串

2. WebCore: 項目的核心,用來實現Render引擎。解析Web頁面,生成一個DOM樹和一個Render樹。

3. WebKit: 整個項目的名稱。

 

WebCore的主要功能有:

1. Page, 與外框相關的內容,包括Frame, Page, History, Focus, Window.

2. Loader, 加載資源及Cache。

3. HTML, DOM HTML 內容及解析。

4. XML, XML內容及解析。

5. DOM, DOM CORE 內容。

6. Render, 排版功能。

7. CSS, DOM CSS 內容。

8. Binding, DOM和JavaScriptCore綁定的功能。

9. Editing, 全部與編輯相關的內容。

 

JavaScriptCore的主要功能有:

1. API, 基本JavaScript功能。

2. Binding, 與其餘功能的綁定,如DOM, C, JNI。

3. DerviedSource, 自動產生的代碼。

4. ForwordHeads, 頭文件,無實際意義。

5. PCRE, Perl-Compatible Regular Expressions.

6. KJS, JavaScript內核。

7. WTF, KDE的C++模型庫。

 

WebKit的解析過程

1. CURL獲得Stream。

2. 解析拆分字符串。

3. 經過DOM Buider按合法的HTML規範生成DOM樹。

4. 若是有JavaScript, JSEngine就經過ECMA-262標準完善DOM樹。

5. 把DOM傳給LayoutEngine進行佈局,若是有CSS樣式,就經過CSSParser解析。

6. 最後Rendering渲染出來。

 

Google對WebKet進行了封裝,爲開發者提供了豐富的API,其中最重要的是android.webkit.WebKit控件。

相關文章
相關標籤/搜索