TBS腾讯X5内核的使用

本文介绍了解决Web页面加载缓慢的问题,通过优化WebView设置、资源本地存储等方法,并引入腾讯X5内核,显著提升了加载速度及动画流畅度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
前端组做出的Web页面动画效果很炫酷,而且单个内容挺大的,造成WebView加载过慢,老大要求想想办法解决这个问题,不能让用户等待这么久才能加载完成。

一、网上找了下,有建议使用以下的方法完成一些优化:
(1)WebView缓存

    WebSettings webSettings = webView.getSettings();
    //设置WebView缓存模式
    webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);  
    // 开启 DOM storage API 功能  
    webSettings.setDomStorageEnabled(true);
    //开启 database storage API 功能  
    webSettings.setDatabaseEnabled(true);

ps:五种缓存模式的设置setCacheMode:
LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据。
LOAD_DEFAULT: 根据cache-control决定是否从网络上取数据。
LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式。
LOAD_NO_CACHE: 不使用缓存,只从网络获取数据。

(2)资源文件本地存储
资源等文件(不需要更新)本地存储,在需要的时候直接从本地获取。哪些资源需要我们去存储在本地呢,当然是一些不会被更新的资源,例如图片文件,js文件,css文件,替换的方法也很简单,重写WebView的方法即可。

(3)减少耗时操作
准确的说,是减少同步操作的操作时间,尽量使用异步操作替代同步操作。如果服务端存在读取数据库和计算耗时的操作,尽量使用异步(ajax)进行操作,把原本的时间花在异步操作上。

(4)客户端UI优化
比如加入加载的ProgressBar,ViewPager预加载。

以上解决方案都是针对于系统的WebView做的一些处理,那么如果使用其他的内核呢?所以又去网上开始研究,最终选定了微信高度定制的腾讯的X5内核,高度的定制以及良好的优化使得其加载速度得以很好的提升,以及对视频良好的支持性能使得动画加载更加流畅。

二、使用TBS腾讯X5内核加载

首先看看官方给出的优势简介:

(1)其相对于系统webview,具有下述明显优势:

    1) 速度快:相比系统webView的网页加载速度有近30%的提升。
    2) 省流量:云端优化技术使流量节省20%
    3) 更安全:24小时安全问题解决机制
    4) 更稳定:经过亿级用户的使用考验,CRASH率0.15%
    5) 集成强大的视频播放器,支持各种视频格式直接打开
    6) 适屏排版、字体设置等浏览增强功能的提供
    7) Html5更完整支持。
    8) 无系统内核的碎片化问题,更少的兼容性问题

重要是看中第一点,速度快,这是很符合需求的设计,加载速度快才能更好地完善用户体验,其次第五点也是也是很好的功能。

(2)官方给出的达人评价,感觉还是很有说服力的

“开放共享,有效解决本地其他APP在浏览安全性和兼容性方面的缺陷。”
–洪波 著名互联网分析师

“腾讯X5的稳定性表现明显优于其他系统浏览内核。”
–石延龙 手机QQ终端开发负责人

“通过与腾讯X5形成战略合作,大幅度提升了游戏体验,增强了玩家粘性。”
–马鉴 egret负责人

原生App加入HTML5已经成为主流,能大幅缩短App版本更新周期,而TBS让这种混合App的性能得到进一步的提升。
–刘鑫 APICloud的CEO

(3)使用方式:

    1)第一步,下载SDK
    下载地址:http://x5.tencent.com/doc?id=1004
    下载完成后解压出jar包
    ![下载完成解压后的jar包](https://img-blog.youkuaiyun.com/20161031171934735)
    放入项目的libs里面
    ![放入项目的libs里面](https://img-blog.youkuaiyun.com/20161031172037338)
    集成应该就差不多了
    代码里面不能使用原生WebView,其次xml里面定义:

    <com.tencent.smtt.sdk.WebView
        android:id="@+id/tbs_test_webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="5dp"
        android:paddingRight="5dp" />


2)第二步,AndroidManifest.xml里加入权限声明:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <uses-permission android:name="android.permission.INTERNET" />

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

3)第三步,测试是否成功
    App 在启动后(例如在 Application 的 onCreate 中)立刻调用 QbSdk 的预加载接口 initX5Environment ,可参考接入示例,第    一个参数传入 context,第二个参数传入 callback,不需要 callback 的可以传入 null,initX5Environment 内部会创建一个线程向后台查询当前可用内核版本号,这个函数内是异步执行所以不会阻塞 App 主线程,这个函数内是轻量级执行所以对 App 启动性能没有影响,当 App 后续创建 webview 时就可以首次加载 x5 内核了

4)混淆时候处理
    -dontwarn com.tencent.smtt.sdk.**

5)还有一个比较强大功能
    TBS不仅提供了强大的网页浏览功能,更提供了强大的页面H5视频播放支持,播放器同时支持页面,小窗,全屏播放体验,强大的解码能力,包括mp4,rmvb,flv,avi等26种视频格式支持。TBS播放器的播放场景不仅局限于H5页面播放,也可以接入一般的视频流链接,比如本地文件,网络的视频流链接。开发者如果想播放一个视频链接,在不自己开发播放器的前提下,一般做法是将视频的播放链接放到一个Intent里面,抛给系统的播放器进行播放,那么当你集成了TBS后,你只需要通过简单的方式接入视频播放调用接口,这样你不需要写任何一句关于播放器的代码,就可以享受一个本地播放器体验,播放视频再不需要Intent来跨App、跨进程的调用了。

最后,使用后确实比原先加载速度有所提升,而且动画流畅度有所提升,建议在允许的情况使用,效果还是不错的,有使用问题欢迎讨论。
个人邮箱:jsmeli@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值