Compose BOM 2026.01.01 上新:1.10.2 稳定补丁 + Material 3 1.4.0 重点能力梳理
前言
如果你在 Android 项目里使用 Jetpack Compose,BOM(Bill of Materials)是最稳的版本管理方式之一:
- 只声明一个 BOM 版本,Compose 相关依赖就能自动对齐。
- 降低“某个模块偷偷升了版本,结果运行时出问题”的概率。
截至 2026-02-06,Compose 官方文档中的示例 BOM 已更新到:
androidx.compose:compose-bom:2026.01.01androidx.compose:compose-bom-alpha:2026.01.01androidx.compose:compose-bom-beta:2026.01.01
这篇文章按“前言 → 版本速览 → 模块更新 → 迁移建议”的结构,快速讲清楚这个版本值不值得升、升了要注意什么。
Compose BOM 2026.01.01 速览
1)一句话结论
2026.01.01 是一个稳定补丁聚合版本:
- 核心 Compose 组(
animation/foundation/runtime/ui)对齐到1.10.2。 material3对齐到稳定版1.4.0。material3.adaptive对齐到1.2.0。
2)关键映射(官方 BOM Mapping)
| Compose 组 | 代表 Artifact | BOM 对应版本 | 发布说明 |
|---|---|---|---|
| Animation | androidx.compose.animation:animation | 1.10.2 | developer.android.com/jetpack/and… |
| Foundation | androidx.compose.foundation:foundation | 1.10.2 | developer.android.com/jetpack/and… |
| Runtime | androidx.compose.runtime:runtime | 1.10.2 | developer.android.com/jetpack/and… |
| UI | androidx.compose.ui:ui | 1.10.2 | developer.android.com/jetpack/and… |
| Material (M2) | androidx.compose.material:material | 1.10.2 | developer.android.com/jetpack/and… |
| Material3 | androidx.compose.material3:material3 | 1.4.0 | developer.android.com/jetpack/and… |
| Material3 Adaptive | androidx.compose.material3.adaptive:adaptive | 1.2.0 | developer.android.com/jetpack/and… |
时间点参考:
1.10.2发布于 2026-01-28;material3:1.4.0发布于 2025-09-24。
主要更新(你真正会感知到的)
1)Animation 1.10:共享元素能力明显增强
虽然 BOM 映射到的是 1.10.2(补丁版),但 1.10 周期里动画能力升级很实用:
- Shared transition APIs 在 1.10 正式稳定。
- 新增
Modifier.skipToLookaheadPosition(),可在共享过渡中直接跳到目标位置。 - 支持动态启用/禁用 shared elements。
- 支持共享元素过渡的初速度(fling 场景更自然)。
- 为
AnimatedVisibility/AnimatedContent增加 veil layer 动画能力。
适用场景:详情页转场、卡片到全屏、图库过渡等“空间连续性”动画。
2)Foundation 1.10:性能和稳定性继续收敛
值得关注的两类变化:
- 性能方向:
isPausableCompositionInPrefetchEnabled在 1.10 周期默认启用,Lazy 列表预取更平滑、主线程压力更可控。 - 稳定性方向:
1.10.2修复了文本选择相关的崩溃(例如页面返回时有活动选区)。
如果你有长列表 + 重 Item 组合,升级后通常更容易获得稳定帧率。
3)Runtime 1.10:retain 体系成熟,补丁版更稳
Runtime 1.10 周期中,RetainedValuesStore 相关 API 经历了整理:
- 更强调通过 provider/registry 管理 retained values。
- 自定义 retained store 的接入方式有迁移成本(命名和安装方式变化较多)。
1.10.2主要是补丁整合,重点在稳定性。
如果你只是“正常使用 retain”,改动通常不大;如果你实现了自定义 store,建议对照 release notes 逐项迁移。
4)UI 1.10:焦点、测试与 Popup 行为更一致
1.10 周期里 UI 侧有几项很实用:
- 焦点分发优化(降低复杂焦点树下的额外开销)。
- 间接触控 API 命名统一到 indirect pointer 体系。
- Compose UI Test 对
effectContext、StandardTestDispatcher支持更清晰。 1.10.1修复了LookaheadScope+ pausable composition 崩溃,以及PopupPositionProvider坐标计算问题。
如果你的项目有 TV/键盘焦点、复杂 Popup 定位、或 UI 测试稳定性问题,这部分收益会比较明显。
5)Material3 1.4.0:组件能力升级最明显
material3:1.4.0 的变化量很大,重点看这几类:
- 图标策略变化:不再推荐
androidx.compose.material.icons作为主路径;且 Material3 不再自动依赖material-icons-core。 - 行为调整:
NavigationBarItem/NavigationRailItem的 active label 颜色策略有调整。 - 动效体系:组件开始采用
MotionScheme。 - 新组件/能力:
HorizontalCenteredHeroCarouselVerticalDragHandleSecureTextField/OutlinedSecureTextFieldText支持autoSizeTimePickerDialog- 新的 SearchBar API 拆分与状态控制
结论:如果你正在做 Material3 设计系统迭代,这一块是 BOM 2026.01.01 最值得关注的部分。
升级示例
1)Gradle Kotlin DSL
dependencies {
val composeBom = platform("androidx.compose:compose-bom:2026.01.01")
implementation(composeBom)
androidTestImplementation(composeBom)
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")
implementation("androidx.compose.material3:material3")
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}
2)如果你用 Version Catalog
libs.versions.toml 中把 BOM 改到:
[versions]
compose-bom = "2026.01.01"
[libraries]
androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" }
迁移与排坑建议
1)检查图标依赖
如果你之前“隐式”用到了图标,升级后建议显式声明:
implementation("androidx.compose.material:material-icons-core")
2)检查 retain 的自定义用法
有自定义 RetainedValuesStore 的项目,重点回看 Runtime 1.10 的 API 变更。
3)回归测试建议
- 重点回归
Popup定位、文本选择、导航返回。 - UI 测试项目可逐步尝试
StandardTestDispatcher,减少与生产调度模型差异。
4)版本策略建议
如果你追求稳定,优先跟 BOM 稳定版; 如果你要抢新特性(尤其 Material3 1.5.x alpha),建议单独分支验证再合入主干。
小结
Compose BOM 2026.01.01 的定位很清晰:
- 用
1.10.2把核心栈稳定性再打磨一轮; - 让 Material3
1.4.0的能力成为稳定可用基线。
对大多数业务 App 来说,这个版本属于“可以计划升级,并且收益可见”的一档。