一、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\w ebkit) 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 线程会调用该回调代理类,代理类会通过消息的方式用设置的客户对象的回调函数。 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 认...