美文网首页Android技巧Android技术知识Android开发经验谈
android:X5WebView首次初始化X5内核耗时,会产生

android:X5WebView首次初始化X5内核耗时,会产生

作者: 胜_弟 | 来源:发表于2018-05-22 12:44 被阅读669次

          集成腾讯的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任务,任务完成后自动结束;

    <service  android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"

    android:label="dexopt"

    android:process=":dexopt"/>

    第二种 多进程方案:仅Android 5.1+生效)

    1、// 在调用TBS初始化、创建WebView之前进行如下配置,以开启优化方案

    HashMapmap = new HashMap();

    map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER,true);

    QbSdk.initTbsSettings(map);

    2、) 

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

    HashMapmap = new HashMap();

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

    map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, false);

    QbSdk.initTbsSettings(map);

    相关文章

      网友评论

      • 我是昵称:同问楼上问题+1
        我是昵称:@胜_弟 感谢楼主分享
        胜_弟:https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/a59880aa-06a6-4eca-aad0-836778652f89
      • 皮球二二:请问你是在官方SDK的Demo上看到的吗?我好像没有找到这些配置
        willwaywang6:大神, 你是怎么找到这个链接的?我现在还没有找到.
        胜_弟:https://x5.tencent.com/tbs/technical.html#/detail/sdk/1/a59880aa-06a6-4eca-aad0-836778652f89

      本文标题:android:X5WebView首次初始化X5内核耗时,会产生

      本文链接:https://www.haomeiwen.com/subject/wjyhjftx.html