如何通过命令行关闭Android emulator

如何通过命令行关闭Android emulator,android,ubuntu,emulation,avd,qemu,Android,Ubuntu,Emulation,Avd,Qemu,我无法正常地从命令提示符停止模拟器 我使用的是Linux Ubuntu v10.04(64位)和Android v2.3(API 9-姜饼) 我使用它的快照启动了emulator。现在我关心的是如何优雅地关闭Emulator的运行实例。我尝试过使用kill-9(emulator运行的进程Id),它会关闭emulator,但下次它不会启动,因为它的快照已损坏。请帮助我避免强制关闭模拟器 你知道怎么解决吗?请不要随意使用kill-9,这是一个非常坏的习惯 正确的命令是 $ adb emu kill

我无法正常地从命令提示符停止模拟器

我使用的是Linux Ubuntu v10.04(64位)和Android v2.3(API 9-姜饼)

我使用它的快照启动了emulator。现在我关心的是如何优雅地关闭Emulator的运行实例。我尝试过使用
kill-9
(emulator运行的进程Id),它会关闭emulator,但下次它不会启动,因为它的快照已损坏。请帮助我避免强制关闭模拟器


你知道怎么解决吗?

请不要随意使用
kill-9
,这是一个非常坏的习惯

正确的命令是

 $ adb emu kill
或者我最好说,在最近的一些
adb
更改之前,是正确的命令。似乎有人忘了添加身份验证

在最新版本中(截至2016年6月),最新的
adb
版本为

$ adb version
Android Debug Bridge version 1.0.36
Revision 0a04cdc4a62f-android
当你尝试的时候

$ adb emu kill
什么都没发生,这就是原因

...
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, "\377\373\1", 8192)             = 3
read(3, "\377\373\3\377\373\0\377\375\0", 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\33[K", 8192)                 = 4
read(3, "\33[Dki\33[K", 8192)           = 8
read(3, "\33[D\33[Dkil\33[K\33[D\33[D\33[Dkill\33[K", 8192) = 28
read(3, "\r\nKO: unknown command, try 'help'\r\n", 8192) = 35
read(3, "q\33[K\33[Dqu\33[K", 8192)     = 12
read(3, "\33[D\33[Dqui\33[K\33[D\33[D\33[Dquit\33[K", 8192) = 28
read(3, "\r\n", 8192)                   = 2
read(3, "", 8192)                       = 0
close(3)                                = 0
exit_group(0)                           = ?
+++ exited with 0 +++
然后,您只需在命令提示下输入
kill

kill
OK: killing emulator, bye bye
Connection closed by foreign host.
模拟器将退出

但是等等,应该有更好的办法。事实上,有

这提供了一个自动化的解决方案,使用户不必每次都切断并通过身份验证令牌


希望你觉得它有用。

在Ubuntu 16-04上,使用ADB版本1.0.32,我正在docker容器中运行Android 4.4(API 19)模拟器。控制台的暴露端口为30004,ADB的暴露端口为30005

我可以通过执行adb connect 0.0.0.0:30005来连接到它


要杀死模拟器,我必须使用
adb-s emulator-30004 emu kill
,使用
0.0.0:30005
会给我
错误:没有检测到模拟器

我在ubuntu中遇到问题,模拟器会持续打开新进程。我无法关闭模拟器,它没有响应

我使用了
htop

htop中的步骤:

  • F4到过滤器
  • “avd”的过滤器
  • F5代表树
  • 查找并单击父进程
  • F9,以提高杀伤菜单
  • 选择信号9并输入

  • 为什么不需要通过命令行关闭它?这在linux上可以找到,但在Windows 7上不起作用。为此打开了一个bug:我必须首先使用命令
    auth
    对telnet会话进行身份验证(以便使用
    kill
    命令)。身份验证令牌位于我的主目录中的文件
    .emulator\u console\u Auth\u token
    (有关位置,请参阅telnet登录说明)。
    kill
    OK: killing emulator, bye bye
    Connection closed by foreign host.