Comment désactiver L'émulateur Android via la ligne de commande
Je ne peux pas arrêter l'émulateur de l'invite de commande avec élégance.
j'utilise la version Ubuntu 10.04 de Linux (64 bits) et la Version SDK Android est 2.3.
j'ai démarré l'émulateur en utilisant son snapshot. Maintenant, mon souci est d'éteindre gracieusement L'instance courante de L'émulateur. J'ai essayé avec kill -9 (process Id pour le fonctionnement de l'émulateur) qui arrête l'émulateur mais la prochaine fois il ne démarre pas car son snapshot a été corrompu. Merci de m'aider pour éviter énergique de la fermeture de l'un émulateur.
une idée de comment le réparer?
3 réponses
s'il vous Plaît ne pas utiliser kill -9
sans discernement, c'est une très mauvaise habitude.
la commande correcte est
$ adb emu kill
ou plutôt était la commande correcte jusqu'à quelques changements récents adb
. Il semble que quelqu'un a oublié d'ajouter l'authentification.
dans la dernière (à partir de juin 2016) la dernière adb
version est
$ adb version
Android Debug Bridge version 1.0.36
Revision 0a04cdc4a62f-android
et quand vous essayez
$ adb emu kill
rien ne se passe, et c'est pourquoi
...
connect(3, {sa_family=AF_INET, sin_port=htons(5554),
sin_addr=inet_addr("127.0.0.1")}, 16) = 0
write(3, "kill\nquit\n", 10) = 10
read(3, "73", 8192) = 3
read(3, "7373"151930920"75"151930920"", 8192) = 9
read(3, "Android Console: Authentication required\r\nAndroid Console: type 'auth <auth_token>' to authenticate\r\nAndroid Console: you can find your <auth_token> in \r\n'/home/diego/.emulator_console_auth_token'\r\nOK\r\n", 8192) = 202
read(3, "k[K", 8192) = 4
read(3, "[Dki[K", 8192) = 8
read(3, "[D[Dkil[K[D[D[Dkill[K", 8192) = 28
read(3, "\r\nKO: unknown command, try 'help'\r\n", 8192) = 35
read(3, "q[K[Dqu[K", 8192) = 12
read(3, "[D[Dqui[K[D[D[Dquit[K", 8192) = 28
read(3, "\r\n", 8192) = 2
read(3, "", 8192) = 0
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
alors nous avons besoin d'une autre solution.
si la commande précédente ne fonctionne pas (comme certains utilisateurs l'ont signalé pour Windows), vous pouvez essayer ( dans la commande suivante 5554 est le port utilisé par l'émulateur ).
Copiez le contenu du fichier token ( ~/.emulator_console_auth_token
) dans le presse-papiers pour que vous puissiez collez-le pendant votre session telnet:
$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/home/user/.emulator_console_auth_token'
OK
auth <YOUR_TOKEN_HERE>
Android Console: type 'help' for a list of commands
OK
Android console command help:
help|h|? print a list of commands
crash crash the emulator instance
kill kill the emulator instance
quit|exit quit control session
redir manage port redirections
power power related commands
event simulate hardware events
avd control virtual device execution
finger manage emulator fingerprint
geo Geo-location commands
sms SMS related commands
cdma CDMA related commands
gsm GSM related commands
rotate rotate the screen by 90 degrees
try 'help <command>' for command-specific help
OK
Ensuite, vous pouvez simplement entrer kill
à l'invite de commande
kill
OK: killing emulator, bye bye
Connection closed by foreign host.
et l'émulateur va quitter.
mais attendez, il devrait y avoir un meilleur moyen. Et en fait, il y est!
Ce gist propose une solution automatisée à l'aide de s'attendre à au lieu d'avoir à couper et passé l'authentification jeton à chaque fois.
J'espère que vous le trouverez utile.
sur Ubuntu 16-04, en utilisant la version 1.0.32 de L'ADB, j'exécute L'émulateur pour Android 4.4 (API 19) dans un conteneur docker. Les ports exposés sont 30004 pour la console et 30005 pour ADB.
je peux me connecter en faisant adb connect 0.0.0.0:30005
.
pour tuer l'émulateur cependant, je dois utiliser adb -s emulator-30004 emu kill
, en utilisant 0.0.0.0:30005
me donne error: no emulator detected
.
j'ai eu des problèmes à ubuntu où l'émulateur ouvrirait continuellement de nouveaux processus. Je n'ai jamais pu fermer l'émulateur et il ne répondait pas.
j'ai utilisé htop
dans htop:
- F4 à filtrer.
- filtre pour "avd".
- F5 pour arbre.
- trouver et cliquez sur processus parent.
- F9 pour élever tuer menu.
- sélectionner le signal 9 et entrer.