文章目录
-
-
- **一、代码架构概述**
-
- 代码结构概述
-
- Shell模式执行(`ExecuteCommandInternalAsync`)
- 普通命令执行(`ExecuteCommandNormalAsync`)
- 详细逐行分析
- 成员变量
- ExecuteCommandInternalAsync方法(Shell模式)
- 1. **命令预处理**
- 2. **资源检查和锁获取**
- 3. **Shell进程初始化**
- 4. **输出收集设置**
- 5. **命令执行和结束标记**
- 6. **等待结果或超时**
- 7. **资源清理**
- ExecuteCommandNormalAsync方法(普通模式)
- **二、关键逻辑分析**
-
- **Shell交互模式 (`ExecuteCommandInternalAsync`)**
-
- **文本版流程图**
-
- **普通单次模式 (`ExecuteCommandNormalAsync`)**
-
- **核心特点**
- **最佳适用场景**
- **典型使用案例**
- **关键对比维度**
一、代码架构概述
1. 双模式设计
- Shell 模式 (
ExecuteCommandInternalAsync
) - 通过长连接的
_shellProcess
复用 Shell 会话,适合高频命令交互(如 adb shell
子命令)。 - 使用
SemaphoreSlim
保证线程安全,避免并发写入冲突。
- 普通模式 (
ExecuteCommandNormalAsync
) - 每次命令创建独立进程,适合一次性操作(如
adb install
)。 - 通过
_processLock
管理进程生命周期。
2. 核心组件