从命令行Android停止模拟器

jsj*_*ics 52 android android-emulator

此问题与如何通过命令行关闭Android模拟器相同.

但是,尝试从第一个答案建议的解决方案后adb emu kill,我没有证明成功.

我正在为Android应用程序自动化单元测试.我的bash脚本在无头机器上运行.它创建一个使用该属性android create avdemulator使用该-no-window属性执行的Android设备.然后它编译测试项目,使用连接到模拟器adb,安装项目并执行我的测试.一切正常.

现在我需要终止模拟器进程,就像引用的帖子一样,我只能使用它kill -9.

从命令行管理AVD的Google教程仅提到了如何在GUI环境中停止模拟器.

任何帮助表示赞赏.

Ser*_*kov 123

也许尝试使用adb kill-server它应该适合你?

要么

adb -s emulator-5554 emu kill,emulator-5554模拟器名称在哪里.

对于Ubuntu用户,我发现了一个很好的命令来停止所有正在运行的模拟器(感谢@uwe)

adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done
Run Code Online (Sandbox Code Playgroud)

  • 在这个日期使用最新的可用sdks都不能在osx上工作 (5认同)
  • `adb -s emulator-5554 emu kill`会关闭模拟器,但命令不会终止并永久阻塞:/ (5认同)
  • 对于任何对此感到困惑的人,您可以使用“adb devices”找到模拟器名称。 (5认同)
  • adb kill-server会停止adb,但不会停止模拟器进程.并且emu kill语句总是返回未找到的模拟器 (3认同)

uwe*_*uwe 23

要停止所有正在运行的模拟器,我们使用此命令:

adb devices | grep emulator | cut -f1 | while read line; do adb -s $line emu kill; done
Run Code Online (Sandbox Code Playgroud)


Nav*_*aei 18

对于 MAC:

  1. 跑:
ps -ax | grep emulator 
Run Code Online (Sandbox Code Playgroud)

这会给你一个更广泛的结果,比如:

 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
Run Code Online (Sandbox Code Playgroud)
  1. 第一列(左)是您要查找的进程 ID (PID)。

  2. 找到第一个 PID(在上面的例子中,它是 6617)。

  3. 强制终止该进程:

kill -9 PID
Run Code Online (Sandbox Code Playgroud)

就我而言,命令是:

kill -9 6617
Run Code Online (Sandbox Code Playgroud)
  1. 通常,杀死第一个进程足以停止模拟器,但如果这不起作用,也尝试杀死其他进程。

  • 仅“Kill”并没有为我杀死进程,“kill -9”却杀死了我。 (7认同)

Van*_*hel 9

要获取您的设备名称,请尝试在 Android Studio 终端上运行它

adb devices
Run Code Online (Sandbox Code Playgroud)

获得设备名称后,用此评论杀死应用程序

adb -s emulator-5554 emu kill
Run Code Online (Sandbox Code Playgroud)

在哪里

模拟器-5554

是你的设备名称


Hui*_*han 8

有时命令

adb -s emulator-5554 emu kill
Run Code Online (Sandbox Code Playgroud)

由于未知原因,它在我的 CI 服务器或台式机上不起作用。我认为在 Windows 上可以杀死 qemu 的进程,就像

Taskkill /IM qemu-system-x86_64.exe /F /T
Run Code Online (Sandbox Code Playgroud)

  • “Taskkill”命令对我有用。谢谢。令人难以置信的是我们仍然必须处理这样的事情。 (2认同)
  • 这在 Windows 11 中对我来说非常有效。您只需指定必须在管理员命令提示符中执行此命令即可。非常感谢。 (2认同)

小智 8

我可以关闭它:

adb shell reboot -p
Run Code Online (Sandbox Code Playgroud)


Zen*_*dix 7

另一个答案对我不起作用(在Windows 7上).但这有效:

telnet localhost 5554
kill
Run Code Online (Sandbox Code Playgroud)


小智 6

为什么不这样做呢

adb reboot bootloader
Run Code Online (Sandbox Code Playgroud)


PDH*_*ide 5

如果

 adb kill-server 
Run Code Online (Sandbox Code Playgroud)

不起作用。用 :

 adb emu kill
Run Code Online (Sandbox Code Playgroud)

这将杀死所有模拟器

如果存在多个模拟器,则使用:

adb -s * emu kill
Run Code Online (Sandbox Code Playgroud)