webkit、cef、nwjs、electron、 miniblink浏览器内核优缺点

市面上做为嵌入的组件的可用的浏览器内核,不外乎这几个:webkit、cef、nwjs、electron。html

一、cef:优势是因为集成的chromium内核,因此对H5支持的很全,同时由于使用的人也多,各类教程、示例,资源不少。但缺点很明显,太大了。最新的cef已经夸张到了100多M,还要带一堆的文件。同时新的cef已经不支持xp了(chromium对应版本是M49)。并且因为是多进程架构,对资源的消耗也很夸张。若是只是想作个小软件,一坨文件须要带上、超大的安装包,显然不能忍受。 前端

二、nwjs,或者最近大火的electron:和cef内核相似,都是chromium内核。缺点和cef如出一辙。优势是因为可使用nodejs的资源,同时又自带了各类api的绑定,因此能够用的周边资源很是丰富;而基于js的开发方案,使得前端很容易上手。因此最近N多项目都是基于nwjs或electron来实现。例如vscode,atom等等。 java

原版webkit:如今官网还在更新windows port,但显然漫不在心,并且最新的webkit也很大了,超过20几M。最关键的是,周边资源不多,几乎没人再基于webkit来作开发。同时因为windows版的saferi已经中止开发了,因此用webkit就用不了他的dev tools了。这是个大遗憾。 node

三、WKE:这是个很老的webkit内核的裁剪版了。小是小,但bug太多了。c++

四、miniblink是什么?web

Miniblink是一个追求极致小巧的浏览器内核项目,全世界第三大流行的浏览器内核控件。windows

其基于chromium最新版内核,去除了chromium全部多余的部件,只保留最基本的排版引擎blink。api

Miniblink保持了10M左右的极简大小,是全部同类产品最小的体积,同时支持windows xp、npapi。浏览器

首先,miniblink对大小要求很是严格。原版chromium、blink里对排版渲染没啥大用的如音视频全都被砍了,只专一于网页的排版和渲染。甚至为了裁剪大小,我不惜使用vc6的crt来跑mininblink(见我上篇文章)。这个也算前无古人后无来者了。多线程

其次,miniblink紧跟最新chromium,这意味着chromium相关的资源均可以利用。在将来的规划里,我是打算把electron的接口也加上的,这样能够无缝替换electron。使用miniblink的话,开发调试时用原版electron,发布的时候再替换掉那些dll,直接能够无缝切换,很是方便。 

miniblink如何使用?

Miniblink导出了electron、WKE的接口,能够直接无缝替换现有的electron、WKE项目。

早期miniblink还导出了CEF接口,不过如今已被废弃。 

miniblink有个小demo,从demo里能够看到,brackct这个基于cef的开源编辑器,已经顺利由miniblink跑起来了。如今electron的接口已作好,vscode跑起来了。 

这个比较复杂了。主要就是把blink从chromium抽离了出来,同时补上了cc层(硬件渲染层)。如今的blink,已经不是当年的那个webkit了,渲染部分全走cc层,复杂无比。我这大半年都在重写他那个蛋疼又复杂的cc层。 

和webkit比,miniblink架构有什么优点

如今的webkit版本,已经比miniblink落后太多了。blink一直在加入各类极富创造力和想象力的功能、组件。例如,blink早就加入多线程解析html token、blink gc回收器、多线程录制回放渲染机制。这些能让blink的解析渲染速度极大提高。下一次,我会先开源出blink gc组件,这东西颇有意思,在c++里硬是搞出了一个垃圾回收机制,能让你像写java同样写c++。--------------------- 做者:jlzw2018 来源:CSDN 原文:https://blog.csdn.net/jlzw2018/article/details/84317197 版权声明:本文为博主原创文章,转载请附上博文连接!

相关文章
相关标签/搜索