web-dev-qa-db-fra.com

Android Stop Emulator à partir de la ligne de commande

Cette question est identique à Comment arrêter l'émulateur Android via la ligne de commande .

Cependant, après avoir essayé la solution suggérée à partir de la première réponse, adb emu kill ne s'est pas avéré efficace.

J'automatise les tests unitaires pour une application Android. Mon script bash tourne sur une machine sans tête. Il crée un appareil Android à l'aide de Android create avd et exécute emulator avec l'attribut -no-window. Il compile ensuite le projet de test, se connecte à l'émulateur à l'aide de adb, installe le projet et exécute mes tests. Tout cela fonctionne bien.

Maintenant, je dois terminer le processus de l'émulateur, et comme le message référencé, je ne peux le faire qu'avec kill -9

Le didacticiel Google Gestion des AVD à partir de la ligne de commande indique uniquement comment arrêter les émulateurs dans un environnement graphique. 

Toute aide est appréciée.

41
jsjrobotics

Peut-être essayez-vous d'utiliser adb kill-server cela devrait-il fonctionner pour vous?

ou

adb -s emulator-5554 emu kill, où emulator-5554 est le nom de l'émulateur.

Pour les utilisateurs Ubuntu, j'ai trouvé une bonne commande pour arrêter tous les émulateurs en cours d'exécution (Merci à @uwe )

adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done
99
Sergey Shustikov

Pour arrêter tous les émulateurs en cours d'exécution, nous utilisons cette commande:

adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done
23
uwe

L'autre réponse n'a pas fonctionné pour moi (sous Windows 7). Mais cela a fonctionné:

telnet localhost 5554
kill
7
Zenadix

Pourquoi ne pas simplement faire

adb reboot bootloader
5
user3597306

Parfois la commande

adb -s emulator-5554 emu kill

n'a pas fonctionné sur mes serveurs ou bureaux CI, pour une raison inconnue Je pense que sous Windows, il est correct de tuer le processus de qemu, tout comme

Taskkill /IM qemu-system-x86_64.exe /F /T
2
Huiyang Shan

Aucune des solutions n'a fonctionné pour moi. Je devais utiliser la méthode telnet, y compris l'authentification:

AUTH=$(cat "$HOME/.emulator_console_auth_token")

expect << EOF
spawn telnet localhost 5554
expect "OK"
send   "auth $AUTH\r"
expect "OK"
send   "kill\r"
expect "OK"
send   "exit\r"
EOF

Le script complet peut être obtenu avec une licence gratuite de https://github.com/kullo/Android-emulator-tools


Mise à jour: semble que cela ne ferme toujours pas de manière fiable la console et les ports ADB (par exemple, 5554,5555)

1
Simon Warta

J'utilise cette ligne, divisée en plusieurs lignes pour plus de lisibilité:

adb devices |
 Perl -nle 'print $1 if /emulator-(\d+).device$/' |
 xargs -t -l1 -i bash -c "
   ( echo auth $(cat $HOME/.emulator_console_auth_token) ;
     echo kill ;
     yes ) |
   telnet localhost {}"
1
android.weasel

adb kill-server va tuer tous les émulateurs et redémarrer le serveur.

1
chrisjhebert1973

Pour automatiser cela, vous pouvez utiliser n'importe quel script ou application pouvant envoyer une chaîne à un socket. Personnellement, j'aime nc (netcat) sous cygwin. Comme je l'ai déjà dit, je l'utilise comme ceci:

$ echo kill | nc -w 2 localhost 5554

(Cela signifie envoyer la chaîne "kill" au port 5554 sur localhost et mettre fin à netcat après 2 secondes.)

0
naveed148

Liste des périphériques connectés Emulator-5584 Host Emulator-5580 Host Emulator-5576 Host Emulator-5572 Host Emulator-5568 Host Emulator-5564 Host -5560 Host

C:\Utilisateurs\Administrateur> adb -s emulator-5584 emu kill Erreur: impossible de se connecter au port TCP 5584: impossible de se connecter à 127.0.0.1:5584: Aucune connexion n'a pu être établie car l'ordinateur cible activement refusé. (10061)

REMARQUE: l'interface graphique de l'émulateur n'est pas en cours d'exécution, mais elle est toujours affichée.

SOLUTION:

adb kill-server

démarrez l'émulateur en utilisant:

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

J'espère que cela t'aidera!

0
Gopal Choudhary

Je peux le fermer avec:

adb Shell reboot -p
0
Hugo y