前言
在内容开始之前需要先提一点,腾讯TBS离线集成X5内核功能在前几年的版本中是不支持的,只有在早期版本和今年推出的新版本中才支持。至于取消原因这里就不做过多猜测。
对于想要知道如何获取X5内核以及离线静态集成的看官可以继续往下看,觉得有帮助可以点个赞支持一下哟,反之可以去我主页踩踩~
腾讯浏览器TBS
腾讯浏览器服务是依托于腾讯X5内核提供的一套优化APP中Webview使用的一整套解决方案。它很好的扩展了原生Webview的相关功能支持,目前在Android开发中受众较大。
选择腾讯TBS的原因
这里简单总结一下个人认为选择TBS的原因有以下几个,看看你是不是也一样的吧~
- 需要很好的与硬件相关功能进行交互,如摄像头、音视频、webrtc等相关功能
- office相关交互,腾讯TBS能够较好的支持office预览功能~
- 能够快速集成广告服务,为我们应用创收
在线集成的优势与劣势
注:由于本文介绍的是如何离线集成,所以在线集成就不做过多介绍了,如果有需要可以看看官方文档或者评论、私我均可~
优势
- 集成简单,应用安装包体积不会受到太大影响(就jar包的几百k)
劣势
- 内核体积有30-60M,在线下载受网络环境影响,且耗时
- 不支持需要进入APP就立即使用相关服务的场景
- 受网络环境及设备情况影响,存在一定的失败率
离线集成的优势与劣势
优势
- 不依赖网络环境下载内核文件
- 安装速度较快
- 支持需要进入APP立即使用相关服务的场景
- 只要设备和内核版本匹配,几乎不存在失败的情况
劣势
- 会增加APP的安装包体积(如果不想增加,同时又想把下载的情况变成可控的,可以考虑把内核文件放到自己的服务器上,控制下载过程)
- 需要将设备ABI型号和内核进行匹配(如果不想麻烦以及配置多份内核文件,可以考虑只使用v7a版本的内核)
离线集成三步走
(废话了这么多,接下来进入本文的正题吧,再废话我担心各位看官会忍不住动手了)
第一步 获取SDK
到腾讯浏览器服务官网下载最新版的SDK文件(x5.tencent.com/sdk.html ),正确添加到项目依赖中,保证项目能够正确使用X5的Webview去替代原生的Webview即可。
第二步 获取内核文件
这里介绍三种获取X5内核文件的方式,个人推荐第一种效率高,灵活性强:
- 通过抓取X5内核下载地址直接下载到本地(推荐)
- 通过x5调试页面的拷贝内核功能获取
- 通过集成x5内核的其他应用获取
方式一、通过X5内核下载地址直接下载(推荐)
(看到这一点我有理由相信肯定有一些人已经开始在精神上和肉体上对我进行描述了)
其实虽然官方没有公布这个地址,但是作为技术我们是可以获取到这个地址的,毕竟官方有在线下载的功能,我们就可以通过观察网络情况获取到我们想要的东西不是。好了,废话不多说,我们一起来获取内核下载地址并且获取内核文件吧~
首先,我们使用x5的Webview控件去加载腾讯TBS的调试页面(debugtbs.qq.com) ;
其次,点击页面中“安装线上内核”按钮开始下载内核文件,这时我们通过AS或者其他抓包工具(如:Fiddler、Charles、Wireshark等等工具)就可以看到内核文件的具体下载地址了;
最后,我们只需要复制这个地址即可下载到与我们当前设备匹配的内核文件了。
方式二、通过拷贝内核功能直接获取
这种方式和方式一很类似,区别在于我们不需要主动去下载。
首先,与方式一一致;
其次,点击页面中“安装线上内核”按钮开始下载并完成线上内核安装(记得重启)
最后,我们再次启动APP打开调试页面,点击页面中“拷贝内核”按钮进行内核拷贝即可;
方式三、通过其他应用获取
这种方式主要是通过其他明确集成了X5内核的应用获取内核(如腾讯旗下的各款产品微信、qq等)。获取方式是进入应用的系统目录去拷贝内核文件,常规路径是应用目录下的core_private/x5.debug.tbs文件。
需要注意的是这种方式可能会随着系统不同以及SDK版本不同有一定的变化,大家可以根据实际情况去查看。
第三步、内核安装
内核安装这里也简单分为三步:
- 重命名内核文件
- 将内核拷贝到设备中
- 利用sdk进行内核安装
重命名内核文件
我们通过上述的方式获取到的内核文件后缀名都是.tbs结尾的,这里我们需要将它改为.apk结尾,这样才能够正常使用SDK去安装内核文件。
拷贝内核到设备中
这里我们可以将内核文件拷贝到项目中,然后在项目启动过程中将内核文件拷贝到设备中当前应用可以读取的目录下存放(具体的文件操作这里就不细述,就是常规的文件操作即可)。
利用SDK安装内核
安装内核文件需要利用到SDK提供的相应方法:
installLocalTbsCore(Context var0, int var1, String var2)
, 参数一:上下文、参数二:待安装内核文件版本、参数三:待安装内核文件所在路径。
注意:由于这一步调用之后后续的相关操作均不在我们的可控范围,所以强烈建议各位在需要使用前都做好内核的状态检查。
好了,至此我的废话也就差不多了,如果觉得有帮助的可以点个赞支持一下,另外需要现有内核文件或者相关demo的,可以评论留言、私我,由于时间问题后续会陆续补充进来~