关于H5游戏webview引擎的选择

近期H5游戏比较火爆,而在开发h5的app端过程中对比了好几家渠道商,发现webview多多少少存在一些问题,故发这篇文章总结一下。

 

1.系统webview,功能简单,加载较快,不支持webgl等功能

 

2.Crosswalk,支持webgl等h5功能,也支持各个平台架构。但是安装包体积庞大,会多出20-40M

 

3.腾讯tbs 支持webgl等h5功能,不支持x86架构,在x86机型上会使用自带的webview,难得的是tbs安装包只是增加几百k,但tbs的加载比较花时间,可做以下优化

 

 

 1)预加载tbs,在启动程序时启动预加载,收到回调即加载完毕,这一步的作用是提前加载tbs,在需要的时候可以直接使用,以及判断tbs是否加载完毕。

 

//初始化X5

QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {


    @Override

    public void onViewInitFinished(boolean arg0) {

        // TODO Auto-generated method stub

        // x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。

        isX5Finish = true;

        isX5Loaded = arg0;

    }


    @Override


    public void onCoreInitFinished() {

        // TODO Auto-generated method stub

    }

};

QbSdk.initX5Environment(this, cb);

 

2)虽然开了预加载后面加载快了。但是程序第一次启动还是会比较慢,这是因为第一次启动时候需要初始化x5数据。可以使用腾讯提供的优化策略:多进程优化方案

 

a) 设置开启优化方案

 


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

HashMap map = new HashMap();

map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);

QbSdk.initTbsSettings(map);

 

 

b) 增加Service声明    





   

 

具体地址:http://x5.tencent.com/tbs/technical.html#/detail/sdk/1/a59880aa-06a6-4eca-aad0-836778652f895yyi

 

3)最终不管如何优化,x5的加载都是需要时间的,非常不建议闪屏后的第一个页面layout中使用x5控件

你可能感兴趣的:(安卓采坑填坑实录)