android:X5WebView 首次初始化 X5 内核耗时, 会产生卡顿现象的解决办法

集成腾讯的 X5, 一般都是在 application 中进行初始化, 不过有一个现象就是第一次启动都睡有一小会产生了 UI 卡顿, 一开始利用 IntentService 进行后台线程进行初始化, 但还是会产生卡顿现象, 不过官方在 X5 SDK 的 v3.6 版本后添加了一个多进程的 service= 设置开启优化方案.

如下做法:

第一种 多进程方案: 设置开启优化方案 // 在调用 TBS 初始化, 创建 webView 之前进行如下配置, 以开启优化方案 HashMapmap = new HashMap();map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);QbSdk.initTbsSettings(map);b)

增加 Service 声明 : 在 AndroidManifest.xml 中增加内核首次加载时优化 Service 声明; 该 Service 仅在 TBS 内核首次 Dex 加载时触发并执行 dex2oat 任务, 任务完成后自动结束;

android:label="dexopt"

android:process=":dexopt"/>

第二种 多进程方案: 仅 Android 5.1 + 生效)1,// 在调用 TBS 初始化, 创建 WebView 之前进行如下配置, 以开启优化方案

HashMapmap=newHashMap();

map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER,true);

QbSdk.initTbsSettings(map);

2,)

多线程方案策略配置 // 在调用 TBS 初始化, 创建 WebView 之前进行如下配置, 以开启优化方案HashMapmap=newHashMap();

// 配置不使用多进程策略, 即该方案仅在 Android 5.1 + 系统上生效.

map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE,false);

QbSdk.initTbsSettings(map);

来源: http://www.jianshu.com/p/b1702440aba8

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐