为什么PhoneGap比浏览器慢?

时间:2012-08-28 20:05:40

标签: android cordova cordova-2.0.0

我在Android下的PhoneGap和内置浏览器下运行相同的Web应用程序。该应用程序在内置浏览器上运行良好,但在PhoneGap下运行速度令人难以置信。甚至页面上的基本滚动也会在PhoneGap下断断续续。

一般来说,我可能做错了吗?我的印象是PhoneGap只使用与普通浏览器应用程序相同的WebKit渲染器,那么为什么同样的HTML和JavaScript在PhoneGap中运行得慢得多?

P.S。这是asked before,但由于措辞,我认为最初的问题被误解了。

4 个答案:

答案 0 :(得分:16)

我可能无意中偶然发现了这个答案。事实证明我正在处理的应用android:targetSdkVersion中的AndroidManifest.xml设置为非常低的值(即我的目标Android版本类似于2.2)。将此值增加到14(Android 4.0)似乎大大提高了PhoneGap的性能,至少在运行ICS或Jelly Bean的较新Android设备上如此。

设置较低的targetSdkVersion似乎至少禁用了较新版Android中引入的部分性能改进。

因此,如果您希望看到PhoneGap的性能大幅提升,请确保您的targetSdkVersion与您正在测试的手机支持的最大SDK版本相匹配。

答案 1 :(得分:7)

我不知道phoneGap,但你可以试试这些:

  • 在清单
  • 中添加android:hardwareAccelerated="true"
  • 如果您使用网络视图webview.getSettings().setRenderPriority(RenderPriority.HIGH);webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

答案 2 :(得分:2)

这是违反直觉的,但实际上您可能需要关闭webview的硬件加速。从Android 4.0.4开始的硬件加速对画布和其他重绘事件没有任何作用,但实际上会删除这些事件的CPU资源。

尝试在app java文件中添加以下代码:

super.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

还在清单中设置android:hardwareAccelerated =“false”。

答案 3 :(得分:0)

我经历过同样的事情!以前我使用Android 3.x进行测试。一旦我升级到4.4.2,我的画布就慢了!看看渲染时间线,我可以看到许多光栅化调用超过100毫秒并将我的FPS降低到大约8!机器人:硬件加速="假"解决了我的问题。有没有办法设置hardwareAccelerated =" true"取决于Android版本?