转自http://www.jianshu.com/p/e75fa22c7f06
如官网上所说,我下载了一个X5完整版的SDK包,里面就一个jar文件。
第一个坑,按照官方步骤来X5启用不了。
按照官方的步骤来,发现我的应用X5启用不了内核,但是官方的demo却可以。弄了半天,发现SDK上没有.so文件。而demo上却有。于是我把整个armeabi复制到lib目录下。不过坑爹的,竟然还是不行。。。。检查了一下,发现目录放错地方了!AS上应该在java目录下新建一个jniLibs的文件夹,再把armeabi一起放进去。可以启用,如果启用不了,请杀掉整个应用,重新开启。
判断是否启用X5可以使用如下代码:
if(mWvMain.getX5WebViewExtension()!=null){
textView.setText("x5 core");
}else{
textView.setText("sys core");
}
第二个坑,有些手机可以启用,有些手机不可以启用。
启用之后,我们想看看X5的速度是不是更快一些,让公司的妹纸使用测试机去测试,发现竟然没启用X5内核,按照文档,测试机上有安装手机QQ既可直接启用X5。现在是没启用!尼玛,不会让用户安装demo吧。点开手机空间也没反应啊。接上AS,查看日志,提示
Failed to chmod(/data/data/com.tencent.mobileqq/app_tbs)
竟然没权限?难道这个手机没权限?
然后我就把手机微信全卸了,重新安了我们自己的应用,发现,又可以启用!难道跟QQ有关?经过一番搜索,发现一条线索:“手机QQ并不包含X5内核,需要手机点开某个网页,内核才会去下载”。
经过一系列测试,发现测试机的QQ没有使用过网页,导致没有下载X5内核,而第三方应用因为扫描到手机QQ,所以去寻找共享手QX5内核,而未独立下载。所以有上面那个错误。然后启用X5失败。
结论:
- 如果手机上未安装微信,手Q或者QQ浏览器。第三方接入X5应用会自己去下载X5内核,并在应用重启后启用。
- 如果手机上安装了手Q或者微信或者浏览器。则会去寻找共享的X5内核,而不会自己下载新X5内核。
- 如果手Q或者微信没打开过网页,则内核还是不会启用。需要手动点开网页先。
- 如果你应用依赖的是手Q的内核,在手Q被卸载掉之后,应用会去寻找其他共享X5内核。走第2步
- sd卡下有个TBS的文件夹,有一些东西。
11月28日更新
有人想问一下X5的效果。
笔主是有做过简单测试的,以下测试不能概括全部,并不能告诉你所有的情况,我只是按照我这里的测试,给出我自己的测试结果,仅供参考。
测试方法:集成x5,项目内,配置一个切换内核按钮,进行点击,记录Activity onCreat------pagefinsh的各时间差,多次重复并且计算出平均值。(测试是X5有集成,按照我上面写的那个方法会显示X5内核,并且,在Application已进行初始化。)
测试环境:使用华为I7,系统版本号为EMUI4.0,使用的网络是较为稳定的4G网络。使用的X5内核是2016年11月24日下的:tbs_sdk_thirdapp_v2.5.0.1031_36880_sharewithdownload .so文件是demo附带的
测试步骤:点击某个链接,加载完成退出,切换内核,再点击飞享套餐,加载完成退出,切换内核。。。。。。
测试结果:测试20多次
测试总结:
- 一个链接的第一次的加载webview会比x5速度快一点。
- 如果重复点击一个链接,来回切换,只要次数足够多,X5速度会比webview快。
- 如果点击不同链接,并且次数不是很多,webview会比x5速度快。
是否使用X5总结:
X5优点:
- 如官方视频展示,X5的视频会比chrome流畅。
- 如官方所说,稳定性可能更稳一点。
- 如上测试结果,如果一个链接点击的次数足够多,那么速度会快一点。
X5缺点:
- 如上,我自己手机的测试,以及公司其他手机的测试,速度都会慢一点。
- 虽然现在微信QQ的覆盖率很广,但是,启用X5确实门槛较高。有时候启用不了就尴尬了。
- 知乎上2015年的回答说不支持flex布局,可能需要自己适配,具体请咨询前端,参考:https://www.zhihu.com/question/30465777
- 如果你的webview里面有嵌入第三方lib包,并且第三方lib包需要你传入webview对象。
webview优点:
Google Android 还将webview做为一个能动态更新的app,能不更新Android版本情况下,更新WebView内核。
速度快(可能基于第一点所说的背后N多工程师,以及自动更新吧)
参考:http://blog.csdn.net/typename/article/details/40425275
系统内核缺点:
- 各个手机有可能自定定制webview,导致某些坑吧。
以上,仅供参考,请自行测试。