背景
近期模拟器相关反馈分散在多个 Issue:
本 Issue 用于收敛模拟器启动参数和状态恢复策略,不重复替代上述问题的用户反馈。
当前可观察问题
- 静默模式和音频静音被混为一个概念。现有静默模式的用户预期是任务期间不显示模拟器窗口,但雷电 14 上老板键路径可能失效,失败后要等到最大等待时间才结束;同时没有独立的“启动后禁用模拟器声音”能力。
- 模拟器分辨率没有统一的启动策略或配置入口。用户无法指定任务启动时的目标分辨率,也无法确认启动后是否修改了模拟器实例配置。
- 雷电实例的状态轮询可能触发全局设置命令。当前前端会周期性轮询设备状态,状态查询路径同时执行
globalsetting --cleanmode,需要确认该写配置行为是否会放大分辨率、帧率等实例设置被重置的问题。
- 启动失败信息不完整。没有 returncode、stderr、实际执行参数和模拟器版本时,无法区分路径错误、实例不存在、CLI 崩溃或模拟器自身异常。
建议方案
1. 统一启动策略入口
在现有模拟器配置页面为每个模拟器实例提供唯一的启动策略入口,至少区分:
- 窗口可见性:任务静默时隐藏窗口,优先使用稳定的窗口句柄控制;不再把老板键作为唯一实现。
- 音频策略:启动后禁用模拟器声音,明确显示“该模拟器版本不支持”时不伪造成功。
- 分辨率策略:关闭、使用实例原值或指定目标分辨率;未启用时不得主动写入分辨率。
不要在全局静默开关、脚本配置和模拟器页面重复暴露同一个控制值;已有全局静默只保留为总开关,具体模拟器能力由该实例策略统一承接。
2. 按模拟器版本确认命令
实现前必须对 MuMu、雷电各支持版本执行本机 --help 或使用官方发行版文档确认参数。只有确认存在的 CLI 参数才能使用;若 CLI 不支持,应评估 ADB/vendor 配置或 Windows 窗口 API 兜底,并记录能力检测结果。
3. 解耦状态查询与写配置
把 globalsetting --cleanmode 从高频状态查询路径移到明确的配置变更或一次性启动准备阶段,且保证幂等。分辨率/音频策略只修改目标键,任务结束后按实例和原始值恢复,不能依赖与屏蔽广告开关绑定的整文件覆盖。
4. 完整诊断信息
启动失败日志至少包含脱敏后的可执行文件、关键参数、模拟器类型/版本、实例索引、returncode、stdout 和 stderr。窗口隐藏、分辨率设置或静音失败应立即给出 warning,并继续/终止行为由策略明确决定,不能静默等待到总超时。
验收标准
- 雷电 9.x 与 14(至少各一个可复现版本)分别验证窗口隐藏、音频静音和分辨率策略。
- MuMu 当前支持版本验证相同策略,并确认已有应用前台补启动和关闭流程不回归。
- 未启用策略时,实例原分辨率、帧率、关闭提示和其他用户设置保持不变。
- 连续状态轮询不会重复写入模拟器配置;日志可证明配置命令只在预期阶段执行。
- 模拟器 CLI 失败时,前端和日志能看到 returncode、stdout、stderr,且不泄露账号、Token 或完整敏感路径。
- 增加针对命令构造、能力不支持、配置恢复和静默失败的最小自动化测试,并补充真实模拟器矩阵测试记录。
关联 Issue
背景
近期模拟器相关反馈分散在多个 Issue:
dnconsole.exe启动崩溃时,界面只显示空的“命令执行失败”,缺少 returncode 和 stderr。本 Issue 用于收敛模拟器启动参数和状态恢复策略,不重复替代上述问题的用户反馈。
当前可观察问题
globalsetting --cleanmode,需要确认该写配置行为是否会放大分辨率、帧率等实例设置被重置的问题。建议方案
1. 统一启动策略入口
在现有模拟器配置页面为每个模拟器实例提供唯一的启动策略入口,至少区分:
不要在全局静默开关、脚本配置和模拟器页面重复暴露同一个控制值;已有全局静默只保留为总开关,具体模拟器能力由该实例策略统一承接。
2. 按模拟器版本确认命令
实现前必须对 MuMu、雷电各支持版本执行本机
--help或使用官方发行版文档确认参数。只有确认存在的 CLI 参数才能使用;若 CLI 不支持,应评估 ADB/vendor 配置或 Windows 窗口 API 兜底,并记录能力检测结果。3. 解耦状态查询与写配置
把
globalsetting --cleanmode从高频状态查询路径移到明确的配置变更或一次性启动准备阶段,且保证幂等。分辨率/音频策略只修改目标键,任务结束后按实例和原始值恢复,不能依赖与屏蔽广告开关绑定的整文件覆盖。4. 完整诊断信息
启动失败日志至少包含脱敏后的可执行文件、关键参数、模拟器类型/版本、实例索引、returncode、stdout 和 stderr。窗口隐藏、分辨率设置或静音失败应立即给出 warning,并继续/终止行为由策略明确决定,不能静默等待到总超时。
验收标准
关联 Issue