Jetpack Compose BOM 2026.02.01 解读与升级指南

📅 发布时间:2026/7/5 15:48:23 👁️ 浏览次数:
Jetpack Compose BOM 2026.02.01 解读与升级指南
Jetpack Compose BOM 2026.02.01 深度解析这次升级到底更新了什么值不值得跟如果你最近准备把项目里的 Compose 依赖统一升到androidx.compose:compose-bom:2026.02.01先说结论这不是一波“新能力井喷”的大版本 BOM而是一版很典型的稳定性补丁 BOM。它的核心价值不在于一次性塞进大量新 API而在于把 Compose1.10这一代已经落地的新能力用一组更稳的 patch 版本重新打包给你。对于线上项目来说这种版本往往比“看起来更炫”的版本更值得重视新功能不一定是每天都能用上的但修掉布局回归、补齐运行时和 UI 侧补丁、把 BOM 对齐到更稳定的一组 artifact通常直接影响的是发布风险和排障成本。本文基于 Android 官方文档、AndroidX release notes、Android Developers Blog 等一手资料整理重点回答 4 个问题2026.02.01到底映射到了哪些 Compose 版本它相对上一版2026.02.00具体变了什么这些变化对实际工程能力提升在哪里项目升级时有哪些容易踩的适配点。先说结论Compose BOM 2026.02.01的主变化是把 Compose 核心模块族从1.10.3对齐到1.10.4。material3在这版 BOM 里没有继续升级仍然是1.4.0。material3-adaptive这条线也没有变仍然是1.2.0。从官方 release notes 来看foundation 1.10.4明确修了一个布局定位回归runtime/ui/material/animation 1.10.4没有列出新的公开 API 变化更像一组维护性 patch。这是基于官方 changelog 颗粒度做出的工程判断不是 Google 原文的直接表述。如果你此前已经上了2026.02.00这次升级的重点是“补丁”和“稳定性”如果你还停在更早的2025年末版本那你实际上会连同 Compose1.10、Material31.4这一波能力一起吃进来。这版 BOM 映射到了什么Compose BOM 的职责是帮你把一组 Compose 相关 artifact 锁到一套经过官方验证的兼容版本组合里。它不包含 Compose Compiler这一点在官方 BOM 文档里说得很明确。结合官方 BOM Mapping 页面2026.02.01可以概括为下面这张表模块族2026.02.012026.02.00变化判断animation1.10.41.10.3升级补丁foundation1.10.41.10.3升级补丁material1.10.41.10.3升级补丁runtime1.10.41.10.3升级补丁ui1.10.41.10.3升级补丁material31.4.01.4.0无变化material3-adaptive1.2.01.2.0无变化这里说的“模块族”不只是单个 artifact而是一整串同代模块例如ui族通常包含ui、ui-graphics、ui-text、ui-tooling、ui-test-junit4等foundation族通常包含foundation、foundation-layoutruntime族通常包含runtime、runtime-livedata、runtime-rxjava*animation族通常包含animation、animation-core、animation-graphicsmaterial指的是经典 Compose MaterialM2线material3和material3-adaptive维持独立节奏。换句话说这版 BOM 的核心动作其实很清楚把 Compose 核心运行栈整体抬到1.10.4但不动 Material3 主版本。相比 2026.02.00具体更新了什么1.foundation修了一个真实会影响界面的定位问题在官方foundationrelease notes 里1.10.4明确提到修复了一个回归当一个对齐类 modifier 被错误地用在它不属于的 scope 中时之前版本可能会触发错误布局位置1.10.4对这个问题做了修复。这个改动看起来不“炫技”但对线上项目非常重要。因为这类问题往往最麻烦编译不报错页面也不是全挂只在特定组合布局、特定修饰链、特定设备尺寸下才出现“怎么这里偏了一点”的问题最后调半天才发现不是业务代码逻辑而是底层布局行为的回归。如果你的项目里有比较多自定义布局、复杂 slot API、嵌套Box/Column/Row/Lazy*布局再加上扩展 modifier 比较多这个修复是有实际价值的。2.runtime官方写明“和 1.10.3 没有变化”runtime 1.10.4的官方 release notes 很直接There are no changes in this release.这意味着什么如果你只看runtime模块本身这次从1.10.3到1.10.4不会带来新的运行时语义变化它更多是在 BOM 层面把整个 Compose 版本集重新对齐对项目升级而言runtime不是这次最需要重点回归验证的模块。3.ui/material/animation更像同步补丁与维护性发布从对应的 AndroidX release notes 页面来看ui 1.10.4没有列出额外的显性 API 变更摘要material 1.10.4也没有单独列出显著变更说明animation 1.10.4在 release 页面上同样没有像大版本那样给出新的能力条目。因此比较稳妥的工程判断是这几个1.10.4更像一组维护性 patch / 同步发布而不是新的功能迭代节点。这里还是强调一下这句话是基于官方 release notes 未列出新增 API / 新特性摘要的推断。如果你需要逐 commit 追踪可以继续顺着各 release notes 页里的 change list 链接深挖但就日常升级决策来说这个粒度已经足够判断风险级别。4.material3这版 BOM 不动仍然停在 1.4.0这点很关键。很多同学看到 BOM 版本号继续往2026.02.01走会下意识以为 Material3 也一起升了。实际上没有。按官方映射页这一版里androidx.compose.material3:material3仍然是1.4.0androidx.compose.material3.adaptive:*仍然是1.2.0。所以如果你这次升级之后感觉 Material3 API 没有新增那不是你姿势不对而是BOM 本身就没有把 Material3 再往前推。那“能力提升”体现在哪如果只盯着2026.02.01对2026.02.00的 diff你会觉得“这不就是个 patch 吗”。这判断没错但不完整。更准确地说这版 BOM 的价值分成两层短期价值把核心 Compose 族对齐到更稳的1.10.4平台价值把 Compose1.10和 Material31.4这一代的能力打包到一个更适合生产落地的组合上。下面这部分才是程序员真正关心的“升了以后我能干嘛”。1. Lazy 布局和滚动链路更成熟了根据 Android Developers Blog 对 Compose1.10的总结Google 在这一代继续强化了性能路线几个点很值得关注Pausable Composition已默认用于 Lazy 布局的预取官方给出的内部 benchmark 显示某些滚动场景下 Compose 已能达到和传统 View 非常接近的性能水平这意味着在复杂列表、卡片流、瀑布式 feed、首页混排场景里Compose 的“流畅度心理门槛”又往前迈了一步。对于业务开发来说这种能力提升不是“我今天多了一个 API”而是你更敢把复杂首页从 RecyclerView 迁到 Compose你在做首屏预取、异步图片、嵌套列表时调优空间更大同样一套 UI 结构达到稳定 60fps / 120fps 的难度在下降。2. 状态保存模型更细了retain填上了中间层Compose1.10里新增了retainAPI。官方的定位很明确它位于remember和rememberSaveable之间。这对大型页面尤其有意义。过去很多场景都很尴尬remember生命周期太短离开组合就没了rememberSaveable又偏“跨配置变化/进程恢复”的重量级持久化路径中间缺一个“离开当前组合树但暂时还想留住”的状态层。retain的意义就在这里。你可以把它理解为为复杂导航栈、可回收页面、短时脱离组合的内容提供一个更合理的状态存活层级。如果你的项目里有这些模式这项能力很实用多 Tab 页面切换底部导航多 back stack局部内容被回收后重新挂载大表单 / 编辑页中间状态不想轻易丢。3. Shared Element / Lookahead 这一套更能上生产了Compose1.10在动画侧最像“能力升级”的部分是共享元素与 Lookahead 相关 API 的继续完善。官方博客提到的点包括可以在运行时启用或禁用共享元素Modifier.skipToLookaheadPosition让空间位置同步更灵活过渡动画支持初始速度支持 veiled shared bounds 这类更接近真实产品需求的过渡模式。如果你做的是下面这些页面这一代动画 API 的成熟度提升会比较明显列表到详情页的跨屏转场卡片展开 / 收起Hero image、视频封面、头像转场大屏多面板布局里跨容器的视觉连贯动画。而从animation 1.10.4只是跟进 patch 这一点也能看出Google 这一阶段更像是在把1.10这一代能力往稳定期推进而不是继续大开大合地扩 API。4. Material31.4.0的价值很多人低估了虽然2026.02.01没有继续升级material3但只要你项目还没吃上1.4.0这一版 BOM 仍然值得关注。根据官方material3release notes 和 Android Developers Blog1.4.0这代比较有感的能力包括基于state-based TextField的新文本输入体系SecureTextField/OutlinedSecureTextField更适合密码、敏感信息输入Text的autoSize能力HorizontalCenteredHeroCarouselTimePicker在 picker / input 模式之间切换新的纵向拖拽手柄vertical drag handle一批曾经实验性的 Material3 API 进入稳定状态一些性能优化已经进入正式版。这组能力对真实业务非常有价值输入组件更接近现代应用的复杂表单需求安全输入不再需要大量自定义封装自适应排版在标题、卡片、横幅类组件里更好落地内容型首页可以更方便地做 Hero Carousel 一类强运营模块时间选择器的可用性更好。对工程侧的实际收益可以怎么理解如果只用一句话总结2026.02.01不是“让我今天马上能写出完全不同 UI”的版本而是“让 Compose 这条生产链更稳、更敢大规模用”的版本。把收益拆开看会更清楚收益 1列表、复杂布局和动画的生产风险更低foundation 1.10.4修正布局回归直接降低界面错位风险1.10代的性能和动画能力已经明显更适合生产对复杂首页、商城、内容流、社交 feed 这类页面更友好。收益 2状态管理更贴近大型应用架构retain提供了比remember更长、比rememberSaveable更轻的状态层级对 Navigation、多 back stack、复杂编辑流尤其有帮助可以减少很多“到底是存在 ViewModel 里还是存在 rememberSaveable 里”的别扭设计。收益 3输入与 Material3 组件更可用新 TextField 能力和 SecureTextField 让表单页收益明显autoSize 和 Carousel 等能力让内容型设计更容易实现如果你在推进 design system 的 Compose 化1.4.0是个比1.3.x更成熟的落点。升级方式依赖应该怎么写最标准的写法还是直接上 BOMkotlin体验AI代码助手代码解读复制代码dependencies { val composeBom platform(androidx.compose:compose-bom:2026.02.01) implementation(composeBom) androidTestImplementation(composeBom) implementation(androidx.compose.ui:ui) implementation(androidx.compose.foundation:foundation) implementation(androidx.compose.material3:material3) debugImplementation(androidx.compose.ui:ui-tooling) androidTestImplementation(androidx.compose.ui:ui-test-junit4) }如果你用 Version Catalog也建议只在 catalog 里声明 BOM 版本把具体 Compose artifact 写成无版本号依赖避免手滑把单个模块拉出对齐范围。升级适配要点这些地方一定要看1.先记住BOM 不管 Compose Compiler这是很多项目升级时最容易搞混的点。官方文档明确说明Compose Compiler 不包含在 Compose BOM 里。同时官方 Compose Compiler 文档又补了一条很关键的信息从Kotlin2.0开始Compose Compiler 由 Kotlin 仓库统一管理推荐直接使用 Compose Compiler Gradle plugin并让它和 Kotlin 版本保持一致。也就是说升compose-bom不等于 compiler 自动一起升如果你已经在 Kotlin2.0优先走官方推荐的org.jetbrains.kotlin.plugin.compose如果你还停在旧 Kotlin 版本升级前要核对 compiler compatibility map不要只盯着 BOM。一个典型配置如下kotlin体验AI代码助手代码解读复制代码plugins { id(org.jetbrains.kotlin.android) version your-kotlin-version id(org.jetbrains.kotlin.plugin.compose) version your-kotlin-version }2.如果你手动覆盖过单个 Compose 依赖先清理一遍BOM 的前提是“版本统一受控”。如果你的项目历史上做过下面这些事手写过ui:1.x.x单独把material3钉在别的版本因为临时修 bug 覆盖过foundation-layout引入过 alpha / beta 版 Compose artifact那升级到2026.02.01前最好先把这些 override 摸一遍。否则你以为自己在用 BOM实际依赖图已经部分失控了。建议直接跑一遍依赖树确认bash体验AI代码助手代码解读复制代码./gradlew :app:dependencies --configuration debugRuntimeClasspath重点看有没有同一模块族里混入多个小版本稳定版和 alpha / beta 混用material3被外部组件库偷偷带成别的版本。3.如果你从更早版本跨上来要补测布局和滚动不要只测编译通过这次官方明确提到的补丁在foundation说明布局链路是本轮升级里最值得回归的地方。建议重点回归这几类页面大量自定义 modifier 的页面LazyColumn/LazyVerticalGrid/Pager混合页面有粘性头部、吸顶、嵌套滚动的页面依赖对齐、权重、offset、padding 叠加的复杂布局平板、折叠屏、横屏等大尺寸场景。原因很简单布局回归类问题最容易“编译通过、代码 review 也看不出来但线上截图才暴露”。4.如果你准备用 Material3 新输入体系优先从局部页面试点material3 1.4.0的 TextField 体系更新是很有价值的但也意味着你的 design system 可能要同步抽象表单状态管理方式可能要调整输入过滤、校验、错误态展示、焦点切换等逻辑可能要重新梳理。我的建议不是“全量一把梭”而是先在登录、注册、个人资料编辑、收货地址这类表单集中页面试点把状态模型、错误态规范、密码输入策略跑顺再向更复杂的业务域扩散。5.如果你还在用 Material Icons 扩展库顺手评估迁移到 Material Symbols在material3官方 release notes 里Google 已经不再推荐继续使用 Material Icons Library而是建议使用Material Symbols的自动镜像 Vector Drawable 方案。这不是一个“必须今天改”的阻塞项但如果你刚好在做 design token、图标系统、资源瘦身或者国际化适配这次升级很适合顺手把这件事纳入技术债清单。6.关注大版本背景新发布 AndroidX 库的默认 minSdk 已经提高到 23Google 在 Compose1.10相关说明里已经提到AndroidX 的新发布库默认 minSdk 正在从21往23提升。对大多数今天仍在活跃开发的项目来说这通常不是大问题但如果你的投放范围、ROM 适配或者企业客户环境还覆盖 API21/22那升级前最好把下面几件事再确认一遍App 的实际minSdk业务模块是否有单独的发布目标第三方 SDK 是否还卡着低版本系统CI / 测试矩阵里是否保留了低版本设备。这版值不值得升我会怎么建议适合尽快跟进的情况你已经在 Compose1.10.x想吃掉最新 patch你最近碰到过列表、布局、定位错位类问题你准备把更多复杂页面迁到 Compose你想把 Material31.4.0作为新的稳定落点。这种场景下2026.02.01基本属于“可以排进近期升级计划”的版本。可以稍微观察一下的情况你线上项目非常稳定最近没有 Compose 相关问题你已经在2026.02.00且没有布局异常你对material3新能力没有迫切需求你当前迭代窗口不允许 UI 侧做大量回归。这种情况下也不是不能升而是可以把它当成“下一个常规基础设施升级窗口顺手做”的版本。一个更实用的判断这版 BOM 的真实定位是什么如果让我用一句程序员视角的话来概括 1 2 3 4 5 6 7 8 9 0Jetpack Compose BOM 2026.02.01本质上是 Compose1.10时代的一次稳定性收口版 BOM。它没有把 Material3 再推到新的主版本也没有甩出一串高调新 API但它做了更重要的事把核心 Compose 族统一补到1.10.4修复了明确的布局定位回归继续站在1.10的性能、状态、动画能力之上让material3 1.4.0这代组件能力处在一个更适合生产项目接入的 BOM 组合里。如果你问“要不要升”我的答案会是从2026.02.00升上来更像一次低风险、偏稳健的补丁升级从更老版本直接升上来收益会明显大得多但记得按compiler BOM 布局回归 输入组件四条线一起看。参考资料Android Developers: Compose BOM 文档developer.android.com/develop/ui/…Android Developers: Compose to Kotlin Compatibility / Compose Compiler 文档developer.android.com/develop/ui/…Android Developers: Compose BOM Mappingdeveloper.android.com/develop/ui/…AndroidX Release Notes: Compose Foundationdeveloper.android.com/jetpack/and…AndroidX Release Notes: Compose Runtimedeveloper.android.com/jetpack/and…AndroidX Release Notes: Compose UIdeveloper.android.com/jetpack/and…AndroidX Release Notes: Compose Materialdeveloper.android.com/jetpack/and…AndroidX Release Notes: Compose Animationdeveloper.android.com/jetpack/and…AndroidX Release Notes: Compose Material3developer.android.com/jetpack/and…Android Developers Blog: What’s new in Jetpack Compose 1.10android-developers.googleblog.com/2025/12/wha…如果你后面还要继续升级我建议下一步别只盯着 BOM 版本号而是把三件事绑在一起看Kotlin / Compose Compiler 是否同步Material3 新输入体系是否准备接入复杂布局页是否有足够的回归覆盖。这三件事往往比“我是不是已经升到最新 BOM”更影响真实项目的收益。