3 前置条件检查表:设备连接状态、ADB 权限、MediaCodec 能力查询结果

适用场景

本检查表适用于任何开始 MediaCodec 硬件权限回归测试 前的环境就绪阶段。当测试机更换、系统升级、驱动刷新或回归基线触发时,必须按表逐项确认底层链路可用,避免因前置条件遗漏导致测试结论误判。

前置条件

  • 已获取被测设备物理连接(USB / 网络 ADB)。
  • 测试主机已安装 ADB 工具(版本 ≥ 1.0.41)。
  • 被测设备未锁屏、未处于省电或飞行模式。
  • 至少拥有设备级 shell 权限(允许运行 adb shell)。

操作步骤

  1. 确认设备连接状态
    adb devices -l

    观察输出中设备状态是否为 device(而非 unauthorized 或 offline),并记录设备序列号与型号。

  2. 验证 ADB 提权可用性
    adb root
    adb shell "id"

    如果 adb root 失败(常见于 user 版系统),则降级验证 adb shell 可正常执行且 uid 不为 0 时仍能调用 MediaCodec API(需后续步骤验证)。

  3. 查询 MediaCodec 硬件能力
    adb shell dumpsys media.codec | grep -i "hw\|hardware\|decoder\|encoder"

    或使用专用测试工具:

    adb shell am instrument -w com.android.mediaframeworktest/.MediaCodecCapabilityTest

    获取至少以下信息:支持的编解码器列表、最大分辨率/帧率、对齐要求、是否为硬件加速实现。

  4. 固化检查结果

    将上述三步输出保存至 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 展示三项检查的递进关系与决策分支。
前置条件检查流程图 开始 检查设备连接状态 验证ADB权限可用 查询MediaCodec硬件能力 ?全部通过 通过→进入回归 失败→异常处理 职责说明 • 绿:连通性检查 • 紫:权限验证 • 橙:能力查询 • 红:决策与异常
📌 最佳实践:将本检查表模板导出为 .xlsx 或 .md,每次回归前复制填写,配合自动化脚本可一步生成 precheck_result.json。