Android WebView performance
Dans mon application, je suis le chargement d'une liste d'url externe dans webview et permettre à l'utilisateur de parcourir. Webviews sont chargés sur une vue flipper. Je trouve la performance est vraiment mauvais dans webview charger l'url. J'ai tout essayé en utilisant le cadre de la mise en page à la limitation du nombre de webviews à charger. Encore la performance n'est pas satisfaisante.
Comment puis-je optimiser la performance de webview? Cela devrait être d'un usage courant. Ai-je raté quelque chose d'évident.
Mon Webview paramètres sont -
webView.setInitialScale(WEBVIEW_SCALE);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.setWebViewClient(new MyWebViewClient());
webView.setOnTouchListener( new OnTouchListener());
Êtes-vous sûr que ce n'est pas de charger les données à partir de l'internet le problème?
Nope. Chargement des données. Mais il prend beaucoup de temps.
Le chargement de plusieurs pages à la fois coûteux - même le chargement d'une page web est une opération coûteuse. En mettant de côté tout le traitement de choses comme des images, de mise à l'échelle de la vue sur le port etc. Il y a aussi des restrictions sur les performances de nombreux simultanée des connexions socket. Enfin je suppose que si vous regardez le journal, vous verrez beaucoup de GC thrash. Il n'est pas vraiment conseillé d'avoir beaucoup de WebView est active à la fois. Avec une description quantitative de la "performance n'est pas satisfaisante" ou le combiné vous êtes en cours d'exécution sur, je ne peux que deviner qu'il n'y a pas beaucoup que vous pouvez faire pour l'améliorer.
J'ai passé une bonne quantité de temps à essayer d'optimiser le même genre d'idée, et constaté qu'il n'était pas vraiment une bonne solution. Il y a juste trop de frais généraux entre le chargement de la page et viewflipper. Dans mon cas, j'ai pu obtenir un bon rendement en chargeant chacune des pages sur une seule page, triés par CSS3 colonnes, et à l'aide de fling pour aller entre les colonnes. Il y a toujours un retard comme l'un des grands de la page sera affiché, mais il a été plusieurs fois plus rapide que le chargement de chaque page dans un viewflipper. Qui ne serait vraiment pas compliqué de travailler avec des documents html, mais... le mien a juste eu de texte et quelques images.
Nope. Chargement des données. Mais il prend beaucoup de temps.
Le chargement de plusieurs pages à la fois coûteux - même le chargement d'une page web est une opération coûteuse. En mettant de côté tout le traitement de choses comme des images, de mise à l'échelle de la vue sur le port etc. Il y a aussi des restrictions sur les performances de nombreux simultanée des connexions socket. Enfin je suppose que si vous regardez le journal, vous verrez beaucoup de GC thrash. Il n'est pas vraiment conseillé d'avoir beaucoup de WebView est active à la fois. Avec une description quantitative de la "performance n'est pas satisfaisante" ou le combiné vous êtes en cours d'exécution sur, je ne peux que deviner qu'il n'y a pas beaucoup que vous pouvez faire pour l'améliorer.
J'ai passé une bonne quantité de temps à essayer d'optimiser le même genre d'idée, et constaté qu'il n'était pas vraiment une bonne solution. Il y a juste trop de frais généraux entre le chargement de la page et viewflipper. Dans mon cas, j'ai pu obtenir un bon rendement en chargeant chacune des pages sur une seule page, triés par CSS3 colonnes, et à l'aide de fling pour aller entre les colonnes. Il y a toujours un retard comme l'un des grands de la page sera affiché, mais il a été plusieurs fois plus rapide que le chargement de chaque page dans un viewflipper. Qui ne serait vraiment pas compliqué de travailler avec des documents html, mais... le mien a juste eu de texte et quelques images.
OriginalL'auteur Usha | 2010-11-02
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
OriginalL'auteur George Maisuradze
Je pense que la suite fonctionne à son meilleur:
Android 19 a Chrome moteur de WebView. Je suppose que cela fonctionne le mieux avec l'accélération matérielle.
Pour plus d'info Android 4.4 KitKat, le navigateur et le Chrome WebView
OriginalL'auteur King of Masses
Cela a déjà été discuté ici: Améliorer la webView performance (doit être le même rendement que Navigateur Web natif)
L'air, comme si ma question peut être répondu par la WebSettings méthode
.setCacheMode(WebSettings.LOAD_NO_CACHE);
Même si, conformément à cette question, soit il ne fonctionne pas, ou seulement ignore le cache de vérifier, mais encore enregistre dans la mémoire cache. stackoverflow.com/questions/5239954/...
Je pense que ce paramètre est pour la deuxième chargement de la page. Je l'ai obtenu à partir de l'api pour setCacheMode: La façon dont le cache est utilisé est basé sur l'une des options de navigation. Pour une normale de chargement de la page, le cache est cochée et que le contenu est validé à nouveau au besoin. Lors de la navigation de retour, le contenu n'est pas restauré, au lieu de cela, le contenu est juste tiré à partir du cache. Cette fonction permet au client de remplacer ce comportement.
Ne m'aide pas .. est restée la même.
OriginalL'auteur Ashok Felix