首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Emulator运行后如何获取序列号或ID?

Android Emulator运行后如何获取序列号或ID?
EN

Stack Overflow用户
提问于 2010-02-07 03:23:02
回答 3查看 24.2K关注 0票数 12

如果我在一台机器上使用-no-window选项运行多个模拟器。命令"adb devices“显示:

代码语言:javascript
复制
List of devices attached
emulator-5554  device
emulator-5556  device
emulator-5558  device
...

但是,根据这个输出,我根本无法区分每个仿真器设备之间的区别。我需要知道哪个仿真器在什么AVD上运行,然后我才能安装APK或向仿真器发送命令。

如何识别每个仿真器设备或在仿真器运行后获取仿真器的序列号?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-08 07:53:58

总是在相同的端口上启动相同的AVD,不要让仿真器决定。使用

代码语言:javascript
复制
$ emulator -ports X,Y @avd_X

然后,序列号将是emulator-Xavd_X将始终位于端口X,Y上,因此您可以使用此序列号运行命令,例如

代码语言:javascript
复制
$ adb -s emulator-X shell cmd

要终止仿真器运行

代码语言:javascript
复制
$ adb -s emulator-X emu kill
票数 30
EN

Stack Overflow用户

发布于 2017-02-04 17:24:48

据我所知,有两种方法可以执行AVD名称的反向序列号查找

Telnet选项-丑陋的方式

正如在这篇SO answer中指出的.您可以使用Telnet反向查找每个序列号的AVD名称。这有点弱,因为您所做的只是查找给定特定AVD名称启动的仿真器的实例。它不能唯一地标识您要使用的仿真器。它还需要使用telnet并解析出每个仿真器的端口号。

首先获取当前运行的序列号

代码语言:javascript
复制
adb devices

然后telnet到每个设备的端口号

代码语言:javascript
复制
telnet localhost 5554

并发出以下命令

代码语言:javascript
复制
avd name

它将返回该仿真器的AVD名称。

UUID选项-正确的方式

我最初在一个名为DCMTK的项目中看到了这一点。生成一个UUID uuidgen并在启动时在模拟器上设置一个属性!我的示例启动一个模拟器,对需要在目标上运行代码以确定类型信息的库执行一些编译时检查。

代码语言:javascript
复制
emulator -avd nexus19-arm -no-window -no-boot-anim -noaudio -prop emu.uuid=7a6f8701-43c2-4e16-988a-8b4992c0bf8d >/dev/null </dev/null 2>&1 &

然后,当您想要查找该仿真器的特定实例时,只需滚动所有正在运行的仿真器并查找该UUID。

代码语言:javascript
复制
adb -s emulator-5556 shell getprop emu.uuid

在循环中:

代码语言:javascript
复制
for SERIAL_NUMBER in `adb devices| grep emulator| cut -f1`; do 
    UUID=`adb -s ${SERIAL_NUMBER} shell getprop emu.uuid | tr -d '\r\n'`
    echo ${SERIAL_NUMBER} ${UUID}
done

跟踪整个仿真器生命周期

使用UUID property

  • Then启动仿真器启动一个循环,该循环检查每个设备是否在线和/或是否具有匹配的UUID

  • 一旦您收到匹配的调用adb -s ${SERIAL_NUMBER} wait-for-device,您就知道何时可以与仿真器通信

  • 如果您需要系统完全联机检查属性adb -s ${SERIAL_NUMBER} wait-for-device,只需使用adb -s ${SERIAL_NUMBER} emu kill

终止仿真器

票数 5
EN

Stack Overflow用户

发布于 2010-02-07 04:35:17

相同的字符串(例如,emulator-5554)显示在仿真器窗口的标题栏中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2214377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档