Warum ist PhoneGap langsamer als Browser?
Ich bin mit der gleichen genauen web-app auf Android unter PhoneGap und unter dem eingebauten Browser. Die app läuft wunderbar auf dem built-in browser, aber ist unglaublich langsam unter PhoneGap. Auch grundlegende scrollen auf der Seite stottert unter PhoneGap.
Gibt es etwas, in der Regel, dass ich tun könnte falsch? Ich hatte den Eindruck, dass PhoneGap nur verwendet dieselbe WebKit-renderer als die normale Browser-app, also warum würden die gleichen HTML-und JavaScript ausführen viel langsamer innerhalb PhoneGap?
P. S. Dies wurde vor der Frage, aber wegen der Formulierung, ich denke, die ursprüngliche Frage wurde missverstanden.
- Gleiche Problem vor! Keine Lösung für Phonegap build?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht habe ich versehentlich stolperte über eine Antwort auf diese Frage. Stellt sich heraus, dass die apps, die ich auf Arbeit hatte
android:targetSdkVersion
imAndroidManifest.xml
set zu einem wirklich sehr niedrigen Wert (d.h. mein Ziel-Android-version war so etwas wie 2.2). Erhöhen diese zu14
(Android 4.0) scheint enorm verbessert PhoneGap-performance, zumindest auf neueren Android-Geräte mit ICS oder Jelly Bean.Einstellung einer niedrigen
targetSdkVersion
scheint zu deaktivieren, zumindest einige der performance-Verbesserungen eingeführt, die in neueren Versionen von Android.So, wenn Sie wollen, um zu sehen, einen großen performance-boost in PhoneGap, stellen Sie sicher, dass Ihre
targetSdkVersion
entspricht die max SDK-version unterstützt das Handy testen auf.Ich weiß nicht, phoneGap, aber Sie können versuchen, diese:
android:hardwareAccelerated="true"
im manifestwebview.getSettings().setRenderPriority(RenderPriority.HIGH);
undwebview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
Es ist counter-intuitive, aber Sie können tatsächlich müssen Sie zum ausschalten der hardware-Beschleunigung für deine webview. Hardware Beschleunigung von Android 4.0.4 tut nichts für Leinwand und andere redraw-events, aber tatsächlich entfernt die CPU-Ressourcen für diese Ereignisse.
Versuchen Sie diese Zeile von code in Ihrer app java-Datei:
super.setLayerType ("Ansicht".LAYER_TYPE_SOFTWARE, null);
Setzen auch android:hardwareAccelerated="false" in der manifest.
Gleiche genau das, was ich erlebte! Bisher war ich mit Android 3.x zum testen. Sobald ich ein Upgrade auf 4.4.2 meine Leinwand war tot langsam! Blick auf die Rendering-timeline konnte ich sehen, viele Rasterung fordert die übernahme 100ms und wodurch meine FPS auf etwa 8! android:hardwareAccelerated="false" gelöst meine Probleme. Gibt es eine Möglichkeit, um hardwareAccelerated="true" je nach android-version?