2. 测试环境与前置条件

本章定义执行 AOSP Framework 帧率抖动回归测试所需的硬件、软件、系统参数及基线状态。所有参与测试的设备和模拟器必须通过本阶段前置条件核查,否则后续测试结果无效。

核心原则:帧率抖动对系统负载、温度、刷新率极端敏感,任何环境变量未收敛都可能导致归因错误——必须先收敛环境,再执行测试。

2.1 适用场景

  • 回归测试:Framework 层代码变更(如 SurfaceFlinger、Choreographer、VSync 调度、Input 分发)后的抖动对比验证。
  • 兼容性验证:同一套 AOSP 原生代码在不同设备形态(手机/平板/车载)上的帧率稳定性。
  • 系统基线建立:新版本 AOSP 发布前,确立“无代码变更”场景下的抖动基准。
  • 温控/省电策略影响评估:验证温度触发降频或电池模式切换后抖动的劣化幅度。

2.2 前置条件

2.2.1 设备选型

类型推荐型号/版本适用场景限制
AOSP 原生设备Pixel 6/7/8(AOSP 构建)帧率抖动精确测量需解锁 bootloader、刷入 userdebug 或 eng 版本
GCE 模拟器Android 14/15 AOSP x86_64 镜像无实体设备时的快速回归不反映真实 GPU vsync 和温控行为,仅用于 Smoke Test
自定义开发板RK3588、SDM845 等 AOSP 移植板特定硬件平台验证必须保证帧率可测量(支持 dumpsys SurfaceFlinger 或 Perfetto)

2.2.2 系统版本

  • 测试对象系统版本必须固定为 AOSP TagID(例如 android-14.0.0_r35),并在测试全周期内不升级。
  • 若使用模拟器,须指定 同一 build ID 的 system.img 和 ramdisk.img。

2.2.3 屏幕刷新率

  • 强制锁定为 固定刷新率(60 Hz 或 90 Hz),禁止使用 Auto 或 Adaptive 模式。
  • 验证命令:
adb shell settings put system peak_refresh_rate 60.0
adb shell settings put system min_refresh_rate 60.0
adb shell dumpsys display | grep "ActiveDisplayMode"
  • 如果设备支持可变刷新率(VRR),必须通过开发者选项或 settings 命令强制禁用,否则抖动指标将因刷新率跳变而失真。

2.2.4 温控状态

  • 设备必须在 室温 25±2°C 环境下静置至少 10 分钟,电池温度 ≤ 38°C(通过 /sys/class/thermal/thermal_zone*/temp 读取)。
  • 若使用模拟器,忽略温控项,但需在记录中标注 “Simulator – thermal control disabled”。

2.2.5 电池模式

  • 电池模式必须设置为 均衡(或 “Performance”),禁止节能模式。
  • 设置命令:
adb shell cmd battery set status 1     # 模拟充电状态
adb shell cmd power set-mode 0         # 0=性能模式
# 验证:
adb shell dumpsys battery | grep "power save mode"
避坑提醒:部分设备(如 Pixel 6)在插入 USB 调试时默认进入“限制充电”模式,可能导致 CPU 频率受限。务必使用 adb shell echo 1 > /sys/class/power_supply/usb/charge_type 或外接可调电源保证充足供电。

2.3 环境验证流程图(SVG)

下图概括测试环境前置条件的检查顺序和决策点。在每个检查节点未通过时,必须修正确认后方可进入下一环节。

测试环境前置条件检查流程 开始环境检查 设备选型确认 环境参数设置组 系统版本固定 TagID 锁定 屏幕刷新率 60/90Hz 固定 温控状态 ≤38°C / 室温 电池模式 均衡/性能模式 全部通过 → 进入测试执行 异常处理 说明:模拟器可跳过温控和刷新率固定步骤,但必须在测试记录中标注。 所有前置条件未通过时,应回归修正环境参数,不得跳过继续执行。

2.4 输入输出物

类别输入输出
设备配置设备型号、序列号、AOSP TagID环境检查清单(已勾选)
系统参数刷新率、电池模式、温控读数截图前置条件确认报告(PDF / Markdown)
环境日志dumpsys display、dumpsys battery、thermal_zone 输出环境快照存档(logcat + shell 输出文件)

2.5 责任边界

  • 测试工程师:负责执行环境配置,确保设备满足前置条件;记录环境快照;对模拟器标注软限制。
  • 环境管理员(若由中台提供):负责维护设备温控房、电池充电状态、AOSP 镜像一致性;提供已验证设备清单。
  • 开发责任人:在回归测试前确认设备系统版本符合预期 TagID,并协助解决环境配置 bug。

2.6 记录材料

每次回归测试必须生成以下记录,存入项目共享目录 env_check/yyyymmdd/:

  1. env_checklist.md – 所有前置条件的逐项核对,标记 PASS/FAIL。
  2. env_snapshot.txt – 执行命令的原始输出(包含时间戳)。
  3. device_photo.jpg – 如果使用实体设备,拍摄设备正面(显示固件版本、刷新率设置页)以作视觉证据。

2.7 异常处理

异常场景处理动作结果判定
设备电池温度 > 40°C停止测试,设备静置降温至 38°C 以下;若 15 分钟内无法恢复,标记环境 FAIL环境 FAIL,禁止进入测试
刷新率无法锁定(始终 Auto)检查设备固件及驱动;若无法修复,降级使用模拟器基线对比降级到 Smoke Test 级别
模拟器无法获取真实帧率确认使用 -gpu swiftshader_indirect 渲染;若依然失败,标记为 “Unmeasurable”跳过该设备,仅记录问题
电池模式切换失败检查电源管理 SELinux 权限;无 root 设备可改用 Android Debug Bridge 强制设置强制设置后需重启 adbd 验证

2.8 验收标准

  • 设备类型、系统版本、刷新率、温控、电池模式五项前置条件全部通过(PASS)。
  • 环境快照存档完整且可在同一台设备上复现。
  • 异常处理记录清晰,未被忽略的 FAIL 项不得进入后续测试步骤。
  • 模拟器测试必须在报告中首行醒目标注 “Simulator – results may not represent real device behavior”。