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