Android获取模拟器给定的设备名称,反之亦然

Kva*_*ass 6 adb android-emulator

目前,当我运行adb devices它时,给我一个设备列表,看起来像:

emulator-5554    device
emulator-5556    device
Run Code Online (Sandbox Code Playgroud)

我的目标是找到一个可以在shell中运行的命令,该命令将设备名称作为参数,例如Nexus7,返回相应的设备序列,例如emulator-5554.如果那是不可能的,我希望能够有一个函数emulator-5554作为参数并返回Nexus7(前一个函数的相反方向),然后我将循环遍历所有设备adb devices并找出哪个匹配Nexus7.

UPDATE

我找到了一个解决方案,当我启动avd时指定端口号然后我知道哪个模拟器映射到哪个avd名称,但理想情况下我仍然想知道这里的答案.

ale*_*hov 7

使用telnet模拟器是可能的.不幸的是,它不是一个单独的命令,但一般来说,可以使用shell自动执行它.这是基本的想法:

  1. 查找模拟器的端口号(5554):

    $ adb devices
    List of devices attached
    emulator-5554   device
    
    Run Code Online (Sandbox Code Playgroud)
  2. Telnet到模拟器:

    $ telnet localhost 5554
    Trying 127.0.0.1...
    Connected to localhost.
    ...
    OK
    avd name
    Nexus7
    
    Run Code Online (Sandbox Code Playgroud)

Nexus7是avd名称.

另请参阅此答案,了解如何在一行中进行telnet:https: //stackoverflow.com/a/5608081


Ale*_* P. 0

  • 获取所有正在运行的模拟器进程的 PID 列表
  • 解析他们的命令行,收集 avd 名称
  • 检查这些进程打开的 tcp 端口
  • 将开放端口与adb devices输出进行匹配


归档时间:

查看次数:

5966 次

最近记录:

9 年,6 月 前