加载krpano生成的全景浏览页面时,系统自带的WebView性能不好。遂转向寻找一个第三方的高性能WebView库。备选包括腾讯的TBS X5内核以及Crosswalk。
第三方WebView库还有一个好处:就是屏蔽了不同系统版本以及不同厂商优化带来的兼容性问题。
TBS X5内核
TBS腾讯浏览服务
由于我测试X5内核的时候跟Crosswalk在同一个包里测试的,所以导致很长一段时间都没有成功加载X5内核。
后来在X5论坛管理员的帮助之下,得到了解决方案。原因是由于Crosswalk包里有com.chromimum的类,和X5内核里边的有交叉污染导致的。
需要在初始化的时候做如下的设置:
HashMap<String, Object> map = new HashMap<String, Object>();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_PRIVATE_CLASSLOADER, true);
QbSdk.initTbsSettings(map);
这样就可以成功加载X5内核了。渲染krpano的全景图和Crosswalk并没有多大的性能差别。
Crosswalk
下载SDK
SDK可以下载aar包,也下载zip包(zip包包括arm和arm64单独包和合集包)。
Android Platform
集成指南
Embedding the Crosswalk Project
评测结果
经肉眼测试,加载同一个krpano生成的全景页面,比系统自带WebView渲染性能高很多。
缺点
在打开abiFilter为armeabi-v7a的情况下,APK包的体积大概要增加20多M,加上混淆之类的手段可能稍微有点减小。
如果要支持64位的话,再打开armeabi-v8a的情况下,体积将会接近翻倍。
TODO 性能测试数据对比图
网友评论