深入理解Android:WebKit卷

ISBN:9787111529219
作者:孟德国,王耀龙,周金利
页数:245页

内容概要

孟德国
资深系统工程师,现就职于小米。长期从事嵌入式软硬件、浏览器引擎、Android系统等相关领域的研发工作。曾就职于百度移动浏览器引擎组,期间专注浏览器内核Webkit与Chromium源码研究。此外在操作系统内核(Linux Kernel及各种RTOS)、SOC软硬件体系结构、无线技术(WiFi、蓝牙)、最优滤波、神经网络等相关领域亦有一定的研究。
王耀龙
前百度资深研发工程师。2007年西安交通大学硕士毕业后从事嵌入式、IPTV、智能电视端及手机端浏览器的研发,曾长期专注于嵌入式浏览器内核、WebKit及Chromium的源码研究,作为技术带头人主持相关开发工作。此外在数学建模、图像视频处理、机器学习、Web与移动端开发等领域亦有相关经验。现创业,为联众律商技术合伙人、CTO。
周金利
现就职于百度移动浏览器业务部,毕业于北京大学软件学院,硕士学位。毕业后从事Android源码底层库的研发工作,对Android系统多媒体框架有过深度开发经验。2012年开始从事WebKit开发工作,2013年开始Chromium内核研发工作,对Android平台Webkit内核及Chromium内核硬件渲染的实现原理有过深度剖析。
黎欢
百度移动浏览器业务部资深内核工程师,全程参与百度手机浏览器T5、T7内核项目,主要负责HTML5功能实现、内核性能优化、提升内核稳定性及内核升级等工作。大学毕业后主要从事手机应用开发,对Android系统有过深度开发经验。2010年至今专注于WebKit及Chromium的源码研究,对Layout、CSS、HTML解析等有过深度剖析。

书籍目录


前 言
第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

作者简介

内容简介
本书是Android经典畅销书系“深入理解Android”系列的第6部,由前百度移动移动浏览器业务部的几位专门从事Android系统和WebKit研究的资深工程师撰写。它继承了该系列图书的总体思想,以Android源代码为依托,以WebKit处理数据的流程和它的功能模块依据,对WebKit的工作机制和实现原理进行了深度的剖析,应该是目前对Android系统下WebKit讲解最透彻的著作。当然,它对所有研究浏览器和WebKit内核的工程师们有同样的帮助。
全书共11章,主体部分按浏览器处理数据的流程来组织:
第1章是准备工作,介绍了Android全源码开发环境的搭建、调试工具的使用,以及WebKit源代码的结构。
第2章讲解了浏览器工作原理、WebKit的整体架构与设计,以及与它与主流浏览器引擎的比较。
第3章讲解了WebKit的WTF库,包括智能指针、Assertion、内存管理与容器、线程封装、Webkit运行时线程结构。
第4章讲解了WebKit的Loader与网络库,包括Loader的设计与实现架构、资源加载流程、MainResourceLoader和SubResourceLoader、Chrome-net网络库,以及Web Cache。
第5章讲解了网页解析,包括HTML语法解析、网页处理一般过程、CSS样式处理、JS脚本执行等内容。
第6章讲解了排版布局,包括CSS框模型、布局计算,以及render相关的核心类。
第7章讲解了渲染和硬件加速,包括软件绘制流程、软件合成、硬件加速合成等。
第8章讲解了Android WebKit框架,包括WebKit Java层核心类与主要接口和WebKit框架实现源码,并基于WebKit的浏览器做了范例实现
第9章讲解了JavaScript扩展接口,包括V8原理及接口、WebKit JavaScript接口, 并做了HTMLElement binding实例分析和HTML5扩展分析
第10章讲解了WebKit的插件系统,包括NPAPI插件接口详解、WebKit的插件实现、Android平台插件开发等。
第11章讲解了Remote Inspector,包括Remote Inspector实现架构、Remote Inspector协议、Inspector 代码分析、BackEnd代码分析、FrontEnd代码分析等
除此之外,在对海量的Android源代码进行分析的过程中,本书尽可能地对其中的精妙之处进行了分析和解读,目的是希望帮助读者领悟其中的优秀设计思想和方法。


 深入理解Android:WebKit卷下载



发布书评

 
 


精彩短评 (总计2条)

  •     不同章节 不同作者 前后的内容有点重复
  •     没我读的前一本好
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024