初使用tbs的x5内核所遇到的坑,初学者如何第一次跑起x5内核

这段废话居多,可以直接从第二段开始看,之所以想换掉原生的安卓webview谷歌内核,改用可能会不稳定一些的x5内核,是因为要安装app的机器性能不足,用了同是原生内核的闪电浏览器仍然卡顿,我想自己肯定比不了开发闪电的大神,预感原生内核已经到了瓶颈,再优化也八成是徒劳,所以换内核可能是优化的唯一途径,听说x5虽然不稳定一些,但是优化更好,所以也是抱着试试看的心态尝试了一下,用一个页面测试之后,发现效果比原生内核要好(至少从流畅度上来说),经过几天努力终于完成了app的webview内核改造,虽然最终还是弃用了x5,但还是想写一篇文章来记录一下我这个初级使用者在让x5内核跑起来的过程中遇到的一些坑

替换内核我参考的是这篇文章,比较傻瓜式的教程,没有多余的步骤,比较适合第一次接触x5的安卓开发人员,在这里也对文章作者表示感谢
https://blog.csdn.net/ruiruiddd/article/details/107062671

刚开始做简单app改造的时候其实很顺利,一下子内核就跑起来了,页面的运行效果也很好,让我一度以为事情可以这么简单地结束,让本来不报太大希望的我瞬间提起了干劲

谁知道到复杂app改造的时候,内核就是死活跑不起来,我开始看后台的报错的信息(这里有我的锅,因为其他信息太多了,所以我选择就看警告和报错的信息,其实更应该全部信息都看,所以给我的启示就是以后写代码后台的打印语句用完了就及时注释掉,不然越积越多,代码一多后台就完全不能看了),我比对了启动x5成功和失败的后台报错信息,找了其中失败时才有的报错,去网上查信息,发现x5的参考文献真的少,这几个报错的信息就更少了

没有办法,我把两个app的配置尽量调成一致,把复杂app的不必要的功能都一点点注释掉,尽量就让其做一个工作,进来加载一个网页,这个工作其实非常麻烦,毕竟app已经很复杂,想调成完全一样根本不可能,我也不知道是不是哪个没改的不起眼的语句导致了x5的加载失败,那一天是一点结果都没有,本来只是想试试,谁知道这么麻烦,如果当初知道这么麻烦,我一定不会去换,毕竟x5的副作用可能会非常大,稳定性和流畅度的取舍,确实也说不上谁好谁坏

谁知道就在我要放弃的时候,第二天app奇迹般地成功加载了内核,当时我也没多管,把剩下的改造进行完,当然中间也有一点小插曲,初学者使用x5时要注意,改造时,很多类名前要加上com.tencent.smtt.sdk,比如 webView.setWebViewClient(new com.tencent.smtt.sdk.WebViewClient() {…},虽然是我犯的很白痴的问题,但是初学者可能就是会因为这个卡住,因为很多教程直接在上面import了,下面就没加com.tencent.smtt.sdk,初学者看教程没注意import部分,如果自己没import,也没在类名前加com.tencent.smtt.sdk,可能就会一时摸不着头脑,为什么使用setWebViewClient和setWebChromeClient进行配置时会报错

还有就是打开摄像头等硬件时需要询问的问题,原生已经做到不要询问直接打开了,但是X5好像得用其他的方式,目前有看到一篇文章介绍到x5的setWebChromeClientExtension配置方式,网上X5的资料确实太少了,这篇文章也是机缘巧合才搜到的,貌似setWebChromeClientExtension的配置方式内容比较丰富,我还没有深入探索,应该很值得深究,很多问题可能都能在这个配置里得到解决,详见文章
https://blog.csdn.net/qq_36818970/article/details/102697286

这篇文章最后也成了解决问题的关键,因为文章提供了一条解决x5问题的新途径,向官方提交错误详情,申请帮助,这点后面再说

本以为事情就这样结束了,没想到换了一台机器又出了问题,当时非常的惊讶,因为两台机器基本就是一样,除了分辨率,剩下的主要配置都是一样的,开始以为真的是分辨率的问题,就用成功启动x5内核的机器的刷机包刷了失败的机器,没有成功,后来把两台机器的设置里的配置调成一样还是不行,最后都怀疑到是不是安卓补丁程序版本差了两年的原因

后来在继续"乱搞"之前,我想到了前面提到的文章里写的向官方寻求帮助的方式,于是我去官网找到了向官方反馈的链接
https://x5.tencent.com/
在这里插入图片描述
在这里插入图片描述
然后按提示填写完表格就好,注意不要乱点击下图的链接,因为跳回来你会发现之前填写的内容不会保存,全部白填了
在这里插入图片描述
但是要说的是反馈并不是重点,因为我千辛万苦填完后发现根本提交不了,非常坑,而重点是下图中的网址
在这里插入图片描述
用x5改造完的webview加载
http://debugtbs.qq.com
这个网址,会打开x5的调试工具
注意无论内核改造后是否能成功启动内核,都必须要改造完再加载这个网址,原生的webview打开不了x5的调试工具,只会跳转到官网,改造就根据上面提到的文章进行傻瓜式改造
https://blog.csdn.net/ruiruiddd/article/details/107062671
调试工具详见下图
在这里插入图片描述
因为官网反馈要提交 X5内核版本和X5sdk版本,所以我就用调试工具查了两台机器的内核版本和sdk版本信息
查询方式如下图
在这里插入图片描述

这一查就发现了问题所在,成功的机器有内核版本,而失败的机器查不到内核版本,看来就是失败的机器里不存在x5内核导致的x5内核加载失败,于是点击了下图所示的图标,功能名称怎么看都像是能解决内核缺失问题的样子,最后等待下载完内核,问题也终于解决了,内核成功启动
在这里插入图片描述
当然至今为止我也没有完全弄清楚为什么一台机器突然可以加载内核了,而另一台机器却不行,我上网查了些x5内核的资料,其中有篇文章谈到x5内核使用必须联网,我想到成功的那台机器最开始也是不行,后来莫名其妙放了一个晚上就行了,而且我想到两台机器还有一点不同,就是成功的机器只能连wifi,而失败的机器是可以连接wifi和网线的,连网线时是连不了外网的(但其实之后尝试只连wifi还是不行),最后我又想到当时用调试工具下载内核并不是一下子就下载完的,下了有大概十几秒,这样的话后来只连wifi还是不行的情况就有了一种解释,就是当时看内核启动失败我就直接关闭了app,而我现在怀疑x5内核改造完 会在app启动后在连接网络的机器中自动下载内核,而下载内核需要一定时间,我马上关闭了启动内核失败的app导致内核还没下载完就被我中断了,当然这些都只是我的猜测
如果我的猜测没错的话,在改造x5都执行了正确的操作的情况下,如果还是启动内核失败,不妨在确保机器连网的情况下让启动内核失败的app运行几分钟,或许再次启动app或者重启后就能成功加载x5内核了(没试验过,纯属猜测)
(现在想想如上文所述 之前简单app能启动时复杂app仍旧启动内核失败,按猜测简单app能启动时内核应该已经下载好,复杂app此时应该可以启动,但事实并非如此,看来我的猜测多半有错)

当然按照上面用x5调试工具手动下载内核的方式就八成可以解决问题了,就是麻烦一些,至此,新手应该也可以成功跑起x5内核了

我觉得从无到有是做任何事情很关键,且最枯燥艰难的一步,所以写下这我程序员生涯的第一篇长文,以作记录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值