Android Stop-Emulator über die Befehlszeile

Lesezeit: 4 Minuten

Benutzer-Avatar
jsjrobotics

Diese Frage ist identisch mit dem Herunterfahren des Android-Emulators über die Befehlszeile.

Allerdings nach dem Versuch der vorgeschlagenen Lösung aus der ersten Antwort adb emu kill hat sich bei mir nicht bewährt.

Ich automatisiere Unit-Tests für eine Android-Anwendung. Mein Bash-Skript läuft auf einer Headless-Maschine. Es erstellt ein Android-Gerät mit android create avd und führt aus emulator mit dem -no-window Attribut. Es kompiliert dann das Testprojekt und stellt eine Verbindung zum Emulator her adb, installiert das Projekt und führt meine Tests aus. Das funktioniert alles gut.

Jetzt muss ich den Emulatorprozess beenden, und genau wie im referenzierten Beitrag kann ich dies nur mit tun kill -9.

Das Google-Tutorial Verwalten von AVDs über die Befehlszeile erwähnt nur, wie man Emulatoren innerhalb einer GUI-Umgebung stoppt.

Jede Hilfe ist willkommen.

Benutzer-Avatar
Sergej Schustikow

Vielleicht adb kill-server hilft dir?

oder

adb -s emulator-5544 emu killwo emulator-5544 – Emulatorname.

Für Linux-Benutzer wird es sein

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

  • adb kill-server stoppt adb, aber nicht den Emulatorprozess. Und die Emu-Kill-Anweisung gibt immer Emulator nicht gefunden zurück

    – jsjrobotics

    23. November 2013 um 23:29 Uhr

  • keiner arbeitet an osx mit den aktuellsten verfügbaren sdks zu diesem datum

    – siehe da

    17. Mai 2016 um 5:50 Uhr

  • adb -s emulator-5554 emu kill fährt den Emulator herunter, aber der Befehl wird nicht beendet und für immer blockiert :/

    – Simon Warta

    26. September 2016 um 8:27 Uhr

  • Für alle, die dadurch verwirrt waren, können Sie den Emulatornamen mit finden adb devices.

    – nhouser9

    21. Mai 2017 um 16:42 Uhr

  • Kleiner Tippfehler 🙂 wo emulator-5554 sollte so sein 🙂

    – Daniel Danielecki

    12. Mai um 8:08 Uhr

Um alle laufenden Emulatoren zu stoppen, verwenden wir diesen Befehl:

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

Benutzer-Avatar
Positiver Navid

FÜR MAC:

  1. Laufen:
ps -ax | grep emulator 

was Ihnen ein breites Ergebnis gibt. Etwas wie:

 6617 ??         9:05.54 /Users/nav/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 -netdelay none -netspeed full -avd Nexus_One_API_29
 6619 ??         0:06.10 /Users/nav/Library/Android/sdk/emulator/emulator64-crash-service -pipe com.google.AndroidEmulator.CrashService.6617 -ppid 6617 -data-dir /tmp/android-nav/
 6658 ??         0:07.93 /Users/nav/Library/Android/sdk/emulator/lib64/qt/libexec/QtWebEngineProcess --type=renderer --disable-accelerated-video-decode --disable-gpu-memory-buffer-video-frames --disable-pepper-3d-image-chromium --enable-threaded-compositing --file-url-path-alias=/gen=/Users/nav/Library/Android/sdk/emulator/lib64/qt/libexec/gen --enable-features=AllowContentInitiatedDataUrlNavigations --disable-features=MacV2Sandbox,MojoVideoCapture,SurfaceSynchronization,UseVideoCaptureApiForDevToolsSnapshots --disable-gpu-compositing --service-pipe-token=15570406721898250245 --lang=en-US --webengine-schemes=qrc:sLV --num-raster-threads=4 --enable-main-frame-before-activation --service-request-channel-token=15570406721898250245 --renderer-client-id=2
 6659 ??         0:01.11 /Users/nav/Library/Android/sdk/emulator/lib64/qt/libexec/QtWebEngineProcess --type=renderer --disable-accelerated-video-decode --disable-gpu-memory-buffer-video-frames --disable-pepper-3d-image-chromium --enable-threaded-compositing --file-url-path-alias=/gen=/Users/nav/Library/Android/sdk/emulator/lib64/qt/libexec/gen --enable-features=AllowContentInitiatedDataUrlNavigations --disable-features=MacV2Sandbox,MojoVideoCapture,SurfaceSynchronization,UseVideoCaptureApiForDevToolsSnapshots --disable-gpu-compositing --service-pipe-token=--lang=en-US --webengine-schemes=qrc:sLV --num-raster-threads=4 --enable-main-frame-before-activation --service-request-channel-token=  --renderer-client-id=3
10030 ttys000    0:00.00 grep emulator
  1. Die erste (linke) Spalte ist die gesuchte Prozess-ID (PID).

  2. Suchen Sie die PID in der ersten (oberen) Zeile. Im obigen Beispiel ist es 6617.

  3. Beenden Sie diesen Prozess:

kill PID

In meinem Fall lautet der Befehl:

kill 6617
  1. Normalerweise wird der erste Prozess ausreichend beendet, um den Emulator zu stoppen, aber wenn das nicht funktioniert, können Sie:

    5.1. Versuchen Sie auch, andere Prozesse zu beenden.

    5.2 töten mit -9 (Tötung erzwingen):

kill -9 PID

  • Verwenden Sie nicht -9, um den Emulator zu beenden. Normal kill genügt. -9 stürzt den Prozess ab und überspringt alle Bereinigungen, was zu Problemen führen kann.

    – VS

    16. Dezember 2021 um 11:59 Uhr

  • Kill allein hat den Prozess für mich nicht getötet, kill -9 tat.

    – Javad

    28. Januar um 12:32 Uhr

  • Das Ausführen des Kill-Befehls hat bei mir nicht funktioniert, vielleicht habe ich den guten Prozess zum Töten nicht gefunden oder vielleicht habe ich es verpasst, (-9) zu erzwingen. Dann öffnete ich den Macos-Aktivitätsmonitor, der die Prozesse auflistet, und mein Emulator war ganz oben. Ich doppelklicke darauf und erzwinge das Beenden. Das hat endlich geklappt.

    – Francoiscabrol

    4. März um 9:36

Benutzer-Avatar
PDHide

wenn

 adb kill-server 

funktioniert nicht. Verwenden :

 adb emu kill

Dies wird alle Emulatoren töten

Wenn mehrere Emulatoren vorhanden sind, verwenden Sie:

adb -s * emu kill

Manchmal der Befehl

adb -s emulator-5554 emu kill

funktionierte aus unbekannten Gründen nicht auf meinen CI-Servern oder Desktops. Ich denke, unter Windows ist es in Ordnung, den Prozess von qemu zu beenden, genau wie

Taskkill /IM qemu-system-x86_64.exe /F /T

Benutzer-Avatar
Hugo Y

Ich kann es schließen mit:

adb shell reboot -p

Benutzer-Avatar
Zenadix

Die andere Antwort hat bei mir nicht funktioniert (unter Windows 7). Aber das hat funktioniert:

telnet localhost 5554
kill

  • aber vorher muss die Telnet-Funktion über Systemsteuerung > Programme und Funktionen > Windows-Funktionen ein- oder ausschalten > Telnet-Client aktiviert werden

    – Ayaz Alifov

    16. Januar 2015 um 11:19 Uhr

  • kill scheint kein Befehl in Emulatoren mit Android 9 zu sein, möglicherweise auch früher

    – Besiegen46

    27. November 2018 um 18:05 Uhr

1333730cookie-checkAndroid Stop-Emulator über die Befehlszeile

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy