如何通过命令行关闭Android仿真器

| 我无法从命令提示符处优雅地停止模拟器。 我正在使用Linux Ubuntu 10.04版本(64位),Android SDK版本是2.3。 我使用其快照启动了模拟器。现在,我关心的是正常关闭正在运行的Emulator实例。我尝试使用kill -9(用于运行模拟器的进程ID)关闭模拟器,但下一次由于快照损坏而无法启动。请帮助我避免强行关闭仿真器。 知道如何解决吗?     
已邀请:
请不要随意使用
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 +++
然后,我们需要另一个解决方案。 如果前一个命令不起作用(如某些Windows用户报告的那样),则可以尝试(下一个命令5554是模拟器使用的端口)。 将令牌文件(
~/.emulator_console_auth_token
)的内容复制到剪贴板,以便您可以在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
然后,您只需在命令提示符下输入ѭ9
kill
OK: killing emulator, bye bye
Connection closed by foreign host.
模拟器将退出。 但是,等等,应该有更好的方法。而且实际上有! 该要点提供了一种使用Expect的自动化解决方案,而不是每次都必须剪切和粘贴身份验证令牌。 希望你觉得它有用。     
在使用ADB版本1.0.32的Ubuntu 16-04上,我正在docker容器中运行Android 4.4(API 19)模拟器。暴露的端口是控制台的30004和ADB的30005。 我可以做ѭ11连接到它。 但是,要杀死模拟器,我必须使用
adb -s emulator-30004 emu kill
,使用
0.0.0.0:30005
可以得到
error: no emulator detected
。     
我在ubuntu中遇到了问题,模拟器会不断打开新进程。我永远无法关闭模拟器,并且它没有响应。 我用
htop
htop中的步骤: F4进行过滤。 过滤\'avd \'。 F5树。 查找并单击父进程。 F9引发杀死菜单。 选择信号9并输入。     

要回复问题请先登录注册