fix: 消除所有会导致STF断开连接的操作 - adb_connect移除kill-server硬重置(会断全网设备) - APK安装后不再adb_disconnect(IP:5555会断STF provider) - 扫描空闲设备不再adb connect/disconnect(直接标记空闲)
This commit is contained in:
+8
-5
@@ -9,13 +9,15 @@
|
||||
|
||||
设备连接策略(直连设备 IP:5555,完全绕过 STF occupy/release):
|
||||
- worker 运行中:跳过(避免打断任务)
|
||||
- 其他设备(自己占用/空闲/他人占用):直接 adb connect serial → install → disconnect
|
||||
- 其他设备(自己占用/空闲/他人占用):直接 adb connect serial → install
|
||||
不经过 STF,不会触发 STF agent 清理,安装的 app 会永久保留
|
||||
- 安装后**不主动 adb disconnect**:serial 是 IP:5555,STF provider 共享该地址
|
||||
的 adb transport,disconnect 会让 STF 误判设备离线并触发重连。
|
||||
- serial 格式为 IP:5555(设备本身的 adb 网络地址),STF 返回的 serial 即此格式
|
||||
|
||||
为什么不用 STF occupy/release:
|
||||
STF release 会触发 agent 清理设备(卸载第三方 app、清除数据、回桌面),
|
||||
导致刚安装的 app 被自动删除。直连设备完全绕过 STF,安装完断开连接即可。
|
||||
导致刚安装的 app 被自动删除。直连设备完全绕过 STF,安装完保持连接即可。
|
||||
"""
|
||||
import os
|
||||
import time
|
||||
@@ -28,7 +30,6 @@ from config import APK_DIR, ADB_PATH
|
||||
from core.logger import get_logger
|
||||
from core.models import db, ApkFile as ApkRow
|
||||
from .stf_client import STFClient
|
||||
from .adb_helper import adb_disconnect
|
||||
from .device_worker import get_all_worker_status
|
||||
|
||||
_log = get_logger("core.apk")
|
||||
@@ -349,8 +350,10 @@ class ApkManager:
|
||||
self._set_item(serial, "failed", str(e)[:200])
|
||||
_log.exception(f"[{serial}] 安装异常")
|
||||
finally:
|
||||
# 断开 adb 连接(不影响设备,app 永久保留)
|
||||
adb_disconnect(serial)
|
||||
# 不主动 adb disconnect:serial 是 IP:5555,STF provider 共享该地址的
|
||||
# adb transport,disconnect 会让 STF 误判设备离线并触发重连。
|
||||
# adb 连接保持即可,不影响设备和后续操作。
|
||||
pass
|
||||
|
||||
def _set_item(self, serial, status, msg=""):
|
||||
"""更新安装任务中某设备的状态。"""
|
||||
|
||||
Reference in New Issue
Block a user