首页 > 解决方案 > 设置安卓模拟器设备名称

问题描述

当我将手机连接到计算机并adb devices在控制台中使用时,我可以看到:

List of devices attached
XYZQWERTYXYZ device

当我将同一部手机连接到另一台电脑时,设备名称保持不变。

最近我开始使用MEMU模拟器。当我通过模拟器运行 android 实例时,会adb devices返回如下内容:

List of devices attached
127.0.0.1:21513 device

问题是当我想在另一台电脑上使用相同的 memu android 实例时。我可以导出和导入该实例,但设备名称在另一台电脑上可能不同,例如:

List of devices attached
127.0.0.1:21503 device

D:\Program Files\Microvirt\MEmu\MemuHyperv VMs\MEmu_1我在包含每个模拟器 android 实例的配置的位置找到了配置文件。在.memu文件中我可以找到这样的行:

<Forwarding name="ADB" proto="1" hostip="127.0.0.1" hostport="21513" guestip="10.0.2.15" guestport="5555"/>
<Forwarding name="MVD" proto="1" hostip="127.0.0.1" hostport="21511" guestip="10.0.2.15" guestport="21501"/>

hostport我想我可以通过将值更改为不同的值来强制 memu 在特定端口上运行 android 实例,例如

<Forwarding name="ADB" proto="1" hostip="127.0.0.1" hostport="21600" guestip="10.0.2.15" guestport="5555"/>

不幸的是,当我通过 MEMU 启动 android 实例时,主机端口又回到21513. 对此我有什么办法吗?

换句话说 -我想有机会确定设备名称。

标签: android-emulatoradbappiumemulationgenymotion

解决方案


使用最新的 Memu 进行测试,似乎 Memu 会按照设计在每次启动时恢复主机端口。

一个简单的解决方法是使用 Windows 防火墙转发端口,如下所示:

netsh interface portproxy add v4tov4 listenport=21600 listenaddress=0.0.0.0 connectport=21513 connectaddress=localhost
netsh advfirewall firewall add rule name="Port for Memu_0" dir=in action=allow protocol=TCP localport=21600

推荐阅读