标签:系统 rom 功能 操作 今天 建议 打包 兼容 重要
转:https://zhuanlan.zhihu.com/p/29101613?utm_medium=social&utm_source=qq
大家好,我又来了。这篇是21天自制原子弹的姐妹篇。
开个玩笑……从这篇开始, 我们来点干货,如何从blink打造一个可以实用的浏览器组件。
chromium从零几年搞到现在,已经完全变成一个无所不包的庞然大物。
如果你只是想要一个能浏览网页的组件,方便嵌入到自己的程序里,或者想用网页来做界面--例如QQ音乐,网易云音乐那样,
那么chromium的那堆多进程、mojo通信、Chrome Apps 框架、Aura Shell、增量升级系统、Chrome Extensions 、headless模式、P2P 通信库,native_client、pdf、ppapi、沙盒机制等等一堆乱七八糟你听都没听过的东西都不会需要。
然而只要用了chromium的内核(例如cef,elecTron,nwjs之类),这堆东西除了占用系统资源外,你还不得不都打包带上。
这时候你就会有个强烈的想法,我不需要这堆乱七八糟的功能,只要能浏览大部分网页的排版渲染组件可以么。
答案是肯定的。
webkit内核就是为此而生。但这里有个问题,chromium虽然当年是使用webkit内核,但自从和苹果分道扬镳后,把webkit改名成blink不说,代码和结构完全是面目全非,而且最重要的是blink已经不是像webkit那样是一个独立的组件了,而是chromium那堆几百个第三方库里一个小小的组件,所有外部设施都依赖于chromium的其他组件了。
我们来看看blink目前需要依赖哪些组件:
那我们如何在尽量少的使用chromium代码基础上,实现上诉一堆功能和组件呢?
这是目前我的解决方案:
说到这里,大家肯定有个疑问:既然这么多都用webkit,那为啥我们直接拿webkit过来不就行了。
其实是可以的。webkit发展到今天,已经完全和chromium分开发展了(当年有一阵子谷歌的人也一直在给webkit提代码,后面苹果把他们都踢走了)。而且webkit就是个完整内核,你用来做轻量级组件正合适。但我有几个原因还是放弃了:
既然放弃了webkit,从chomium开始撸,那必然会遇到吨的伤害。欲知后事如何,且听下回分解
标签:系统 rom 功能 操作 今天 建议 打包 兼容 重要
原文地址:http://www.cnblogs.com/h2zZhou/p/7487995.html