为什么PhoneGap比浏览器慢?

我在Android下的PhoneGap和内置浏览器下运行相同的Web应用程序。 该应用程序运行良好的内置浏览器,但在PhoneGap下令人难以置信的速度慢。 即使在PhoneGap下的页面上的基本滚动口吃。

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

PS这个问题之前已经被问过了 ,但是由于措辞的原因,我认为原来的问题被误解了。

Solutions Collecting From Web of "为什么PhoneGap比浏览器慢?"

我可能无意中偶然find了答案。 事实certificate,我正在使用的应用程序有android:targetSdkVersion中的android:targetSdkVersion设置为一个非常低的值(即我的目标Android版本是2.2)。 将这个数字提高到14 (Android 4.0)似乎已经大大提高了PhoneGap的性能,至less在运行ICS或Jelly Bean的新型Android设备上。

设置一个低targetSdkVersion似乎至less会禁用Android新版本中引入的一些性能改进。

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

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

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

这是违反直觉,但您可能实际上需要closures您的web视图的硬件加速。 从Android 4.0.4开始的硬件加速对canvas和其他重绘事件没有任何影响,但实际上为这些事件移除了CPU资源。

尝试在您的应用程序Java文件中添加以下代码行:

super.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

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

同样的东西,我经历过! 以前我使用Android 3.x进行testing。 只要我升级到4.4.2我的帆布死了慢! 看着渲染时间线,我可以看到许多Rasterization调用超过100ms,并将我的FPS降低到8! android:hardwareAccelerated =“false”解决了我的问题。 有没有一种方法来设置hardwareAccelerated =“真”取决于Android版本?