3 前置条件检查表:设备连接状态、ADB 权限、MediaCodec 能力查询结果
适用场景
本检查表适用于任何开始 MediaCodec 硬件权限回归测试 前的环境就绪阶段。当测试机更换、系统升级、驱动刷新或回归基线触发时,必须按表逐项确认底层链路可用,避免因前置条件遗漏导致测试结论误判。
前置条件
- 已获取被测设备物理连接(USB / 网络 ADB)。
- 测试主机已安装 ADB 工具(版本 ≥ 1.0.41)。
- 被测设备未锁屏、未处于省电或飞行模式。
- 至少拥有设备级
shell权限(允许运行adb shell)。
操作步骤
- 确认设备连接状态
adb devices -l观察输出中设备状态是否为
device(而非unauthorized或offline),并记录设备序列号与型号。 - 验证 ADB 提权可用性
adb root adb shell "id"如果
adb root失败(常见于 user 版系统),则降级验证adb shell可正常执行且uid不为0时仍能调用 MediaCodec API(需后续步骤验证)。 - 查询 MediaCodec 硬件能力
adb shell dumpsys media.codec | grep -i "hw\|hardware\|decoder\|encoder"或使用专用测试工具:
adb shell am instrument -w com.android.mediaframeworktest/.MediaCodecCapabilityTest获取至少以下信息:支持的编解码器列表、最大分辨率/帧率、对齐要求、是否为硬件加速实现。
- 固化检查结果
将上述三步输出保存至
precheck_<serial>_<date>.log,作为后续回归测试的基线附件。
输入输出物
| 类别 | 输入物 | 输出物 |
|---|---|---|
| 硬件 | 被测安卓设备 + USB/data 线缆 | 设备连通性状态(on/off) |
| 软件 | ADB 可执行文件 + 测试主机驱动 | ADB 权限等级(root / shell / denied) |
| 能力 | 系统固件 + 编解码器驱动 | MediaCodec 能力矩阵(JSON / 纯文本) |
责任边界
- 测试工程师:按本检查表逐项执行并记录,若任一检查项不通过则停止后续回归并反馈开发/运维修复。
- 开发/系统组:提供
dumpsys media.codec无法覆盖的专有硬件编解码器信息;修复因系统镜像或驱动缺失导致的能力查询失败。 - 质量管理(QA):审计检查表记录是否完整并存档,确保回归测试的可追溯性。
记录材料(检查表模板)
| 检查项 | 通过标准 | 实际结果 | 备注 |
|---|---|---|---|
| 设备连接状态 | adb devices -l 显示 device | 序列号:______ | |
| ADB 权限 | adb shell id 可执行,uid≥0 | 若为 root,记录;若为 shell,确认后续步骤无需 root | |
| MediaCodec 查询结果 | 至少存在 1 个硬件编解码器且分辨率≥测试用例要求 | 附件日志:______ |
异常处理
⚠️ 常见异常及对策
- 设备状态为 unauthorised:授权弹窗超时或拒绝。重新插拔 USB 并在设备上点击“允许 USB 调试”。
- adb root 失败:user 版本系统无 root 权限。改用
adb shell执行后续命令,若系统限制权限,记录“非 root 模式”并标记回归范围。 - dumpsys media.codec 无输出:系统版本过旧或驱动崩溃。升级系统或使用
adb shell am instrument方式查询;仍失败则判定为“设备不兼容硬件编解码”,需降级回归或更换设备。 - 硬件编解码器列表为空:SoC 不支持或固件屏蔽。记录后终止回归测试,通知项目组评估影响。
验收标准
- 设备连接状态项:通过(device 状态)。
- ADB 权限项:通过(至少 shell 级可执行 id)。
- MediaCodec 能力查询项:通过(至少一个硬件编解码器且分辨率≥目标)。
- 检查表记录完整,并已保存日志附件。
- 若存在异常,已按异常处理流程记录并通知相关人员。
💡 前置条件思维导图 — 右侧 SVG 展示三项检查的递进关系与决策分支。
📌 最佳实践:将本检查表模板导出为
.xlsx 或 .md,每次回归前复制填写,配合自动化脚本可一步生成 precheck_result.json。