在android上运行的Phonegap应用程序非常慢

时间:2014-03-18 00:35:49

标签: android jquery jquery-mobile cordova phonegap-build

我正在使用phonegap和jquery mobile为Android制作应用。当我使用phonegap构建并在我的Galaxy S3上试用它时,它非常慢并且点击会花费一秒钟来完成任何事情。我已经尝试将Android SDK版本设置为14但是没有做任何事情。这将是一个应用程序,它将从大型服务器中获取大量数据,同时加载50个项目。我大声朗读,Phonegap对于像这样的大型事情来说并不是很好,所以有什么方法可以优化Phonegap吗?或者我只需要使用其他东西,如果是这样,最好用的是什么?

2 个答案:

答案 0 :(得分:2)

对于点击问题,请结帐fastclick.jshttps://github.com/ftlabs/fastclick

大多数移动网络浏览都有300毫秒的点击延迟,等待双击放大内容。 Fastclick.js允许您绕过此。

此外,对于整体性能问题,您应该注意所使用的javascript库的数量。我已经使用了很多依赖大量外部数据的phonegap进行了大量应用,并发现减少库并使用我自己的JS为我的确切目的进行了优化,效果最好。

我使用handlebars.js进行模板化/视图显示,并始终使用for循环而不是jquery each。有些研究表明,for在加载大量数据时比each快1000倍。这是因为each递归地找到每个实例,其中for只是遍历一组数据。

答案 1 :(得分:2)

我知道这有点晚了但是这个答案将针对那些仍然面临这个问题的人,我一周前遇到了同样的问题,最后发现问题不是因为:

  • 硬件加速
  • SDK版本
  • 也不是手机硬件规格

这可能是某些情况下的原因,但是如果你使用jquery, 那么它很可能是因为当Android应用程序使用Webview时,它不能很好地处理JQuery animation,这将导致一个很大的性能问题,所以你应该做的是用CSS3动画替换JQuery动画, 为了提供更多帮助,如果你使用jquery animate()函数来制作动画,那么你可以在正常JQuery.transit之后添加JQuery library库,并使用[transit ]函数而不是[animate]函数。无需修改参数,只需替换函数名称即可。

您可以在此链接中找到该库: jquery.transit

使用该库后,你会注意到一个巨大的性能跳跃,之后一切都会顺利进行。