Android网络开发之WebKet引擎基础

Android浏览器的内核是Webkit引擎,WebKit的前身是KDE小组的KHTML。

Apple公司推出的Safari浏览器,使用的内核是装备了KHTML的WebKit引擎。

WebKit内核在手机上应用十分广泛。

 

WebKit 是一个开源浏览器网页排版引擎,类似的引擎有:

Gecko作为Mozilla, Firefox的内核,

Trident作为IE的内核(也称MSHTML)。

WebKit所包含的WebCore排版引擎和JSCore排版引擎来自于KDE的KHTML和KJS。

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控件。

原文地址:https://www.cnblogs.com/fengzhblog/p/3185870.html