Phonegap - Cordova在Android和iOS设备上运行缓慢

8

我刚刚开始使用Zend Studio进行我的第一个PhoneGap项目。但是,当我构建和部署它之后,应用程序变得非常缓慢,在Android和iOS上都是如此。滚动很慢,如果我按下一个按钮,跳转到下一页也很慢。有没有办法提高其性能?谢谢。

5个回答

4
自从4.0.4版本以来,已知有一个“bug”,如果开启硬件加速,它实际上会减慢屏幕重绘事件。这就是为什么滚动很慢的原因。
在三星Galaxy III和IV上,画布(canvas)根本不会渲染任何东西,直到我们关闭了硬件加速。一旦关闭后,canvas绘图表现良好。
您可以使用以下代码在应用程序java文件中关闭webview的硬件加速:
super.appView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
截至4.4版本(KitKat使用Chromeview而不是webview),这个问题可能已经得到解决。

1
我不得不在我的应用程序类中添加“import android.webkit.WebView;”,但这样构建成功了,似乎快了一点。我不确定它是否完全修复了。无论如何,我同意这个问题在Android 4.4上没有发现。谢谢Peter。 - Paul
嗨,Peter,我遇到了问题。有一个页面可以通过相机和画廊添加图片。但是在插入以下代码后,我无法通过相机拍照: super.appView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null); - Linson

2

是的,您可以将fastclick.js文件添加到您的html文件中。

例如:

<script src="../fastclick.js"></script>

& 参考此文档,以改善您的PhoneGap应用程序。


1
在Android KitKat中,您可以使用DevTools来调试应用程序的性能。这是一个很好的视频,可以帮助您熟悉工具:https://developers.google.com/live/shows/840309825 您应该尝试关闭WebView上的硬件加速,但建议分别在Pre-KitKat和KitKat上进行实验。 KitKatWebView基于Chrome,因此具有非常不同的性能特征。

1

如前所述,使用FastClick来消除点击的300毫秒延迟。 你也可以使用以下代码加速页面转换: $(document).bind("mobileinit", function () { $.mobile.defaultPageTransition = 'none'; });


1
几个原因可能是根本原因。 您应该提供更多信息以帮助您进一步。
可能的快速简单解决方案。 A)禁用页面转换并检查效果。
您在页面上执行什么操作? 您是否使用其他库? 我不熟悉Zen studio,但您如何构建您的UI?
如果您在列表、按钮或链接上滚动,并且在每次触摸中页面试图更改到悬停状态但速度不足以匹配滚动速度,则滚动可能会变慢或延迟。曾经我有过这个问题,禁用了悬停状态后,滚动速度大大提高了。同时再次进行双重检查。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接