web-dev-qa-db-fra.com

Téléchargement lent vers un émulateur Android en cours d'exécution

J'ai cherché mais n'ai trouvé aucune question ou réponse pour ma situation spécifique. 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 prend environ 45 secondes pour démarrer (extrêmement rapide pour l'émulateur!) De son lancement à l'exécution de mon application.

Si je modifie ensuite l'application et l'exécute à nouveau sur l'émulateur en cours d'exécution, le temps passe à plus de 70 secondes! Contrairement à toutes les autres plaintes des personnes, 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!

lors de la réexécution après avoir changé l’application pour la 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 sur l'émulateur ne prend que 5 secondes lorsque l'émulateur vient de démarrer. Cela prend presque une minute avec un émulateur en marche! Ceci 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 la réexécuter.

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

42
jfielding

Comme d'autres l'ont signalé, il suffit de cliquer dans l'émulateur pendant le téléchargement pour améliorer considérablement la vitesse de téléchargement. J'ai eu le même problème et Google a cherché une réponse, et essayer cette astuce m'a aidé. Je cours un 2.3.3 AVD.

30
TommyN

Ma nouvelle découverte est un petit "hack" comment vous pouvez faire votre téléchargement plus rapidement . J'ai réalisé que les cas où le téléchargement était plus rapide ont été causés par mon interaction. Ainsi, lorsque je télécharge une nouvelle application sans travailler avec l'émulateur, elle est lente. Mais lorsque je travaille avec elle (test de mon application, fermeture de la liste, ouverture de la liste des applications, etc.), le téléchargement est BEAUCOUP plus rapide - dans mon cas, env. 15secondes au lieu de presque 2 minutes.

Donc, je pense que le problème est en quelque sorte dans les paramètres de performance de l'émulateur. Quand je ne fais rien, je pense qu'aucune grande performance n'est nécessaire, l'émulateur est basculé sur un état économique, mon téléchargement est donc lent.

8
peter.bartos

Une meilleure solution:

Allez dans Exécuter -> Exécuter les configurations ... -> onglet Cible -> Options de ligne de commande de l'émulateur supplémentaires. 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 accélère le téléchargement de mon émulateur.

6
Uriel Frankel

L'émulateur le plus rapide que vous pouvez obtenir 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 le démarrage de l'émulateur, le jeu tournait à une vitesse maximale de 20 images par seconde. Même sur des appareils Android bas de gamme, je pourrais facilement obtenir 60 images par seconde. La vitesse de téléchargement était très lente.

Alors je suis passé sur une machine VMWare Android, en suivant les instructions de ce site: http://www.Android-x86.org/documents/installhowto/

La même boucle de jeu tourne maintenant à 250 FPS. (ce n'est pas jouable à cette vitesse et le jeu est limité à 60 FPS, mais outrepasser cette limitation donne 250 FPS)

Lorsque Eclipse termine le processus de construction, je dois juste attendre 1 à 5 secondes pour que le jeu apparaisse sur la machine virtuelle. Et j'utilise un vieux Core2Duo

5
Pedro Soares

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

5
Kalaji

J'ai le même problème, je développe une application Android qui correspond à 4,6 Mo et il me faut environ 50 à 60 secondes pour la télécharger sur l'émulateur et l'exécuter. Je ne pense pas que ce soit un problème de communication. . La JVM est lente, c'est pourquoi vous avez besoin de temps pour télécharger votre apk et l'exécuter. Je ne pense pas que vous puissiez rien faire à ce sujet, si ce n'est que vous commencez à tester votre application sur un périphérique.

5
Android-Droid

Je sais que c'est un sujet ancien, mais je pense avoir une solution à ce problème.

Vous devez d’abord démarrer l’émulateur sans les arguments netspeed comme suit:

emulator -avd <name>

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 regardant la série de l'émulateur qui se présente sous la forme port-émulateur (il s'agit généralement de 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 de réseau très élevée.

network speed 500000

Vous pouvez ensuite vérifier ce paramètre dans telnet à l'aide de 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 constaterez que la performance est considérablement améliorée. Dans mon cas, il est passé de 260 à 18 ans.

4
Andy

Ce n’est pas un problème avec l’AVD, c’est le problème d’Eclipse et je ne sais pas s’il est possible de le changer dans ce que nous pourrions appeler la jungle de paramètres.

Pour être bref, vous pouvez lancer un émulateur tout seul dans une commande de console En utilisant les éléments suivants:

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

Pourquoi les paramètres ne sont-ils pas utilisés par Eclipse? Certains codeurs Eclipse devraient en faire le paramètre par défaut . Une autre solution consiste à passer à IntelliJ IDEA. Il remplacera glorieusement votre ancien IDE maladroit par un nouveau et meilleur.

4
Rubarb

Juste penser à voix haute:

Je ne le sais pas bien, mais je me demande si ce ralentissement est dû au fait que les applications Android possèdent chacune leur propre instance de Dalvik VM et s'exécutent en tant qu'utilisateur et processus distincts. Lorsque vous "pensez" que vous avez fermé votre application, Android peut garder le processus (certainement la VM) en vie au cas où vous redémarriez l'application. Ce comportement est similaire au comportement de prélecture dans Windows.

Lorsque vous relancez 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 engendrés par la fermeture en douceur de la VM et de l'application. 

2
Code Poet

Expliquant ce que teepee a dit dans un précédent article, j’ai trouvé que si je muck avec l’AVD déjà en cours d’exécution pendant la phase de téléchargement, il se terminait BEAUCOUP plus rapidement (5 secondes contre 60 secondes) et je suis installé et fonctionne en une fraction. du temps. Ceci est avec un AVD 4.0.3. Je n'ai pas encore essayé les autres.

1
sdfsdf sdfsdf

Essayez de régler votre émulateur RAM sur 1024.

1
Paulo Barros

Je rencontre 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 à l'aide d'un MacBook Pro et d'un ordinateur portable Dell, ce qui est plus puissant compte tenu des spécifications matérielles. significativement plus bas sur le Mac.

Cependant, sur cet ordinateur portable Dell avec Windows, les téléchargements sur des appareils Android sont beaucoup plus rapides.

Je pensais que cela pouvait être lié au "package de pilote USB Google", que je n'avais pas encore installé, mais après l'avoir installé, rien n'a vraiment changé.

1
David

Les moyens alternatifs:

Configuration d'un serveur FTP sur votre ordinateur pour l'hébergement de fichiers apk, vous pouvez désormais télécharger les fichiers apk à l'aide du navigateur Web de l'é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 ordinateur, puis copiez-les sur l'émulateur et installez l'application directement sans utiliser adb.

Tous les moyens ci-dessus sont plus rapides que l'installation par adb.

1
Sadegh

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

0
user1010160

Cela pourrait fonctionner sur Windows,

démarrez le gestionnaire de tâches -> onglet processus -> recherchez emulator.exe, 

clic droit et définir la priorité haute 

n'oubliez pas de le mettre à 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 lorsqu'elle n'est pas utilisée.

0
1234567

Dans un terminal/une console, je shell dans l’AVD avec adb -e Shell, puis accédez au répertoire tmp où l’apk est en cours de téléchargement cd /data/local/tmp, puis exécutez ls -l pour afficher la taille actuelle du fichier. J'ai constaté que si je restais assis là et que je continuais à appuyer sur la flèche vers le haut, puis que j'entais pour répéter rapidement le ls -l, le téléchargement accélérait considérablement. Vous pouvez suivre l'évolution de la taille du fichier.

Ceci est probablement similaire à l’effet de cliquer dans l’AVD mentionné par d’autres.

Je suis sur un Mac. Pas sûr que ce soit la même chose sous Windows ou Linux. 

0
pinch

Question idiote - l'avez-vous essayé sur plusieurs DAV? Il est possible que votre seul DAV soit en quelque sorte foiré.

0
zmbq

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

0
Muaz Usmani