WebKit – WebKit For Android
一、 WebKit 简介
WebKit 是一个开源的浏览器网页排版引擎,包含 WebCore 排版引擎和 JSCore 引擎。
WebCore 和 JSCore 引擎来自于 KDE 项目的 KHTML 和 KJS 开源项目。 Android 平台的 Web
引擎框架采用了 WebKit 项目中的 WebCore 和 JSCore 部分,上层由 Java 语言封装,并且作
为 API 提供给 Android 应用开发者,而底层使用 WebKit 核心库( WebCore 和 JSCore )进行
网页排版。
二、 WebKit 目录结构
Android 平台的 WebKit 模块分成 Java 和 WebKit 库两个部分,其目录结构如下表所示:
WebKit 模块目录结构 |
|
Java 层(根目录 device/java/android/android/webkit ) |
|
BrowserFrame.java |
BrowserFrame 对象是对 WebCore 库中的 Frame 对象的 Java 层封装,用于创建 WebCore 中定义的 Frame ,以及为该 Frame 对象提供 Java 层回调方法。 |
ByteArrayBuilder.java |
ByteArrayBuilder 辅助对象,用于 byte 块链表的处理。 |
CachLoader.java |
URL Cache 载入器对象,该对象实现 StreadLoader 抽象基类,用于通过 CacheResult 对象载入内容数据。 |
CacheManager.java |
Cache 管理对象,负责 Java 层 Cache 对象管理 |
CacheSyncManager.java
|
Cache 同步管理对象,负责同步 RAM 和 FLASH 之间的浏览器 Cache 数据。实际的物理数据操作在 WebSyncManager 对象中完成。 |
CallbackProxy.java
|
该对象是用于处理 WebCore 与 UI 线程消息的代理类。当有 Web 事件产生时 WebCore 线程会调用该回调代理类,代理类会通过消息的方式通知 UI 线程,并且调用设置的客户对象的回调函数。 |
CellList.java |
CellList 定义图片集合中的 Cell ,管理 Cell 图片的绘制、状态改变以及索引。 |
CookieManager.java |
根据 RFC2109 规范,管理 cookies |
CookieSyncManager.java |
Cookies 同步管理对象,该对象负责同步 RAM 和 Flash 之间的 Cookies 数据。实际的物理数据操作在基类 WebSyncManager 中完成。 |
DataLoader.java |
数据载入器对象,用于载入网页数据。 |
DateSorter.java DownloadListener.java |
尚未使用 下载侦听器接口 |
DownloadManagerCore.java |
下载管理器对象,管理下载列表。该对象运行在 WebKit 的线程中,通过 CallbackProxy 对象与 UI 线程交互。 |
FileLoader.java |
文件载入器,将文件数据载入到 Frame 中。 |
FrameLoader.java |
Frame 载入器,用于载入网页 Frame 数据 |
HttpAuthHandler.java |
Http 认证处理对象,该对象会作为参数传递给 BrowserCallback.displayHttpAuthDialog 方法,与用户交互。 |
HttpDataTime.java |
该对象是处理 HTTP 日期的辅助对象。 |
JsConfirmResult.java |
Js 确认请求对象 |
JsPromptResult.java |
Js 结果提示对象,用于向用户提示 Javascript 运行结果。 |
JsResult.java |
Js 结果对象,用于用户交互 |
JWebCoreJavaBridge.java |
用 Java 与 WebCore 库中 Timer 和 Cookies 对象交互的桥接代码。 |
LoadListener.java |
载入器侦听器,用于处理载入器侦听消息。 |
Network.java |
该对象封装网络连接逻辑,为调用者提供更为高级的网络连接接口。 |
PanZoom.java |
用于处理图片缩放、移动等操作 |
PanZoomCellList.java |
用于保存移动、缩放图片的 Cell |
PerfChecker.java |
用于效率测试的功能对象??? |
SslErrorHandler.java |
用于处理 SSL 错误消息。 |