【实拍正版】【极速发货】【内页几处划线】
¥ 26 4.4折 ¥ 59 九品
仅1件
作者孟德国、王耀龙、周金利、黎欢 著
出版社机械工业出版社
出版时间2016-03
版次1
装帧平装
上书时间2024-11-14
本书是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与Chromium源码研究。此外在操作系统内核(Linux kernel及各种RTOS)、SOC软硬件体系结构、无线技术(WiFi、蓝牙)、*优滤波、神经网络等相关领域亦有一定的研究。
王耀龙,
前百度资深研发工程师。2007年西安交通大学硕士毕业后从事嵌入式、IPTV、智能电视端及手机端浏览器的研发,曾长期专注于嵌入式浏览器内核、WebKit及Chromium的源码研究,作为技术带头人主持相关开发工作。此外在数学建模、图像视频处理、机器学习、Web与移动端开发等领域亦有相关经验。现创业,为联众律商技术合伙人、CTO。
周金利,
现就职于百度移动浏览器业务部,毕业于北京大学软件学院,硕士学位。毕业后从事Android源码底层库的研发工作,对Android系统多媒体框架有过深度开发经验。2012年开始从事webkit开发工作,2013年开始Chromium内核研发工作,对Android平台Webkit内核及Chroium内核硬件渲染的实现原理有过深度剖析。
黎欢,
百度移动浏览器业务部资深内核工程师,全程参与百度手机浏览器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 dump46
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中的 Cache81
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
— 没有更多了 —
以下为对购买帮助不大的评价