r14.2.9
r14.2.9 — r14.2.x 系列合并整理
发布日期:2026-07-23。状态:稳定版(r14.2 系列唯一发布,完整重启验证通过)。
本版本合并 r14.2.1–r14.2.8 的全部热路径优化、生命周期治理、无效 Hook/监听清理与绘制缓存,作为 r14.2 系列唯一稳定发布。r14.2.0、r14.2.4、r14.2.7 的历史内容已整合到本版本中。
生命周期与线程调度
StepCounterController.initContext改为静态持有TIME_TICK广播接收者,重复进入(如 SystemUI 重建)时先注销旧接收者再注册新接收者,防止接收者泄漏与重复查询步数。StepCounterController的Handler改用mContext.getMainLooper(),避免在无线程 Looper 的 Hook 线程上创建Handler失败。StepCounterController.removeStepViewByTag改用ArrayList.removeIf(),消除for循环中remove()可能触发的并发修改异常。
绘制热路径
BatteryIndicator.updateDisplaySize缓存mDensity与mStatusBarHeight,updateDrawable不再每次绘制时查询Resources.getDisplayMetrics()和解析status_bar_height资源 ID。BatteryIndicator.updateParameters移除每次调用时新建的Matrix对象,改为setImageMatrix(null)复用默认矩阵。
构建产物验证
versionCode127 /versionNamer14.2.9。- APK:
CustoMIUIzer-A14-r14.2.9.apk,2,886,165 B。 - SHA-256:
dabc71b2e5b5353f03ddf2ba513567888b6f87fc8f71994c3122dc3304cf6e10。 - 通过
gradlew test与gradlew assembleRelease;3 项单元测试通过,lintRelease0 错误、既有 ROM API 兼容性警告保持。 - 签名证书与 r14.2.7 一致,可直接覆盖升级。
r14.2.8 累积变更
热路径与偏好监听
MainModule偏好变化监听不再每次调用sharedPreferences.getAll()复制整个远程偏好表,改为根据PrefMap中已有值类型直接调用getBoolean/getInt/getString/getLong/getFloat/getStringSet单次读取;未命中或新键时回退到getAll(),显著降低设置项调整时的内存与 CPU 开销。GlobalActions.setupStatusBar内的MiuiFreeformModeController(PinningWindow,动作码 28)、SoScSplitScreenController(SplitScreen,动作码 29)与AutoBrightnessController(ToggleAutoBrightness,toggle 6)Hook 不再在任意自定义动作开启时全部注册,仅在对应动作被配置时才注册,进一步减少com.android.systemui中的无效 Hook 与 BroadcastReceiver。
无效/失效代码清理
- 移除
GlobalActions.mSBReceiverOpenVolumeDialog分支内被错误嵌套、永远不会执行的ToggleZenMode/ToggleNightMode子分支;这两个动作已由顶层分支正确处理。