深入理解Android:WebKit卷
  • 深入理解Android:WebKit卷
  • 深入理解Android:WebKit卷
  • 深入理解Android:WebKit卷

深入理解Android:WebKit卷

by 京东图书  |  由 京东图书  亚米商城卖家

积分原则不参加任何折扣活动以及亚米会员积分制度。

正品保障所售商品均从正规销售资格认证的供应商,品牌分支机构,驻美国分公司等正规渠道采购,并签订正品保证协议。

  销售和配送
$19.20 送积分 : 0
已售完
 收藏商品

送至: 91789 暂时缺货

提醒我

想要第一时间知道到货?

品牌 : 京东图书

品牌属地 : 中国

我要搜:

可送加拿大 

第三方商家

京东图书进入店铺

配送信息

USPS International $11.99(订单满$49包邮)
USPS Canada $11.99(订单满$49包邮)
1. $49以上的订单,提供美国本土平寄免邮费的服务。(只限美国本土48州,不包含夏威夷、阿拉斯加、关岛、波多黎各等地区)。 2. $49以下美国本土USPS平寄, 我们将收取$11.99运费。 3. 通过中国EMS直邮转USPS,配送时间预计为6-13天。

退换政策

因商品破损或者质量问题可申请无条件退款,请在收到包裹3个工作日内联系客服。若因个人原因申请退款,请在3个工作日内联系客服,邮费需顾客承担。图书类商品不支持换货,请见谅!

你可能感兴趣的商品

商品详情

品牌 : 京东图书 出版时间 : 2016-03-01 品牌属地 : 中国 出版社 : 机械工业出版社 ISBN : 9787111529217 版次 : 1 印刷时间 : 2016-03-01 包装 : 平装 著者 : 孟德国,王耀龙,周金利,黎欢 用纸 : 胶版纸
编辑推荐

经典畅销书系“深入理解Android”系列专题卷第3部,前百度移动浏览器业务部资深工程师撰写(2)依托Android源代码,根据WebKit处理数据的流程和它的功能模块,对WebKit的工作机制和实现原理进行了深度的剖析。

内容简介

本书是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.1Android全源码开发环境 1
1.1.1PC配置建议 1
1.1.2Ubuntu系统安装 2
1.1.3Ubuntu下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.2Android常用工具使用及相关技巧说明 6
1.2.1启动Android模拟器 10
1.2.2Android调试工具adb的使用方法 10
1.3WebKit源代码目录结构 13
1.4WebKit代码调试 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.3WebKit架构概览 29
2.3.1整体组成架构 30
2.3.2核心工作流程 34
2.3.3代码设计风格 36
2.4本章小结 38
第3章WTF的实现及使用 39
3.1WTF库概述 39
3.2智能指针 40
3.2.1OwnPtr的实现及使用 41
3.2.2RefPtr的实现及使用 44
3.2.3线程安全性 45
3.3Assert与crash dump 46
3.3.1Assert的实现及使用 46
3.3.2crash dump的实现及使用 47
3.4内存管理与容器 50
3.4.1FastAllocator的实现及使用 50
3.4.2容器类概述 51
3.5原子操作 57
3.6WebKit运行时线程结构 57
3.6.1MessageQueue实现分析 57
3.6.2Task传递 59
3.6.3MainThread运行原理 60
3.7本章小结 61
第4章Loader与网络库 62
4.1Loader概述 63
4.2Loader的设计与实现架构 63
4.2.1Loader模块的设计 63
4.2.2Loader中的类结构及作用 65
4.3MainResourceLoader资源加载流程 67
4.3.1主资源 67
4.3.2主资源加载示例 67
4.4SubResourceLoader资源加载流程 73
4.4.1派生资源 73
4.4.2派生资源加载示例 73
4.5WebKit网络库chrome-net介绍 80
4.5.1chrome-net实现结构 80
4.5.2chrome-net与WebKit的接口 81
4.6WebKit中的 Cache 81
4.6.1Memory Cache内存缓存 82
4.6.2Page Cache页面缓存 84
4.6.3Disk Cache磁盘缓存 86
4.7本章小结 87
第5章网页解析 88
5.1WebKit网页解析概述 88
5.2DOM模型简介 89
5.3HTML解析过程 90
5.3.1DOM树的构建 90
5.3.2Render树的构建 94
5.3.3RenderLayer树的构建 96
5.4CSS样式表处理 97
5.4.1CSS文档结构 97
5.4.2CSS解析过程 99
5.4.3CSS规则匹配 100
5.5JavaScript脚本执行 101
5.6本章小结 103
第6章排版布局 104
6.1CSS盒模型 104
6.2定位与包含块 106
6.3Render类的核心对象 111
6.4Render树创建流程代码分析 121
6.5Layout流程代码分析 123
6.5.1计算大小 123
6.5.2确定位置 127
6.5.3简单例子 130
6.6绘制流程分析 131
6.7本章小结 136
第7章渲染与硬件加速 137
7.1Android SurfaceFlinger系统介绍 137
7.2WebKit 的三棵树 138
7.3Android WebKit渲染过程 139
7.3.1Android WebKit记录网页绘制命令过程分析 140
7.3.2Android WebKit软件渲染流程分析 145
7.3.3Android WebKit硬件渲染流程分析 147
7.4软件渲染与硬件渲染的优缺点 156
7.5本章小结 156
第8章Android WebKit框架 157
8.1Android系统中的WebKit框架介绍 157
8.1.1Android Framework介绍 158
8.1.2Java Native Interface简介 160
8.1.3Android WebKit相关API简介 161
8.2Android 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.2Android系统浏览器实现解析 170
8.3.3Android系统WebKit内核定制开发 174
8.4本章小结 175
第9章JavaScript扩展接口 176
9.1V8原理及接口 176
9.1.1V8设计元素 176
9.1.2V8运行实例分析 181
9.1.3V8 接口及使用 183
9.2WebKit JavaScript接口 191
9.2.1V8 binding作用及结构 191
9.2.2WebKit接口扩展 191
9.3HTML 5扩展实例 196
9.3.1WebSocket概述 196
9.3.2WebSocket实现分析 198
9.4本章小结 200
第10章WebKit的插件系统 201
10.1NPAPI插件概述 202
10.1.1浏览器插件功能作用 202
10.1.2NPAPI插件规范 202
10.2WebKit的插件系统 204
10.2.1WebKit插件基础组件 205
10.2.2插件加载流程 205
10.2.3插件与脚本的交互 210
10.3Android平台插件开发 213
10.3.1新增特有接口 213
10.3.2插件APK化及参考范例 214
10.4本章小结 217
第11章浏览器调试工具 218
11.1Inspector概述 218
11.2WebKit Inspector协议 219
11.3Remote Inspector实现结构 223
11.3.1协议信道 224
11.3.2Inspector后端 225
11.3.3Inspector前端 229
11.4JavaScript调试 233
11.5本章小结 235

前言/序言

前言Preface

为什么要写这本书

在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版本的全部源代码,上传至百度网盘,链接为:https://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代码分析等。

勘误和支持

由于时间仓促加之笔者水平及视野有限,错误和疏漏是难免的,欢迎读者批评指正。

致谢

感谢机械工业出版社华章公司的策划编辑杨福川和丛书主编邓凡平先生,是你们的鼓励和帮助引导我们顺利完成全部书稿。

感谢姜影编辑,感谢你对书籍初稿的订正和修改建议。

另外,还要感谢曾经的同事马兴,感谢他对本书提出的宝贵意见。

作者团队



产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。详细条款请参阅我们的Terms of Use.

商品评价

深入理解Android:WebKit卷 还没有人发表评论,快来抢占沙发了! 写评论

浏览过的商品

联系我们

联系方式

周一至周日,美西时间: 7AM-12:30AM

美东时间: 10AM-3:30AM

help@yamibuy.com

1(800)407-9710