如何通过ADB断开模拟器连接并使其保持永久断开状态
解决步骤
1. 定位占用对应端口的进程
出现自动重连的核心原因是本地有进程持续监听5554、5556两个ADB默认扫描的模拟器端口,ADB服务每次重启都会扫描到对应端口并自动建立连接。
Windows环境下在终端执行如下命令,输出最后一列即为占用端口的进程PID:
netstat -ano | findstr :5554 netstat -ano | findstr :5556
macOS/Linux环境执行如下命令即可查询对应PID:
lsof -i :5554 lsof -i :5556
2. 终止占用端口的进程
拿到PID后执行对应命令终止进程:
Windows环境:taskkill /F /PID 替换为你查询到的PID数字
macOS/Linux环境:kill -9 替换为你查询到的PID数字
如果终止进程后设备重启再次复现问题,可以根据PID查询对应进程所属的软件,关闭该软件的开机自启,或者直接卸载无需使用的相关软件即可。
3. 重启ADB验证状态
执行如下命令重启ADB服务,确认设备列表不会再自动出现陌生模拟器:
adb kill-server adb devices -l
可选配置:禁用ADB自动端口扫描
如果后续不需要频繁连接本地模拟器,可以通过配置环境变量关闭ADB的本地端口自动扫描逻辑,从根源避免类似问题:
- Windows:新增系统环境变量
ADB_LOCAL_TRANSPORT_MAX_PORT,值设置为5553,低于ADB默认扫描的起始端口5554即可 - macOS/Linux:在shell配置文件(.bashrc/.zshrc等)中添加
export ADB_LOCAL_TRANSPORT_MAX_PORT=5553,保存后执行source 对应配置文件路径生效
内容的提问来源于stack exchange,提问作者Matthew Fisher
相关产品推荐
相关产品推荐

