我刚刚开始使用 zend studio 进行我的第一个 PhoneGap 项目。但是,在我构建和部署它之后,应用程序非常慢。在安卓和iOS上都可以。滚动滞后,如果我按下按钮,转到下一页很慢。有什么方法可以提高它的性能吗?提前致谢
5 回答
从版本 4.0.4 开始,有一个已知的“错误”,如果硬件加速打开,它实际上会减慢屏幕重绘事件。这就是滚动缓慢的原因。
在三星 Galaxy III 和 IV 上,在我们关闭硬件加速之前,画布根本不会渲染任何东西。一旦我们做了画布绘图,效果就很好。
您可以使用应用程序 java 文件中的这行代码关闭 webview 的硬件加速:
super.appView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
这可能会在 4.4 中得到修复(KitKat 使用 Chromeview 而不是 webview)。
是的,您可以将fastclick.js文件添加到您的 html 文件中。
喜欢:
<script src="../fastclick.js"></script>
并参考此文档以改进您的 phonegap 应用程序。
在 Android KitKat 中,您可以使用 DevTools 来调试应用程序的性能。这是一个很好的视频来掌握这些工具:https ://developers.google.com/live/shows/840309825
您应该尝试关闭 WebView 上的硬件加速,但建议单独尝试 Pre-KitKat 和 KitKat。KitKatWebView 基于 Chrome,因此具有非常不同的性能特征。
如前所述,使用 FastClick 消除 300 毫秒的点击延迟。您还可以使用此代码来加速页面转换: $(document).bind("mobileinit", function () { $.mobile.defaultPageTransition = 'none'; });
几个原因可能是根本原因。您应该提供更多信息以进一步帮助您。
可能的快速和简单的解决方案。A)禁用页面转换并检查效果。
您在页面上执行什么样的操作?您是否使用其他库?我不熟悉 Zen Studio,但是 ypu 是如何构建你的 UI 的?
如果您在列表或按钮或链接上滚动,并且在每次触摸时页面都试图对更改为悬停状态做出反应,但滚动速度不足以匹配滚动速度,则滚动可能会很慢或滞后。一旦我遇到这个问题并禁用悬停状态,滚动速度就会大大提高。在此期间仔细检查。