Android 使用腾讯TBS

本文介绍了如何在Android应用中集成腾讯浏览服务(TBS),以解决原生WebView的问题,提供更好的文件预览和视频播放体验。TBS支持Android 4.0到10.0,多种CPU架构,并提供了SDK接入、权限配置、异常处理等详细步骤。通过TBS,可以优化启动速度,支持多种视频格式和直播流播放,以及doc、pdf等多种文件的预览。

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

简介

腾讯浏览服务是优化移动端webview体验的整套解决方案,解决移动端webview使用过程中出现的问题,优化用户的浏览体验。

使用原因

  • 原生内核存在卡顿、不稳定、不安全、无法加载、兼容、各种bug等问题
  • 想要使用文件预览功能
  • 想要使用视频播放功能,TBS支持几乎所有的视频格式和HLS,RTMP/RTSP,HTTP+FLV,MMS四种直播流播放

平台适配

  • Android版本: Android 4.0-Android 10.0
  • CPU架构:armeabi、armeabi-v7a、arm64-v8a

接入

SDK接入

  1. jar包:https://x5.tencent.com/tbs/sdk.html
  2. Gradle:api ‘com.tencent.tbs.tbssdk:sdk:43903’

权限配置

<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" />

混淆配置

-dontwarn dalvik.**
-dontwarn com.tencent.smtt.**

-keep class com.tencent.smtt.** {
   
   
    *;
}

-keep class com.tencent.tbs.** {
   
   
    *;
}

异常

当发生异常时需要上报异常信息,可通过com.tencent.smtt.sdk.WebView.getCrashExtraMessage(appContext)获取异常信息

启动优化

TBS内核首次使用和加载时,ART虚拟机会将Dex文件转为Oat,该过程由系统底层触发且耗时较长,很容易引起ANR问题,解决方法是使用TBS的 ”dex2oat优化方案“。
1.设置开启优化方案

// 在调用TBS初始化、创建WebView之前进行如下配置 
HashMap map = new HashMap(); 
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true); 
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true); 
QbSdk.initTbsSettings(map);

2.增加Service声明

<!--只在TBS内核首次Dex加载时触发并执行dex2oat任务,任务完成后自动结束-->
<service 
android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
android:label="dexopt"
android:process=":dexopt" >
</service>

加载内核

在Application中加载X5内核
private void initX5(){
   
   
	HashMap map = new HashMap();
	map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);
	map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true);
	QbSdk.initTbsSettings(map);

	QbSdk.setDownloadWithoutWifi(true);
	Log.d(LOG_TAG, "开始加载内核");
	QbSdk.initX5Environment(this, new QbSdk.PreInitCallback() {
   
   
		@Override
		public void onCoreInitFinished() {
   
   

		
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值