Téléchargements lents sur l’émulateur Android en cours d’exécution

J’ai cherché mais je n’ai trouvé aucune question ou réponse pour ma situation particulière. J’ai une nouvelle machine rapide avec beaucoup de mémoire sous Windows 7. J’utilise les derniers SDK Eclipse et Android.

Lorsque je lance une application, l’émulateur met environ 45 secondes à démarrer (extrêmement rapide pour l’émulateur!) Depuis le lancement de l’exécution jusqu’à l’exécution de mon application.

Si je change ensuite l’application et que je la réexécute sur l’émulateur encore en fonctionnement, le temps passe à plus de 70 secondes! Contrairement à toutes les autres plaintes, dans mon cas, le redémarrage de l’émulateur est plus rapide que l’utilisation de l’instance existante. Je n’aime pas ça.

Voici les temps:

2011-09-29 13:07:13 - hello Uploading hello.apk onto device 'emulator-5554' 2011-09-29 13:07:18 - hello Installing hello.apk... 2011-09-29 13:07:37 - hello Success! 

sur la réexécution après avoir changé l’application pour le faire recharger:

 2011-09-29 13:08:18 - hello Uploading hello.apk onto device 'emulator-5554' 2011-09-29 13:09:16 - hello Installing hello.apk... 2011-09-29 13:09:24 - hello Success! 

Comme vous pouvez le constater, le téléchargement vers l’émulateur ne prend que 5 secondes lorsque l’émulateur est démarré. Cela prend près d’une minute avec un émulateur en marche! C’est la cause du temps de ré-exécution prolongé. Cela ne change pas même lorsque je désinstalle l’application sur l’émulateur avant de le ré-exécuter.

Des idées sur ce que je pourrais essayer de résoudre? Cela semble être une sorte de problème de communication, éventuellement avec adb.

Comme d’autres l’ont signalé, il suffit de cliquer sur l’émulateur tout en téléchargeant pour améliorer considérablement la vitesse de téléchargement. J’ai eu le même problème et Googled pour une réponse, et essayer ce truc m’a aidé. Je lance un AVD 2.3.3.

Ma nouvelle découverte est un petit “piratage” pour accélérer le téléchargement . J’ai réalisé que les cas où le téléchargement était plus rapide étaient dus à mon interaction. Donc, lorsque je télécharge une nouvelle application sans travailler avec l’émulateur, c’est lent. Mais quand je travaille avec (tester mon application, quitter, ouvrir la liste des applications, etc.), le téléchargement est BEAUCOUP plus rapide – dans mon cas, env. 15 secondes au lieu de presque 2 minutes.

Donc, je pense que le problème est en quelque sorte dans les parameters de performance de l’émulateur. Quand je ne fais rien, il pense qu’aucune grande performance n’est nécessaire, l’émulateur passe à un état économique et mon téléchargement est donc lent.

Une meilleure solution:

Allez dans Exécuter -> Exécuter les configurations … -> Onglet Cible -> Options supplémentaires de la ligne de commande de l’émulateur. Ajouter là:

 -netspeed full -netdelay none 

Fermez maintenant l’émulateur et exécutez-le à nouveau.

Après cela, le temps de téléchargement est passé de 2 minutes à 8 secondes.


Edit: J’ai également constaté que quitter Skype rend mon téléchargement de mon émulateur beaucoup plus rapide.

J’ai le même problème, je développe une application Android qui est comme 4,6MB et il me faut peut-être 50-60 secondes pour le télécharger sur un émulateur et l’exécuter. Je ne pense pas que ce soit un problème avec la communication . La JVM est lente, c’est pourquoi vous avez besoin d’un temps pour télécharger votre fichier apk et l’exécuter. Je ne pense pas que vous puissiez faire quelque chose, sauf que vous commencez à tester votre application sur un périphérique.

Jouez avec l’émulateur lors du téléchargement de votre application. Je suis totalement d’accord avec teepee. Cela a réduit mon temps d’attente de 4 minutes à 30 secondes.

L’émulateur le plus rapide que vous pouvez obtenir, c’est une machine VMWare avec Android.

En développant mon jeu, Elastic World, je souffrais du même problème. Après avoir attendu quelques minutes pour que l’émulateur démarre, le jeu fonctionnait à 20 FPS maximum. Même sur les appareils Android bas de gamme, je pouvais facilement obtenir 60 FPS. La vitesse de téléchargement était très lente.

J’ai donc migré vers une machine Android VMWare, en suivant les instructions de ce site: http://www.android-x86.org/documents/installhowto/

La même boucle de jeu tourne désormais à 250 FPS. (il n’est pas jouable à cette vitesse et j’ai le jeu limité à 60 FPS maximum, mais en dépassant cette limite, il donne 250 FPS)

Lorsque Eclipse met fin au processus de construction, il me suffit d’attendre 1 à 5 secondes pour que le jeu apparaisse sur la machine virtuelle. Et je lance un vieux Core2Duo

Ce n’est pas un problème avec l’AVD, c’est éclipser le problème et je ne sais pas s’il existe un moyen de le changer dans ce que nous pourrions appeler la jungle des parameters.

Pour être bref, vous pouvez lancer un émulateur vous-même dans une commande de console en utilisant ce qui suit:

 emulator.exe -avd MyAVDName -netspeed full -netdelay none 

Joli les parameters, pourquoi Eclipse ne l’utilise pas? Certains codeurs Eclipse devraient en faire la valeur par défaut. Une autre solution consiste à passer à IntelliJ IDEA. Il remplacera glorieusement votre ancien IDE maladroit par un nouveau et meilleur.

Je sais que c’est un vieux sujet, mais je pense que j’ai une solution à ce problème.

Tout d’abord, vous devez démarrer l’émulateur sans les arguments netspeed comme suit:

 emulator -avd  

Une fois démarré, connectez-vous à l’émulateur à l’aide de telnet. Vous pouvez obtenir le port depuis le haut de la fenêtre de l’émulateur ou en exécutant des périphériques adb et en examinant le port série de l’émulateur qui se trouve sous la forme du port émulateur (généralement 5554 dans la plupart des cas).

 telnet localhost 5554 

Après vous être connecté à l’aide de telnet, vous devez exécuter la commande suivante pour forcer l’émulateur à utiliser une vitesse réseau très élevée.

 network speed 500000 

Vous pouvez ensuite vérifier ce paramètre dans telnet en utilisant la commande suivante

 network status 

Qui devrait retourner

 Current network status: download speed: 500000000 bits/s (61035.2 KB/s) upload speed: 500000000 bits/s (61035.2 KB/s) 

Si vous essayez maintenant d’installer l’APK, vous devriez constater que les performances ont considérablement augmenté. Dans mon cas, il est passé de 260 à 18 ans.

Il suffit de penser à voix haute:

Je ne le sais pas, mais je me demande si ce ralentissement est dû au fait que les applications Android ont chacune leur propre instance de la machine virtuelle Dalvik et fonctionnent comme un utilisateur et un processus distincts. Lorsque vous “pensez” que vous avez fermé votre application, Android peut conserver le processus (sans aucun doute la machine virtuelle) au cas où vous redémarriez l’application. Ceci est similaire au comportement de pré-extraction dans Windows.

Lorsque vous réexécutez l’application, après avoir modifié les sources, Android doit peut-être détruire l’instance mise en cache. Le délai supplémentaire que vous remarquez en cas de redéploiement dans la même instance d’émulateur peut être dû aux coûts encourus pour arrêter correctement la machine virtuelle et l’application.

J’ai le même problème, mais je suis convaincu que cela a quelque chose à voir avec le système d’exploitation, car j’ai téléchargé la même application avec un MacBook Pro et un ordinateur portable Dell, plus puissant, compte tenu des spécifications matérielles. significativement plus faible sur le Mac.

Sur cet ordinateur portable Dell avec Windows, cependant, les téléchargements vers des appareils Android réels sont bien plus rapides.

Je pensais que cela pourrait être lié au “package de pilote USB Google”, que je n’ai pas encore installé, mais après l’avoir installé, rien n’a vraiment changé.

Essayez de définir votre RAM émulateur sur 1024.

En me basant sur ce que teepee a dit dans un article précédent, j’ai constaté que si je me mêlais à l’AVD en cours d’exécution pendant la phase de téléchargement, il finit BEAUCOUP plus rapidement (5 secondes contre 60 secondes) et je suis installé du temps. Ceci est avec un AVD 4.0.3. Je n’ai pas encore essayé les autres.

Les alternatives:

Mise en place d’un serveur FTP sur votre PC pour l’hébergement de fichiers apk, maintenant vous pouvez télécharger des fichiers apk par navigateur web émulateur android et installer l’application directement sans utiliser adb.

ou

Installez un client Samba sur un émulateur Android et partagez des fichiers apk sur votre PC, puis copiez les fichiers apk sur l’émulateur et installez l’application directement sans utiliser adb.

Toutes les manières ci-dessus sont plus rapides que l’installation d’Adb.

Question idiote – l’avez-vous essayé sur plusieurs AVD? Il est possible que votre seul AVD soit gâché d’une certaine manière.

Faites autant d’interaction avec l’émulateur que possible lors du téléchargement de l’apk sur l’émulateur, si vous appuyez sur des boutons aléatoires de l’émulateur lors du téléchargement, il sera téléchargé tôt, avant que le téléchargement ne prenne 5-6 minutes, mais il ne prend que 15-20 secondes.

J’ai aussi vu ça. Voici quelque chose qui a aidé, en supposant que vous utilisiez le même AVD. Essuyez les données utilisateur sur le AVD. Après cela, l’application se chargerait beaucoup plus rapidement, quelques secondes.

Dans un terminal / console, je mets un shell dans le shell AVD avec adb -e shell puis adb -e shell au répertoire tmp où l’apk est en cours de téléchargement cd /data/local/tmp puis ls -l pour voir la taille actuelle du fichier. J’ai constaté que si je restais assis là et que je continuais à appuyer sur la flèche, entrez pour répéter rapidement le ls -l . Vous pouvez regarder la progression à mesure que la taille du fichier augmente.

Ceci est probablement similaire à l’effet de cliquer sur les AVD que d’autres ont mentionnés.

Je suis sur un Mac Je ne sais pas si c’est la même chose sous Windows ou Linux.

Cela pourrait fonctionner sur les fenêtres,

lancez le gestionnaire de tâches -> onglet processus -> recherchez emulator.exe,

clic droit et définir la priorité à haute

N’oubliez pas de le régler à la normale une fois votre travail terminé.

la fermeture des applications indésirables nécessitant beaucoup de mémoire, comme chrome et firefox, peut également être fermée en cas de besoin.