下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 移动开发 >Android > 深入理解Android:WebKit卷

深入理解Android:WebKit卷

综合评级:★★★★★

定价:59.00

作者:孟德国 王耀龙

出版社:机械工业出版社

出版日期:2016年3月

页数:235

字数:170000

ISBN:9787111529217

书籍介绍
全书一共11章:第1章介绍了Android源代码阅读与编译环境的搭建;第2章介绍了浏览器的通用工作原理以及WebKit的架构设计;第3章深入解析了WTF的实现原理;第4章深入讲解了Loader与网络库;第5章详细讲解了WebKit的网页解析原理;第6章深入分析了浏览器的排版和布局原理;第7章讲解了浏览器的渲染和硬件加速;第8章从源码的角度深入剖析了AndroidWebKit框架;第9章从实用的角度和源码的角度讲解了WebKit的JavaScript扩展接口;第10章讲解了WebKit的插件系统的实现原理;第11章对RemoteInspector的实现进行了深入分析。
相关课程
目录

前 言

第1章 搭建源代码编译环境 1

1.1 Android全源码开发环境 1

1.1.1 PC配置建议 1

1.1.2 Ubuntu系统安装 2

1.1.3 Ubuntu下Android编译环境搭建 2

1.1.4 工作目录设置 3

1.1.5 源代码下载 3

1.1.6 整体编译Android源代码 4

1.1.7 单个模块按需编译 5

1.1.8 编译生成本地Android SDK 5

1.2 Android常用工具使用及相关技巧说明 6

1.2.1 启动Android模拟器 10

1.2.2 Android调试工具adb的使用方法 10

1.3 webKit源代码目录结构 13

1.4 WebKit代码调试 15

1.5 本章小结 17

第2章 浏览器工作原理及WebKit概览 18

2.1 浏览器工作原理概述 18

2.1.1 页面 19

2.1.2 内核 19

2.1.3 外壳 24

2.2 浏览器和WebKit简史 27

2.3 WebKit架构概览 29

2.3.1 整体组成架构 30

2.3.2 核心工作流程 34

2.3.3 代码设计风格 36

2.4 本章小结 38

第3章 WTF的实现及使用 39

3.1 WTF库概述 39

3.2 智能指针 40

3.2.1 OwnPtr的实现及使用 41

3.2.2 RefPtr的实现及使用 44

3.2.3 线程安全性 45

3.3 Assert与crash dump 46

3.3.1 Assert的实现及使用 46

3.3.2 crash dump的实现及使用 47

3.4 内存管理与容器 50

3.4.1 FastAllocator的实现及使用 50

3.4.2 容器类概述 51

3.5 原子操作 57

3.6 WebKit运行时线程结构 57

3.6.1 MessageQueue实现分析 57

3.6.2 Task传递 59

3.6.3 MainThread运行原理 60

3.7 本章小结 61

第4章 Loader与网络库 62

4.1 Loader概述 63

4.2 Loader的设计与实现架构 63

4.2.1 Loader模块的设计 63

4.2.2 Loader中的类结构及作用 65

4.3 MainResourceLoader资源加载流程 67

4.3.1 主资源 67

4.3.2 主资源加载示例 67

4.4 SubResourceLoader资源加载流程 73

4.4.1 派生资源 73

4.4.2 派生资源加载示例 73

4.5 WebKit网络库chrome-net介绍 80

4.5.1 chrome-net实现结构 80

4.5.2 chrome-net与WebKit的接口 81

4.6 WebKit中的 Cache 81

4.6.1 Memory Cache内存缓存 82

4.6.2 Page Cache页面缓存 84

4.6.3 Disk Cache磁盘缓存 86

4.7 本章小结 87

第5章 网页解析 88

5.1 WebKit网页解析概述 88

5.2 DOM模型简介 89

5.3 HTML解析过程 90

5.3.1 DOM树的构建 90

5.3.2 Render树的构建 94

5.3.3 RenderLayer树的构建 96

5.4 CSS样式表处理 97

5.4.1 CSS文档结构 97

5.4.2 CSS解析过程 99

5.4.3 CSS规则匹配 100

5.5 javaScript脚本执行 101

5.6 本章小结 103

第6章 排版布局 104

6.1 CSS盒模型 104

6.2 定位与包含块 106

6.3 Render类的核心对象 111

6.4 Render树创建流程代码分析 121

6.5 Layout流程代码分析 123

6.5.1 计算大小 123

6.5.2 确定位置 127

6.5.3 简单例子 130

6.6 绘制流程分析 131

6.7 本章小结 136

第7章 渲染与硬件加速 137

7.1 Android SurfaceFlinger系统介绍 137

7.2 WebKit 的三棵树 138

7.3 Android WebKit渲染过程 139

7.3.1 Android WebKit记录网页绘制命令过程分析 140

7.3.2 Android WebKit软件渲染流程分析 145

7.3.3 Android WebKit硬件渲染流程分析 147

7.4 软件渲染与硬件渲染的优缺点 156

7.5 本章小结 156

第8章 Android WebKit框架 157

8.1 Android系统中的WebKit框架介绍 157

8.1.1 Android Framework介绍 158

8.1.2 Java Native Interface简介 160

8.1.3 Android WebKit相关API简介 161

8.2 Android WebKit框架实现解析 163

8.2.1 架构简述 164

8.2.2 初始化流程 165

8.2.3 网页加载流程 167

8.2.4 绘制调用流程 168

8.3 基于Android WebKit的浏览器实现 169

8.3.1 浏览器app的基本功能 169

8.3.2 Android系统浏览器实现解析 170

8.3.3 Android系统WebKit内核定制开发 174

8.4 本章小结 175

第9章 Javascript扩展接口 176

9.1 V8原理及接口 176

9.1.1 V8设计元素 176

9.1.2 V8运行实例分析 181

9.1.3 V8 接口及使用 183

9.2 WebKit JavaScript接口 191

9.2.1 V8 binding作用及结构 191

9.2.2 WebKit接口扩展 191

9.3 HTML 5扩展实例 196

9.3.1 WebSocket概述 196

9.3.2 WebSocket实现分析 198

9.4 本章小结 200

第10章 WebKit的插件系统 201

10.1 NPAPI插件概述 202

10.1.1 浏览器插件功能作用 202

10.1.2 NPAPI插件规范 202

10.2 WebKit的插件系统 204

10.2.1 WebKit插件基础组件 205

10.2.2 插件加载流程 205

10.2.3 插件与脚本的交互 210

10.3 Android平台插件开发 213

10.3.1 新增特有接口 213

10.3.2 插件APK化及参考范例 214

10.4 本章小结 217

第11章 浏览器调试工具 218

11.1 Inspector概述 218

11.2 WebKit Inspector协议 219

11.3 Remote Inspector实现结构 223

11.3.1 协议信道 224

11.3.2 Inspector后端 225

11.3.3 Inspector前端 229

11.4 JavaScript调试 233

11.5 本章小结 235

前言
为什么要写这本书  在PC互联网时代,用户开启电脑后手动打开的第一个应用程序,如果不是QQ,那往往就是浏览器。在移动互联网无比繁荣的今天,移动浏览器虽然没有像PC浏览器那样占据资讯第一入口的地位,但浏览器引擎一个华丽的转身,找到了自己新的、更广阔的发展空间―嵌入到各个超级App中,比如微信、百度搜索框等,无缝展示Web资源,由此可见,浏览器引擎依旧非常重要。   浏览器的重要性毋庸讳言,在这便捷的工具中,用户只需键入一个文本的URL或者点击一个链接,瞬间绚丽的新页面就展示在面前。浏览器具备什么样的魔法使这一切悄然发生呢?相信普通用户和众多的前端开发者都会有这个疑问。阅读开源的浏览器引擎代码(比如WebKit),可以帮我们解开这些疑惑,这正是本书的内容。   WebKit引擎内容庞大复杂,是一个完整的网页内容解析工具,集成WebKit的具体平台只需对接网络库及图形库,便可使用WebKit的强大解析功能。利用具体平台提供的图形库及显示系统便可实现网页的渲染和显示。WebKit引擎由众多的子模块组成,模块功能高度内聚,彼此协同工作处理数据流。代码考究,格式优美,内容精彩,是开源代码中的上品,极具研究和学习价值。   由于WebKit的庞大,初学者往往无从下手,对比Linux Kernel,虽然Linux Kernel的源码复杂度高于WebKit,但相关领域已经有大量的优秀书籍,加之操作系统、计算机体系结构及接口技术是计算机相关专业学生的必修课,这都使得Linux Kernel的学习曲线不再陡峭。而在浏览器引擎方面,至今学习资源仍然非常少,WebKit官网、Chromium官网、W3C官网、html5rock等网站虽然有一些原理性和框架性的描述,但不够具体,要想真正了解浏览器引擎还是要跟随笔者一起阅读代码。   读者对象  本书主要介绍Android 4.2 平台WebKit的原理与实现,今天看来虽然Android版本略显陈旧,但WebKit的架构与原理是没有变化的,所以本书也可帮助读者理解其他平台或其他版本WebKit引擎浏览器的原理。   本书的主要目标读者有如下几类:   WebKit内核工程师;  手机浏览器及浏览器类应用开发者;  前端开发工程师;  对浏览器感兴趣的大专院校在校学生。   为方便读者查阅代码,笔者已经将去掉.repo和.git目录的Android 4.2版本的全部源代码,上传至百度网盘,链接为:http://pan.baidu.com/s/1hqJEyP2。   如何阅读本书  本书的主体部分按浏览器处理数据的流程来组织,所以建议读者从头至尾阅读,以便于完整地了解WebKit。当然由于WebKit的各个模块依据功能进行了清晰的划分,读者也可根据兴趣阅读各相关章节。   本书各章内容安排如下:   第1章作为全书的开篇,介绍了Android全源码开发环境的搭建过程,读者可在全源码开发环境的基础上研究WebKit代码。   第2章介绍浏览器工作原理及WebKit概览,对比了当前主流浏览器引擎,讲解了WebKit的优缺点、历史和现状,以及设计架构。   第3章介绍WTF库,包括智能指针、Assert、内存管理与容器、线程封装、WebKit运行时线程结构。   第4章介绍Loader与网络库,包括Loader的设计与实现架构、资源加载流程、MainResourceLoader和SubResourceLoader、chrome-net网络库,以及Web Cache。 .  第5章介绍网页解析,包括HTML语法解析、网页处理一般过程、CSS样式处理、JS脚本执行等内容。   第6章介绍排版布局,包括CSS框架模型、布局计算,以及Render相关的核心类。   第7章介绍渲染与硬件加速,包括软件绘制流程、软件合成、硬件加速合成等。   第8章介绍Android WebKit框架,包括Android Framework介绍、Android WebKit Java层核心类与主要接口、Android WebKit框架实现的源码解析,并基于Android WebKit的浏览器做了范例实现。   第9章介绍JavaScript扩展接口,包括V8原理及接口、WebKit JavaScript接口, 并做了HTMLElement binding实例分析和HTML 5扩展分析。   第10章介绍WebKit的插件系统,包括NPAPI插件接口详解、WebKit的插件实现、Android平台插件开发等。   第11章介绍Remote Inspector,包括Remote Inspector实现架构、Remote Inspector协议、Inspector 代码分析、BackEnd代码分析、FrontEnd代码分析等。   勘误和支持  由于时间仓促加之笔者水平及视野有限,错误和疏漏是难免的,欢迎读者批评指正。如果有任何宝贵意见,欢迎通过如下邮箱联系笔者:webkitbook@163.com。   致谢  感谢机械工业出版社华章公司的策划编辑杨福川和丛书主编邓凡平先生,是你们的鼓励和帮助引导我们顺利完成全部书稿。   感谢姜影编辑,感谢你对书籍初稿的订正和修改建议。   另外,还要感谢曾经的同事马兴,感谢他对本书提出的宝贵意见。   作者团队
热门图书
推荐新闻
技术文库
论坛推荐