Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 3.88 KB

hyperos-sync-verification.md

File metadata and controls

68 lines (52 loc) · 3.88 KB

HyperOS 状态栏同步验证

日期:2026-11-10。模块:12.1.1(versionCode 66)。

设备与范围

  • Xiaomi MIX Fold 2(22061218C / zizhan),外屏 1080 × 2520。
  • HyperOS OS3.0.8.0.VLRCNXM,Android 15,LSPosed 注入 SystemUI。
  • 实测为已充电状态,普通电池图标;绿色填充保留系统 RGB。
  • 本轮未对内屏、分屏、空心电量样式、低电量 / 省电状态或 ColorOS 做实机回归。

变更对应的检查

  1. 从设备提取 SystemUI,核对 DarkIconDispatcherImpl 分发顺序和 MiuiClock#updateLightDarkTint 的区域 / 非 tint 模式规则。
  2. 确认 MiuiBatteryMeterIconView#onDraw 先画缓存的填充位图,再直接画外框。 因此检查 Drawable tint 之外,也必须记录和核对实际位图重建结果。
  3. 构建、APK 签名验证成功,安装后日志显示 12.1.1 及 dispatcher 三个入口挂载成功; 普通电量图标包含 onDraw 在内共 3 个挂载点。
  4. 以临时测试应用分别触发同一 Activity 内明暗切换、两个 Activity 间切换和快速反复切换。 录屏明确选择外屏物理显示 ID,避免折叠屏默认录制另一块物理屏幕。

充电绿色填充与外框

临时配置为 color_dark=#5F808080、color_light=#FF808080、alpha=100。 两组采用相同 RGB,只改变 alpha,从而分别观察绿色填充和外框的透明度变化。 测试应用在黑 / 白背景之间切换 6 次,间隔 650ms。

逐帧使用录屏 PTS,分别取时钟、外框和绿色填充的像素样本。每个背景段内, 以该段开始和稳定后的像素值归一化,并比较超过变化幅度 10% 的首帧:

切换 时钟首次变化 PTS(ms) 外框首次变化 PTS(ms) 绿色填充首次变化 PTS(ms)
深 → 浅 2304.31 2304.31 2304.31
浅 → 深 2948.51 2948.51 2948.51
深 → 浅 3477.78 3477.78 3477.78
浅 → 深 4313.09 4313.09 4313.09
深 → 浅 4906.60 4906.60 4906.60
浅 → 深 5518.72 5518.72 5518.72

这验证了上述样本的首次变化同步。录屏采样、视频压缩和向量自身的抗锯齿会影响像素阈值, 不能把这一结果解释为所有场景下均有精确到毫秒的零延迟保证。

恢复用户配置后的检查

  • 原配置:enable=true、color_dark=#5FFFFFFF、color_light=#FF000000。
  • 两个 Activity 明暗交替 4 次,间隔 650ms;与快速切换合并为最终产物回归录屏。
  • 单 Activity 快速明暗切换 30 次,间隔 70ms;检查稳定后颜色没有回退。
  • 系统设置 → WLAN → 返回 → 桌面,循环 3 次。
  • 临时关闭模块映射录制原生对照,随后恢复原配置。
  • 最终检查模块异常日志为空,SystemUI 进程在最终产物回归期间保持同一 PID。
  • 静止场景检查额外排除了一次重绘循环:烘焙记录由重建前后的钩子维护, 不再依赖不一定存在的 Drawable tint getter。最终静止 3 秒录屏仅产生 5 帧, 与状态栏时钟 / 数值更新相符;该检查用于发现多余重绘,不作为跨设备性能基准。
  • 临时测试应用已卸载,设备返回桌面,配置镜像内容恢复原样。

本地调试产物

以下文件位于被 Git 忽略的 .work/,不包含在发布 APK 内:

  • alpha-gray-final.mp4、alpha-gray-final.samples.json:透明度测试及逐帧像素样本。
  • alpha-gray-final.timings.json:填充与外框的阈值变化时刻对照。
  • final-regression.mp4:恢复配置后的应用间切换与 70ms 间隔快速切换。
  • final-settings.mp4:设置、WLAN、返回桌面切换。
  • native-same.mp4:关闭模块映射的原生对照。
  • sync-probe/build_probe.py、analyze_probe.py:本次设备测试应用与分析脚本。

构建输出为仓库根目录的 StatColor-12.1.1.apk,已覆盖安装并重启 SystemUI 加载。