如何 adb 断开模拟器并保持断开状态?

How do I adb disconnect an emulator and keep it disconnected?

我以某种方式获得了几个通过 ADB 连接的 Android 模拟器,但我无法摆脱它们。

> adb devices -l
List of devices attached
emulator-5554          device product:sdk_gphone_x86 model:sdk_gphone_x86 device:generic_x86_arm transport_id:1
emulator-5556          device product:sdk_gphone_x86 model:sdk_gphone_x86 device:generic_x86_arm transport_id:2

当我 adb disconnect 它断开所有连接,但它们几乎立即恢复(增加 transport_id

当我 adb kill-server 然后 adb devices -l 它重新启动 adb 服务器(如预期的那样)并重新连接模拟器。我知道它从 5554 扫描偶数端口:https://developer.android.com/studio/command-line/adb#howadbworks

当我 运行 模拟器列出设备时,它们没有出现:

> .\emulator.exe -list-avds
Nexus_5_API_30
Pixel_2_API_29_x86_64
Pixel_4a_API_30
Tablet_API_30

我想我没有在本地安装另一个 Android SDK Emulator 套件。

我设法找到了 运行 模拟器的进程: 在 windows 上,使用 Powershell:

> Get-Process -Id (Get-NetTCPConnection -LocalPort 5554).OwningProcess

 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    134 4,074.23   1,998.07   2,544.47   12528   1 qemu-system-x86_64-headless

然后使用进程管理器终止它就可以了。

杀死模拟器的正确方法是:

adb -s emulator-5554 emu kill