android的webview对硬件加速的支持貌似很不理想,在开启硬件加速的情况下,css3这些需要调用硬件加速的样式会大幅拖慢html5的webapp,在htc的部分手机上还会因开启硬件加速而导致闪屏等现象。
在phonegap 3.0之前,都是用户自己来配置AndroidMainifest.xml文件,可能都没注意到这一点,在phonegap 3.0+之后,phonegap项目的创建都是通过phonegap的command line指令来创建生成的,在生成的项目中,phonegap对项目默认开启了强制硬件加速,这时,sencha touch的项目中的带动画的页面切换时会调用系统的gpu进行计算来运行动画,此时的切换动画会变得相对平滑,但是随之而来的就是让人无法忍受的延迟。
解决上述问题的一种方案就是关闭强制硬件加速,打开phonegap创建的项目中的AndroidMainfest.xml,你会发现在application跟mainfest标签上有个属性
android:hardwareAccelerated="true"
将这两个标签的的属性修改为false,或者将其去掉,
这时,系统会通过cpu来计算模拟动画,你会发现之前的延迟都消失了,
在4核以上的cpu上性能提升明显,但部分动画的切换会没有之前流畅,不是非常明显,
大家可以根据自己的实际情况来设置这一属性