在说webkit之前,我先说一下浏览器内核的发展史以及现在的主流引擎,传送门 : http://liulanmi.com/browser。
接下来再来说一下webkit内核大概有哪几部分组成。webkit主要分为:wtf(web templete framework不要误解), webkit, webkit2, webCore, javascriptCore。顾名思义(说的很简陋,如有错漏,万望指出):
wtf封装的是一些基础类库,比如STL实现,字符串还有文件处理的封装这些。赶脚相当于一个简化版的boost。
webkit核心模块,渲染引擎。
webkit2核心模块,渲染引擎,主要是多进程渲染的新feature。效率还有稳定性相关。
webCore(忘了,好象是网络处理这块)
javascriptCore,js脚本引擎。
在这些模块中我们能裁剪的也就webkit2了。
具体的裁剪过程可以参照这篇文章:
http://www.cnblogs.com/lingdhox/p/3685360.html
在这里同时可以去掉qml相关的依赖,不需要的可以放心去掉相关的模块依赖,包括qtmultimedia的多媒体支持,scripts的脚本支持这些(去掉qtscript并不会导致js无法执行,js执行是有本身的javascriptCore控制)。还有一些不会用到的feature比如3D渲染的支持,特殊的CSS属性,包括Xslt的html格式描述解析,这些都可以在feature.pri中禁用掉。
完成这些之后,VS版本的和上面的博文会达到类似的效果(接近削减了60%+),mingw编译的的webkit也会在原有的体积上削减接近40%。