emulator-recipe.md 2.2 KB

模拟器 CLI 配方(2026-08-23 实测验证)

模拟器 CLI:/Applications/DevEco-Studio.app/Contents/tools/emulator/Emulator(DevEco 26 自带)

关键发现:CLI 可以完整管理模拟器生命周期(无需 DevEco UI)

  1. 全局配置存于 ~/Library/Caches/Huawei/Emulator26.0/.emu_config:imagePath(镜像根)指向 ~/Library/Huawei/Sdk,emuPath(实例目录)指向 ~/.Huawei/Emulator/deployed
  2. 镜像安装:Emulator -install -deviceType 2in1 -osVersion 'HarmonyOS 6.0.0(20)'(写入 ~/Library/Huawei/Sdk/system-image/,数 GB)
  3. 可下载镜像查询:Emulator -imageList -deviceType 2in1(当前可用:5.0.5(17) ~ 6.1.1(24);HarmonyOS 7.0.0-B1 不在 CLI 通道,系 IDE Beta 通道专属,如需 26 镜像须从 Device Manager UI 下载)
  4. 实例管理:-create/-delete/-list -details/-start/-stop/-instance(含 -screenshot、-rotation 等控制)
  5. -start 支持 -noWindow(无头)与 -hdcPort(10000~16555)

之前启动失败的根因(三层,均已查明)

策略决定

  • 主力验证机:自建 2in1 实例 + HarmonyOS 6.0.0(20) 镜像——正好等于 compatibleSdkVersion,一举解决 API 20 行为无法本地验证的问题(此前只能靠编译期检查+真机回归)
  • 用户的 MateBook Pro(7.0.0-B1)实例保留,作为 targetSdk=26 行为的补充验证(镜像由用户从 UI 补下即可)
  • 6.0.0(20) 模拟器 + 26 真机/模拟器 → 覆盖 compatible 与 target 两端,兼容性验证矩阵完整
问题 解法
1 用户实例 MateBook Pro 引用 7.0.0-B1 镜像,但镜像从未下载(imagePath 下为空) 装可下载镜像(6.0.0(20))并新建实例;或用户从 Device Manager UI 补下 Beta 镜像
2 harmonyos-mcp 的 emu_start 只传 -start ,遇到镜像缺失时报错含混(already running/uuid file),DevEco 26 下不可靠 我们自建 CLI 调用层;harmonyos-mcp 其余工具(build/install/screenshot/uitest)不依赖其 emu_start
3 DSH 沙箱拦截对 ~/Library 的写入 → 镜像 zip 写入失败(exit 0 但实际失败,注意甄别) 镜像安装命令需 danger-full-access 权限运行