腾讯浏览服务X5内核集成
导读
1、什么是X5内核?
2、需求场景
3、开始搬砖
4、优化
5、集成后的问题
6、补充
一、什么是X5内核?
用官方文档的话说,就是解决系统webview兼容性差、加载速度慢、功能缺陷等问题,腾讯QQ浏览器大神们产出的一个WebView可以替换原生WebView。前面不重要,关键是开源的,还能解决我们开发中的一些问题和需求,举个例子:QQ浏览器独立小窗播放视频的功能,还有WebView播放原生H5Video难以很好解决的全屏播放问题。官方文档入口http://x5.tencent.com/doc?id=1004
二、需求场景
- 为什么不用android自带webview
1)Android各大厂商都有自己定制的ROM,导致WebView的兼容性和性能更差。
2)Android中的WebView组件,内存泄漏的问题一直没有非常有效的解决方案,让程序猿们痛不欲生。
3)在4.4以前的版本是WebKit的内核,4.4以后才换成chromium的内核,同时鉴于Google版本帝的风格,因此也导致各个版本之间的运行效率参差不齐。而且即使是chromium内核的版本,也因为要考虑兼容以前的版本,而变得不是那么美好。
为了解决上述问题,让用户有更好的体验,决定度娘、Google寻找第三方webview组件。经过一番翻查,比较流行的有Crosswalk、TBS服务。
Crosswalk:据说各种流畅、强大,且Cordova在新的版本当中也将默认支持Crosswalk。集成后APP体积会增多20多M(太大了)。具体的介绍可以参考:如何轻松搞定Crosswalk之嵌入模式
TBS服务:由腾讯QQ浏览器团队出品。支持“共享X5内核模式”和“独立下载X5内核模式”。配置和谷歌的Webview差不多,Webview有的方法TBS也都有,jar包不到300KB。具体可参考 TBS腾讯浏览服务
在结合我的实际需求,综合比较了上述两套解决方案之后,最终我还是选择了TBS服务,一是因为我不希望最终的APP体积突然增多了20多M(Crosswalk需要整体打包进APP),另一方面是小马哥的微信、手机QQ等APP在国内的装机量实在是太高了,而且能够支持以共享X5内核的方式,在自己的APP里面直接调用微信或手机QQ的浏览服务。
- TBS(腾讯浏览服务)的特点
https://x5.tencent.com/tbs/product/safety.html
1) 速度快:相比系统webview的网页打开速度有30+%的提升;
2) 省流量:使用云端优化技术使流量节省20+%;
3) 更安全:安全问题可以在24小时内修复;
4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;
5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;
6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;