我研究的相关问题:
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上成功。
请给我一个提示:这种不同的行为是什么?为什么这么不稳定?
答案 0 :(得分:0)
经过一些研究,我发现NetCat非常强大且有用,并且存在于基于* NIX的系统上。
这是一个快速,干净,可靠的解决方案,可以获取正在运行的AVD的名称:
echo "avd name" | nc -w 1 localhost 5554