我在Android下的PhoneGap和内置浏览器下运行相同的Web应用程序。该应用程序在内置浏览器上运行良好,但在PhoneGap下运行速度令人难以置信。甚至页面上的基本滚动也会在PhoneGap下断断续续。
一般来说,我可能做错了吗?我的印象是PhoneGap只使用与普通浏览器应用程序相同的WebKit渲染器,那么为什么同样的HTML和JavaScript在PhoneGap中运行得慢得多?
P.S。这是asked before,但由于措辞,我认为最初的问题被误解了。
答案 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版本?