拜读了国内唯一将Webkit技术出品成书的朱永盛先生写的《Webkit技术内幕》的一部分内容后,记录一些学习总结。该书作者并非单纯讲解源码,而是提纲挈领,通过浅显易懂的描述将Webkit的核心部分:解析 渲染部分讲的比较透彻,并且结合对最新的google的Blink的分析,值得推荐的好书。
最近由于调查该方面的内容,参考前辈们的书籍,博客,引用了他们对Webkit框架的认识,现将一点学习记录总结
简述前言
Android使用的Webview控件原本是基于Webkit引擎,4.4版本以来,将脱离Webkit,将使用独自开发的Blink引擎。
Webview的API层基本没有变化,只是局部几个改善的方法有增加和删除。关于webkit ,Chromium Webview ,以及 Chromium 的区别整理了下面的资料。
如果对整体和一些属于不太了解,可以先参考一下这里。
Webkit、Chromium、 Chromium Webview的框架构造
Webkit构造
图1 转自Paulirish的博客
・WebCore:各个Ports的共通模块,有HTML的解析,CSS解析,DOM生成,CSSOM生成,Layout和位置设置,渲染等重要的职能。
・JSCore:Javascript引擎(Webkit默认引擎、Chromium则将其换成了「V8」引擎)
・其余的例如GPU、2D绘图、文字渲染、networkStack、WebSocket的模块(灰色部分)对于各个Ports来说可以开发独自的模块。
#Blink分离后的Webkit则将GooleV8 Javascript 引擎,JavaScriptCore以外的使用部分都 给删掉,另外还有绘图用的Skia库,以及Google编译系统的gyp也删除了。
(GOOGLE 和 APPLE这两家从此以后是路人,老死不相往来的感觉