通过telnet获取AVD名称失败

时间:2014-11-12 15:51:46

标签: android bash avd

我研究的相关问题:

How to get Android AVD name from serial number

我们有以下解决方案:

(sleep 0.5; echo 'avd name') | telnet 127.0.0.1 5554

我在2个操作系统上工作:OS X Yosemite和Debian VM。更改sleep时间并不重要。

我在每个系统中启动一个模拟器。 adb devices显示一切正确:emulator-5554 device。现在我想获取正在运行的模拟器的名称。

这是OS X上发生的事情:

(sleep 1; echo "avd name") | telnet 127.0.0.1 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
Connection closed by foreign host.

Debian上发生了什么:

(sleep 1; echo "avd name") | telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
emu_19_WVGA800
OK
Connection closed by foreign host.

但它有时会失败,它根本不稳定,有时它与OS X失败相似。

还试过:{echo open 127.0.0.1 5554; sleep 1; echo "avd name"} | telnet。这具有完全相同的输出:它在OS X上失败并且有时在Debian上成功。

请给我一个提示:这种不同的行为是什么?为什么这么不稳定?

1 个答案:

答案 0 :(得分:0)

经过一些研究,我发现NetCat非常强大且有用,并且存在于基于* NIX的系统上。

这是一个快速,干净,可靠的解决方案,可以获取正在运行的AVD的名称:

echo "avd name" | nc -w 1 localhost 5554