web-dev-qa-db-fra.com

L'application Cordova Webview est vraiment plus lente que dans le navigateur Android du même téléphone

J'ai construit une application Android avec ionicframework et cordova. 

Mais lorsque j'essaie de faire tourner mon Samsung Galaxy S4, l'application est vraiment plus lente que le même code dans les navigateurs Web de mon téléphone.

Comment puis-je m'attendre à avoir les mêmes perfs?

J'ai essayé :

Android:hardwareAccelerated="true"

this.appView.getSettings().setRenderPriority(RenderPriority.HIGH);
this.appView.getSettings().setPluginState(Android.webkit.WebSettings.PluginState.ON_DEMAND);

<uses-sdk Android:minSdkVersion="14" Android:targetSdkVersion="19" />

Avec la dernière version 3.6 cordova

Comment puis-je avoir les mêmes performances que celles que je vois sur le navigateur du téléphone (avec une méta-application compatible, par exemple)?

15
Cédric

C'est difficile à dire car vous n'avez pas fourni de code ou d'échantillon.
Si vous n'utilisez pas le dernier Android 4.4 KitKat , il y a de grandes chances que vous utilisiez un très ancien WebView

Les anciennes versions des appareils Android (4.0-4.3) utilisent le navigateur Par défaut d’Android, qui offre des performances et un respect des normes nettement inférieurs à ceux de Chrome moderne. L'utilisation de Crosswalk vous donne une version de Spécifique et plus performante à utiliser sur tous les appareils Android, Afin de réduire les fluctuations et la fragmentation entre les appareils.

Cet article approfondit le problème et mérite d'être lu.

Si vous souhaitez obtenir les mêmes performances que votre navigateur Web, vous pouvez remplacer votre environnement d'exécution Web à l'aide de Crosswalk .

Passage pour piétons peut être facilement intégré à Cordova .

Avec le cadre ionique, vous pouvez simplement :

ionic browser add crosswalk

Si vous souhaitez spécifier une version différente de Crosswalk, exécutez ionic browser list pour voir quels navigateurs sont disponibles et quelles versions. Puis lancez:

ionic browser add [email protected]

Nick Raboy a écrit un article intéressant qui vous guidera à travers toutes les étapes nécessaires à l'intégration de Crosswalk avec Cordova + Ionic Framework .

Très utile est la vidéo avec explique tout d'une manière simple.

Crosswalk peut également être utilisé en Mode partagé :

Le "mode partagé" permet à plusieurs applications Crosswalk de partager un Runwalk runtime. Si le moteur d'exécution n'est pas déjà installé sur le périphérique , Il sera téléchargé à partir du Google Play Store ou de À partir de l'emplacement de téléchargement spécifié par le développeur. Lorsque vous utilisez cette fonction , La bibliothèque Crosswalk n'est pas incluse dans le package De l'application, ce qui la rend considérablement plus petite.

Produire une taille de fichier APK significativement plus petite. 

Il n'est pas encore intégré dans le cadre ionique et il n'y a pas de feuille de route pour inclure cette fonctionnalité .

18
LeftyX

Sur un 1 + 1, j'obtiens les mêmes performances via la diaphonie que via la visualisation Web native. Malheureusement, ces deux options ne sont pas aussi réactives que lorsque la même application est testée sur un iPhone 5 "vénérable". Donc, utiliser simplement la diaphonie pourrait ne pas suffire, mais vous pourriez avoir de la chance :)

1
psimons