fix: 消除所有会导致STF断开连接的操作 - adb_connect移除kill-server硬重置(会断全网设备) - APK安装后不再adb_disconnect(IP:5555会断STF provider) - 扫描空闲设备不再adb connect/disconnect(直接标记空闲)
This commit is contained in:
+8
-12
@@ -279,20 +279,16 @@ class _ForegroundScanner:
|
||||
return None
|
||||
|
||||
def _scan_free(self, serial):
|
||||
"""空闲设备:轻量 adb connect serial 查询(单次尝试,不 kill-server)。
|
||||
"""空闲设备:不扫描前台 App,直接返回"空闲"。
|
||||
|
||||
serial 通常为 IP:5555,若设备 5555 端口未开放则快速失败。
|
||||
绝不重试、绝不 kill-server,避免影响正在运行的 worker。
|
||||
原因:STF provider 内部通过 IP:5555 维持 adb 连接监控设备。
|
||||
外部 adb connect/disconnect IP:5555 会让 adb server 断开该地址的
|
||||
transport,连带 STF provider 的连接一起断,STF 误判设备 offline
|
||||
并触发重连——表现就是"一扫描前台 App 设备就离线、需要重连"。
|
||||
因此空闲设备绝不主动 adb connect/disconnect,只对运行中设备
|
||||
(走 STF 隧道端口,不动 5555)和自占设备(remoteConnect 隧道)扫描。
|
||||
"""
|
||||
try:
|
||||
if not adb_connect_light(serial):
|
||||
return "(不可达)"
|
||||
try:
|
||||
return get_foreground_app(serial)
|
||||
finally:
|
||||
adb_disconnect(serial)
|
||||
except Exception:
|
||||
return None
|
||||
return "空闲"
|
||||
|
||||
|
||||
# ================== 任务管理器 ==================
|
||||
|
||||
Reference in New Issue
Block a user