fix: 消除所有会导致STF断开连接的操作 - adb_connect移除kill-server硬重置(会断全网设备) - APK安装后不再adb_disconnect(IP:5555会断STF provider) - 扫描空闲设备不再adb connect/disconnect(直接标记空闲)

This commit is contained in:
2026-08-07 15:43:17 +08:00
parent b0f808fb8c
commit 186bded9d9
3 changed files with 21 additions and 29 deletions
+5 -12
View File
@@ -74,20 +74,13 @@ def adb_connect(remote_adb_url, retries=5):
首次常因认证握手未就绪报 failed to authenticate,第2次重试通常 already connected。
STF remoteConnect 启用后端口监听可能需要几秒,所以重试间隔递增。
若全部重试失败,做一次 kill-server 硬重置后再试(long-running 进程的 adb daemon
可能状态坏掉,必须重置)。硬重置在全局锁内,会短暂影响并发 worker,但只在万不得已时触发。
**绝不 kill-server**:kill-server 会断开所有设备的 adb transport,
导致 STF provider 对全部设备误判离线并触发重连,影响所有运行中的任务。
连接失败就返回 False,由调用方处理(标记任务失败,不影响其他设备)。
"""
with _ADB_LOCK:
if _try_connect(remote_adb_url, retries):
return True
# 全部失败,硬重置 adb server
_log.warning(f"{remote_adb_url} 重试耗尽,执行 kill-server 硬重置")
_adb("kill-server")
time.sleep(2)
_adb("start-server")
time.sleep(2)
return _try_connect(remote_adb_url, 3)
return False
return _try_connect(remote_adb_url, retries)
def _try_connect(remote_adb_url, retries):