TBS X5内核SDK静态集成jar完美解决方案

引用:https://51huanqi.cn/%E8%85%BE%E8%AE%AFtbs-x5%E5%86%85%E6%A0%B8%E9%9D%99%E6%80%81%E9%9B%86%E6%88%90jar%E5%AE%8C%E7%BE%8E%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/
前言:本篇文章用于解决TBSx5静态无法成功启动的问题
关于TBS:
腾讯浏览服务是致力于优化移动端webview体验的整套解决方案。该方案由SDK、手机QQ浏览器X5内核和X5云端服务组成,解决移动端webview使用过程中出现的一切问题,优化用户的浏览体验。同时,腾讯还将持续提供后续的更新和优化,为开发者提供最新最优秀的功能和服务。

技术优势:
其中,X5内核相对于系统webview,具有下述明显优势:

速度快:相比系统webview的网页打开速度有30+%的提升;
省流量:使用云端优化技术使流量节省20+%;
更安全:安全问题可以在24小时内修复;
更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;
兼容好:无系统内核的碎片化问题,更少的兼容性问题;
体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;
功能全:在Html5、ES6上有更完整支持;
更强大:集成强大的视频播放器,支持视频格式远多于系统webview;
视频和文件格式的支持x5内核多于系统内核
防劫持是x5内核的一大亮点
其中,X5云端服务包括云加速、云安全、云转换三大功能。云加速是通过首屏加速、智能路由、图片压缩等技术保障网页浏览的快、省、悦;云安全是通过代理加密、URL安全检测、JS黑名单管理、负载监控等防范网页被劫持插入广告、保障网页浏览的安全稳定;云转换是使用URL聚合+XPATH的解决方案,解决移动阅读难题

支持CPU架构:
CPU架构:armeabi、armeabi-v7a、arm64-v8a

注:使用了x5内核后用虚拟机是测试不了的,因为虚拟机是x86架构,所以在app开发的时候建议用手机调试,手机CPU如骁龙处理器,联发科,麒麟系列等等符合以上三个架构都行

静态集成的选择
为什么选择使用静态集成,因为动态集成会导致用户使用效果非常不佳,记住,是非常不佳,在使用最新的SDK时X5内核并不能成功实现动态集成的加载,会出现报错的情况,就算是官方的demo都运行报错,下面是测试中使用的SDK
在这里插入图片描述

x5内核动态集成运行报错其中部分原因可能是腾讯官方没有及时更新文档,导致很多新的开发者来使用X5内核时出现各种报错问题。

现在X5内核SDK存在动态集成问题,那么动态集成问题也有一种解决方式,那就是先在软件第一次运行时让应用进入http://debugtbs.qq.com地址进行线上安装,下载后重启应用即可安装成功,上图上图:

在这里插入图片描述
在这里插入图片描述

但是这样的缺点也是直接显现的,我们总不能让客户去手动点击线上安装,这样是肯定影响用户体验的,所以我们放弃这种动态集成方式,我们选择静态。

静态集成jar导入

那么如何静态,要达成静态集成,我们就需要静态集成需要的jar与so文件,然后让jar包与so文件打入app中,让app运行时就自带x5内核,就不需要用户再从网络上下载了

那么如何让X5内核实现静态集成,这里我们需要能驱动静态集成的SDK,这里我们提供一个下载地址,最后一个能静态集成的SDK:

http://soft.tbs.imtt.qq.com/17421/tbs_res_imtt_tbs_release_integrateWithX5core_43500SDK_43656Core.zip

下载后我们只需要里面的tbs_sdk_thirdapp_v3.5.0.1063_43500_staticwithdownload_withoutGame_obfs_20171011_195714.jar包,然后将jar包替换官方的jar包就行,另一个apk不管就行,apk里面有so文件,但是那个so文件太老了,所以我们不需要,这个SDK是2017年10月11日发布的最后一个支持静态集成的jar包,所以我们选择它

温馨提示:导入jar包后记得add加载

so文件我们也需要,因为so文件相当于是x5内核的包,没有so文件就没法使用x5内核,那么如何得到这个so文件呢,下面我们开始教程:

so文件获取教程:

先写一个Webview,调试手机走一遍http://debugtbs.qq.com,并点击安装线上内核,然后我们在控制台获取tbs文件地址,,上图:

在这里插入图片描述

在这里插入图片描述

这里我们可以获取到tbs文件地址为https://tbs.imtt.qq.com/release/tbs_core_045415_20201015162751_nolog_fs_obfs_release.tbs,然后我们下载并将tbs改为zip格式解压它

我们需要两个文件夹中的东西,第一个是assets\webkit,第二个是lib\arm64-v8a,这两个文件夹分别包含了jar与so包

然后我们创建个新的文件夹,并将这两个文件夹的文件都导入新的文件夹中
**PS:**这里建议使用该文章下方的示例里的.so文件,如果按照上面的步骤西在的jar与so包会有些新增和改动,导致x5内核无法静态集成。但使用该博主提供的demo中的jar与so包则可以成功集成,亲测有效。

在这里插入图片描述

这里我们需要将所有文件都改名为libtbs类型的so文件,所以前缀后缀都需要改变,我们可以使用下面这行代码。
在这里插入图片描述

for /F %i in (‘dir /A:-D /B’) do move %i “libtbs.%i.so”
使用cmd命令执行它就行了。如图:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这样就改名完成了,然后我们将so文件导入软件中,新建个jniLibs/armeabi,如图
在这里插入图片描述

导入后就算是静态集成需要的文件都准备好了,然后写入ndk配置,这一步会在软件编译成apk时只打包除了armeabi与x86架构以外的so文件

defaultConfig {
ndk {
abiFilters “armeabi”,“x86”
}
}

这段写在build.gradle中
在这里插入图片描述

然后使用QbSdk.preinstallStaticTbs(getApplicationContext());启用X5内核,我们可以将这段方法写在继承application的java文件中,AndroidManifest.xml文件中记得启用重写application方法name,上图:

在这里插入图片描述

在这里插入图片描述

这样X5内核就可以完美运行了,其它的直接跟着官方文档走就行了

如果无法集成成功,可以尝试的方案有
1.将targetSdkVersion 设置为27
2.在标签中添加android:networkSecurityConfig="@xml/network_security_config"
或两者一起使用

<application
        android:name=".app.MyApplication"  
        android:networkSecurityConfig="@xml/network_security_config">

network_security_config放入xml文件夹下

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted = "true"/>
</network-security-config>

我这里提供一个完美看看基于x5内核开发的一个demo

焕奇资源站:点我进入

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值