9

我使用 jquery mobile 和 phonegap 为 android 开发了一个应用程序。我通过 USB 将应用程序部署到我的设备上。该应用程序的性能非常糟糕,尤其是在滚动更长的列表时。

奇怪的是:如果我打开手机浏览器直接访问 index.html,整个应用程序运行流畅。同样的技术,同样的内容。我不使用 phonegap native api 或任何类似的东西。

在 android 4.0.2 上使用 phonegap 1.5.0 和 1.7.0rc1、jquery mobile 1.1.0 进行了测试。

有任何想法吗?

4

5 回答 5

11

在蜂窝 (3.0)、冰淇淋 (4.0) 和后置设备上,您可以通过在 <Application ... > 标签中添加以下内容来提高性能:

android:hardwareAccelerated="true"

您可以将 minSdk 设置为 8 (Android 2.2) 以实现兼容性,将 targetSdk 设置为 15 (Android 4.0),这将使硬件加速仅在设备上可用时工作。

我相信有了这个标志,我的应用程序的性能就等于在浏览器中运行它们,所以我猜是因为浏览器是用硬件加速编码的:)

于 2012-08-10T09:26:21.133 回答
2

我有一个类似的问题:一个页面包含更长的“中等复杂”主题 div 列表。HTC手机的浏览器显示没有问题。但在 phonegap 应用程序内渲染完全失败。我看到了一种WSOD,只有在触摸显示屏后才消失。触摸后,页面显示正确。

当我将 div 列表缩短为一两个 div 元素时,或者当我减少 div 中的子元素并减少由 css 复杂性引起的渲染工作时,问题就没有出现。

如果整个身体不可见,则白色屏幕看起来像,因为仅显示文档背景色(为此我添加了浅粉色)。所以我想,在阅读了这个帖子之后,渲染是问题所在

我尝试了在此线程中找到的各种建议,以使应用程序在没有“WSOD”的情况下运行。但没有任何效果。其中一些使应用程序的显示效果变得更糟。

终于,经过一整天的搜索,我成功了。我在我的 AndroidManifest 的标签(不是标签)中设置

<application android:hardwareAccelerated="false" ...

现在,该应用程序的运行方式与我的网络浏览器相同。似乎,如果硬件加速并不总是最好的功能......

我的版本:phonegap 3.5.0、Android 4.0.3、jQuery v2.1.0、HTC Sense 3.6

于 2014-06-28T14:42:51.983 回答
1

在这里找到了答案:http ://groups.google.com/group/phonegap/browse_thread/thread/94da1cf881abe995/6d4f7aea7aeba523?lnk=gst&q=performance

在 javascript 性能方面,本机浏览器和 webview 之间可能存在差异。

于 2012-04-29T17:08:57.960 回答
0

如果您可以确认浏览器的性能更好(在您的代码中不是次优的东西令人沮丧,但不是另一种),您可以考虑部署为 html5 离线应用程序,以便您可以在浏览器中实际运行。

于 2012-04-29T17:16:51.403 回答
0

我们在使用 jquery mobile 滚动相同数量的列表项时遇到了性能问题。性能太差了(我们甚至没有在 PhoneGap 环境中尝试过),我们使用 iScroll 库重写了应用程序......现在应用程序滚动非常流畅。

如果您处于开发初期,您可以尝试更改 UI 库。

在这种情况下,我们经常部署我们的应用程序来测试设备以及时管理性能问题......这成为了一项“政策”:)

于 2012-04-30T20:01:09.483 回答