Compose 编译器

使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
最新更新 稳定版 发布候选版 Beta 版 Alpha 版
2024 年 8 月 7 日 1.5.15 - - -

结构

Compose 是 androidx 中 7 个 Maven Group ID 的组合。每个 Group 包含一个特定的功能子集,每个功能子集都有自己的版本说明。

下表解释了这些 Group 并提供了每个版本说明的链接。

Group说明
compose.animation在其 Jetpack Compose 应用中构建动画,丰富用户体验。
compose.compiler使用 Kotlin 编译器插件转换 @Composable 函数并启用优化。
compose.foundation使用现成的构建块编写 Jetpack Compose 应用,并扩展基础组件来构建自己的设计系统组件。
compose.material使用现成的 Material Design 组件构建 Jetpack Compose UI。这是 Compose 更高层级的入口点,旨在提供与 www.material.io 所述组件相匹配的组件。
compose.material3使用 Material Design 3 组件构建 Jetpack Compose UI,这是 Material Design 的下一个演进版本。Material 3 包含更新的主题和组件,以及 Material You 个性化功能(如动态颜色),旨在与新的 Android 12 视觉风格和系统 UI 保持一致。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及供 Compose 编译器插件定位的核心运行时。
compose.ui与设备交互所需的 Compose UI 基本组件,包括布局、绘制和输入。

声明依赖项

要添加对 Compose 的依赖,您必须将 Google Maven 代码库添加到项目中。阅读Google 的 Maven 代码库了解详情。

在应用或模块的 build.gradle 文件中添加所需工件的依赖项

Groovy

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "19"
    }
}

如需详细了解依赖项,请参阅添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的想法,请告知我们。创建新问题之前,请先查看此库的现有问题。您可以点击星标按钮为您关注的现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

版本 1.5

版本 1.5.15

2024 年 8 月 7 日

androidx.compose.compiler:compiler:1.5.15androidx.compose.compiler:compiler-hosted:1.5.15 已发布。版本 1.5.15 包含这些提交

  • 此编译器版本面向 Kotlin 1.9.25。

版本 1.5.14

2024 年 5 月 14 日

androidx.compose.compiler:compiler:1.5.14androidx.compose.compiler:compiler-hosted:1.5.14 已发布。版本 1.5.14 包含这些提交

此编译器版本面向 Kotlin 1.9.24。

Bug 修复

  • 确保在关闭源代码信息时实现内联主体。(Idddb8

版本 1.5.13

2024 年 5 月 1 日

androidx.compose.compiler:compiler:1.5.13androidx.compose.compiler:compiler-hosted:1.5.13 已发布。版本 1.5.13 包含这些提交

新功能

  • 强跳过功能不再被视为实验性功能,可以安全地用于生产环境。它将在即将发布的版本中成为默认行为。(I6c8c4

Bug 修复

  • 修复带有默认值且包装非原生类型的值类参数的 @Composable 函数的二进制兼容性问题。(I89465
  • 上游修复了 Compose 多平台中的 JS 和 Native 编译问题。有关完整详细信息,请参阅上述提交范围。

版本 1.5.12

2024 年 4 月 17 日

androidx.compose.compiler:compiler:1.5.12androidx.compose.compiler:compiler-hosted:1.5.12 已发布。版本 1.5.12 包含这些提交

Bug 修复

  • 修复了与 Kotlin 1.9.23 进行增量编译时出现的问题。(Ifca55
  • 修复了非原生内联类的值参数中的不可为空类型。(Ie6bb5

版本 1.5.11

2024 年 3 月 20 日

androidx.compose.compiler:compiler:1.5.11androidx.compose.compiler:compiler-hosted:1.5.11 已发布。版本 1.5.11 包含这些提交

备注

  • 从这个版本开始,当模块使用包含此方法的运行时进行编译时,编译器现在将调用 startReplaceGroup 而不是 startReplacableGroupstartReplaceGroup 是在Compose Runtime 1.7.0-alpha03 的运行时中引入的。仅当面向 1.7.0-alpha03 或更高版本的运行时时,才会生成对 startRestartGroup 的调用。

  • 调用 startReplaceGroup 而不是 startReplaceableGroup 可以让运行时更有效地检测变更,但可能会影响 Composer 检测变更并将其发送给 Applier 的顺序。如果 Applier 依赖于这些操作被检测到的顺序,这可能会导致行为发生微小变化。

新功能

  • 支持 Kotlin 1.9.23

Bug 修复

  • 修复嵌套的外部泛型类型被推断为不稳定类型的问题。(I3437f, b/327643787
  • 支持多个稳定性配置文件。(I8db14, b/325326744
  • Compose 编译器现在通过递归遍历基类/覆盖项来正确转换被覆盖的函数。(I2c9f9, b/316196500
  • 确保函数引用内存化在不直接使用本地声明的隐式父项时不会尝试捕获它们。(Ib1267
  • 修复可组合 crossinline lambda 的代码生成问题(未启用 "nonSkippingGroupOptimization" 时很难遇到此 bug)。(Icb2fd, b/325502738

版本 1.5.10

2024 年 2 月 21 日

androidx.compose.compiler:compiler:1.5.10androidx.compose.compiler:compiler-hosted:1.5.10 已发布。版本 1.5.10 包含这些提交。

Bug 修复

  • 支持 init 块中的实时字面量。(b/320397488
  • 使用 dispatcher 参数检查函数是否在本地类中。(b/323123439

版本 1.5.9

2024 年 2 月 7 日

androidx.compose.compiler:compiler:1.5.9androidx.compose.compiler:compiler-hosted:1.5.9 已发布。版本 1.5.9 包含这些提交。

Bug 修复

  • 修复匿名对象初始化器中的可组合调用。(b/320261458, 96315c
  • 将递归本地声明计为捕获。(b/318745941, e7b4b0
  • 通过强制 .changed 对于使用内在 remember 的函数类型,修复 Intrinsic remember 更改与 Java 方法引用相关的行为。(b/319810819, 77128e
  • 添加了一个实验性优化,该优化将移除不可跳过函数周围的组,例如显式标记为 @NonSkippableComposable 的函数以及隐式不可跳过的函数(如内联函数和返回非 Unit 值(如 remember)的函数)。
  • 可以通过向 Kotlin 编译器传递插件选项 -P plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true 来启用此优化。(I1688f

版本 1.5.8

2024 年 1 月 10 日

androidx.compose.compiler:compiler:1.5.8androidx.compose.compiler:compiler-hosted:1.5.8 已发布。版本 1.5.8 包含这些提交。

新功能

  • 支持 Kotlin 1.9.22

Bug 修复

  • 修复了使用 Java21 构建时 Compose 编译器构建抛出异常的 bug。从 Google Maven 使用 Compose 编译器(即未自行构建)的用户未受到此 bug 的影响。(b/316644294
  • 修复了对于某些非内联 lambda 调用方报告 COMPOSABLE_EXPECTED 错误的 bug。(b/309364913
  • 对开放函数中的默认参数添加编译错误(之前仅限于抽象函数)。Compose 目前不支持从覆盖函数中替换默认参数,并且使用默认参数覆盖可组合函数会在运行时失败。使用 @Suppress("ABSTRACT_COMPOSABLE_DEFAULT_PARAMETER_VALUE") 进行抑制,但请注意,覆盖此类函数而不为参数提供默认值将导致运行时崩溃。(b/317490247
  • 修复了内在 remember 中的 bug,该 bug 阻止了值正确传播。(b/316327367

外部贡献

版本 1.5.7

2023 年 12 月 19 日

androidx.compose.compiler:compiler:1.5.7androidx.compose.compiler:compiler-hosted:1.5.7 已发布。版本 1.5.7 包含这些提交。

Bug 修复

  • 修复当 remember() 键参数调用 Composable 函数时 Compose 运行时崩溃的问题。(b/315855015
  • 修复使用 return@ 时 Compose 运行时崩溃的问题。(b/315821171
  • 避免在内存化键中使用绝对路径,从而更好地利用构建缓存。(b/313937484

版本 1.5.6

2023 年 12 月 6 日

androidx.compose.compiler:compiler:1.5.6androidx.compose.compiler:compiler-hosted:1.5.6 已发布。版本 1.5.6 包含这些提交。

新功能

  • 支持 Kotlin 1.9.21

Bug 修复

  • 启用内在 remember - 这是一种编译器转换,它在 Compose 编译器插件中内联 remember,并将 .equals 比较替换为稳定参数的参数元数据的整型比较。这会减少使用的槽位数,并减少运行时进行的比较。可以通过提供编译器插件参数来禁用此选项:-P plugin:androidx.compose.compiler.plugins.kotlin:intrinsicRemember=false。(If675f
  • 修复适配函数引用和内联参数的内存化问题。(b/312738720
  • 退出内联函数调用时实现组。(b/312242547

外部贡献

  • 修复 k/native 和 k/wasm 运行时崩溃问题,该问题是由于 Composable 函数中缺少返回语句(当它是最后一条语句且返回 null 常量时)导致的。(aosp/2835716

版本 1.5.5

2023 年 11 月 29 日

androidx.compose.compiler:compiler:1.5.5androidx.compose.compiler:compiler-hosted:1.5.5 已发布。版本 1.5.5 包含这些提交。

Bug 修复

  • 修复在查找被覆盖的可组合类型时崩溃的问题。(Ib6d2c, b/297665426
    • stabilityConfigurationPath 添加到已知参数(之前的 bug 阻止了配置文件标志的使用)。(b/309765121
    • 内存化修复。(I081d1, I4d7bf
    • 通过考虑内在 remember 中不确定参数状态来修复重组问题。(b/263402091
    • 修复内在 remember 的调试行信息。(Ic8cf5
    • 修复编译时查找被覆盖的可组合类型时崩溃的问题(IR 降级失败)。(b/297665426

外部贡献

版本 1.5.4

2023 年 11 月 7 日

androidx.compose.compiler:compiler:1.5.4androidx.compose.compiler:compiler-hosted:1.5.4 已发布。版本 1.5.4 包含这些提交。

依赖项更新

  • Compose 编译器现在与 Kotlin 1.9.20 兼容

新功能

  • 添加一个实验性选项来启用强跳过模式。强跳过模式允许跳过带有不稳定参数的可组合项。此外,带有不稳定捕获的 lambda 会被内存化。此功能是实验性的,不被认为是生产就绪的。(22421e
  • 添加启用/禁用源代码/跟踪信息的标志。(4d45f09
  • 允许通过配置文件配置外部类的稳定性。(If40eb

Bug 修复

  • 修复未收集源代码信息时可组合函数过早退出的问题。(fe6267
  • 修复可组合函数中的 continue 问题。(948362
  • 修复当从具有依赖于表达式返回类型的多个重载的函数调用中调用可组合函数时的解析问题。(2d36d0
  • 修复函数引用没有 dispatch receiver 时的内存化问题。(fc2326
  • 修复在某些情况下阻止 lambda 重组的脏检查问题。(db3699
  • 修复跨模块增量编译时的稳定性问题。(7d3e127
  • @DontMemoize 的范围缩小到仅限于 lambda 表达式。(7a7fa52
  • 修复使用 Composable fun interface 作为 lambda 时变量捕获不正确的问题。(5ae3556

外部贡献

  • 使用结构相等符号进行数值和 null 比较。(c612a0

版本 1.5.3

2023 年 8 月 29 日

androidx.compose.compiler:compiler:1.5.3androidx.compose.compiler:compiler-daemon:1.5.3androidx.compose.compiler:compiler-hosted:1.5.3 已发布。版本 1.5.3 包含这些提交。

依赖项更新

  • Kotlin 版本已更新至 1.9.10

版本 1.5.2

2023 年 8 月 23 日

androidx.compose.compiler:compiler:1.5.2androidx.compose.compiler:compiler-daemon:1.5.2androidx.compose.compiler:compiler-hosted:1.5.2 已发布。版本 1.5.2 包含这些提交。

Bug 修复

  • 为返回常量的可组合函数中的 return 语句插入行号。(I42d89
  • 修复切换到新编译器插件入口点导致的内存泄漏问题。(4f0a101
  • 停止在 Compose 编译器中转换非可组合 fun interface。这使得 fun interface 的处理方式与 lambda 相同,包括内存化规则。(28b3ce9
  • 使用 vararg 参数类型来推断调用点的稳定性。(bc83645

版本 1.5.1

2023 年 7 月 26 日

androidx.compose.compiler:compiler:1.5.1androidx.compose.compiler:compiler-daemon:1.5.1androidx.compose.compiler:compiler-hosted:1.5.1 已发布。版本 1.5.1 包含这些提交。

Bug 修复

  • 修复了带有提前返回的 @ReadOnlyComposable 函数中的组合跟踪事件标记,这导致了跟踪损坏。

版本 1.5.0

2023 年 7 月 18 日

androidx.compose.compiler:compiler:1.5.0androidx.compose.compiler:compiler-daemon:1.5.0androidx.compose.compiler:compiler-hosted:1.5.0 已发布。版本 1.5.0 包含这些提交。

实验性 K2 支持

  • Compose 编译器 1.5.0 提供对 K2 编译器的实验性支持。某些 Compose 功能尚不支持 K2,将在未来的编译器版本中提供。

自 1.4.0 版本以来的重要变更

  • Kotlin 版本已更新至 1.9.0。
  • @Composable lambda 调用的命名参数已被弃用。此功能依赖于内部编译器 API,K2 将不再支持它。
  • 添加了一个诊断来验证 expect/actual 调用上的 @Composable 注解。两个声明都应具有匹配的注解。

版本 1.4.8

版本 1.4.8

2023 年 6 月 28 日

androidx.compose.compiler:compiler:1.4.8androidx.compose.compiler:compiler-daemon:1.4.8androidx.compose.compiler:compiler-hosted:1.4.8 已发布。版本 1.4.8 包含这些提交。

新功能

  • 目标 Kotlin 编译器版本已升级到 1.8.22。

Bug 修复

  • 改进了 @Composable 覆盖的错误消息。现在它可以正确指出注解不匹配的问题。
  • 警告不应标记为可组合的内联 lambda 上冗余的 @Composable 注解。K2 编译器将不再支持此功能。

版本 1.4.7

版本 1.4.7

2023 年 5 月 3 日

androidx.compose.compiler:compiler:1.4.7androidx.compose.compiler:compiler-daemon:1.4.7androidx.compose.compiler:compiler-hosted:1.4.7 已发布。版本 1.4.7 包含这些提交。

新功能

  • 支持 Kotlin 1.8.21
  • 添加了 State API 的基本类型版本,允许在 State 对象中跟踪 Int、Long、Float 和 Double 值,而无需进行自动装箱转换。

版本 1.4.6

版本 1.4.6

2023 年 4 月 19 日

androidx.compose.compiler:compiler:1.4.6androidx.compose.compiler:compiler-daemon:1.4.6androidx.compose.compiler:compiler-hosted:1.4.6 已发布。版本 1.4.6 包含这些提交。

Bug 修复

  • Compose 编译器现在依赖于 Java11(而不是 Compose 编译器 1.4.5 版本要求的 Java17),以便更好地支持仍在使用旧版本 Java 的用户。

版本 1.4.5

版本 1.4.5

2023 年 4 月 12 日

androidx.compose.compiler:compiler:1.4.5androidx.compose.compiler:compiler-daemon:1.4.5androidx.compose.compiler:compiler-hosted:1.4.5 已发布。版本 1.4.5 包含这些提交。

注意 此版本的 Compose 编译器要求您的构建环境使用 Java 17+。根据用户反馈,我们将把此要求降回到 Java 11,并发布另一个版本 (1.4.6) 以更好地支持使用旧版 Java 的用户。

新功能

支持 Kotlin 1.8.20

Bug 修复

  • 将可组合 invoke operator 覆盖的要求传播到使用相应注解扩展 lambda 接口的类和接口。f8f2f78a1a769c2373201027f12700e772e4e97e
  • 允许在 getValue 操作符上使用 @Composable 注解,并在 IR 中将为 delegate 生成的 getter 标记为可组合,以确保其后续正确转换。f174f6ee60ca957d5cb6d19a5bd02a88267cdf40
  • 修复内联函数的内部 Compose 运行时错误(预期 applyChanges() 已被调用)。b/274786923
  • 避免捕获 ProcessCancelledException,因为它在 IDE 中具有特殊含义。b/274725600

外部贡献

版本 1.4.4

版本 1.4.4

2023 年 3 月 22 日

androidx.compose.compiler:compiler:1.4.4androidx.compose.compiler:compiler-daemon:1.4.4androidx.compose.compiler:compiler-hosted:1.4.4 已发布。版本 1.4.4 包含这些提交。

Bug 修复

  • 修复 Composable 内联 lambda 返回问题。(72172b
  • 允许可组合项返回 Nothing(在可组合函数中使用 TODO 时不会生成错误)3aea8d

版本 1.4.3

版本 1.4.3

2023 年 2 月 22 日

androidx.compose.compiler:compiler:1.4.3 已发布。版本 1.4.3 包含这些提交。

Bug 修复

  • 修复可组合调用参数中的条件可组合调用问题。(Ie93edb

版本 1.4.2

版本 1.4.2

2023 年 2 月 8 日

androidx.compose.compiler:compiler:1.4.2 已发布。版本 1.4.2 包含这些提交。

新功能

  • 支持 Kotlin 1.8.10

Bug 修复

  • 在不可跳过 lambda 的主体中添加组,以避免重组 bug。

版本 1.4.1

版本 1.4.1

2023 年 2 月 8 日

androidx.compose.compiler:compiler:1.4.1 已发布。版本 1.4.1 包含这些提交。

Bug 修复

  • 禁用内在 remember 优化,该优化之前引入了一些代码生成 bug。
  • 在包含 vararg 参数的函数中禁用内在 remember。
  • 修复带有默认参数的可组合项中错误的跳过问题
  • 如果检查 Kotlin 兼容性失败,添加防御性回退错误消息。
  • 从内联 lambda 中移除跳过代码生成

版本 1.4.0

2023 年 1 月 17 日

androidx.compose.compiler:compiler:1.4.0 已发布。版本 1.4.0 包含这些提交。

自 1.3.0 版本以来的重要变更

  • 支持 Kotlin 1.8.0
  • 关闭了内在 remember
  • ui 工具 data 类 Group 现在有一个字段 isInline,它指示该组是否用于调用内联可组合函数。如果 isInlinetrue,则表示调用的是内联可组合函数。但是,对于从使用不生成内联函数信息的 Compose 编译器插件版本编译的模块中的内联可组合函数调用,该值可能为 false。
  • ImmutableCollection 及其持久化同级现在被视为稳定类型。
  • AnimatedContent 中用于工具标签的新参数
  • 修复了内联 lambda 的错误代码生成问题

版本 1.4.0-alpha02

2022 年 11 月 11 日

androidx.compose.compiler:compiler:1.4.0-alpha02 已发布。版本 1.4.0-alpha02 包含这些提交。

新功能

  • 添加了对 Kotlin 1.7.21 的支持

版本 1.4.0-alpha01

2022 年 11 月 9 日

androidx.compose.compiler:compiler:1.4.0-alpha01 已发布。版本 1.4.0-alpha01 包含这些提交。

Bug 修复

  • 修复从内联可组合函数提前返回的功能。(b/255350755
  • 修复 decoy lowering 中的 bug,该 bug 破坏了 Compose 中的 Kotlin/JS 支持。(6a40f8)。

版本 1.3

版本 1.3.2

2022 年 10 月 4 日

androidx.compose.compiler:compiler:1.3.2 已发布。版本 1.3.2 包含这些提交。

新功能

  • 此版本包含对 Kotlin 1.7.20 的更新

版本 1.3.1

2022 年 9 月 7 日

androidx.compose.compiler:compiler:1.3.1 已发布。版本 1.3.1 包含这些提交。

Bug 修复

  • 修复 IllegalStateException 错误,该错误是由于 Compose 编译器在某些情况下错误地将 unit 类型标记为可组合导致的。(b/237863365
  • 用户现在必须在抑制编译器版本检查时指定他们首选的 Kotlin 版本。(I9e5e2

版本 1.3.0

2022 年 8 月 10 日

androidx.compose.compiler:compiler:1.3.0 已发布。版本 1.3.0 包含这些提交。

版本 1.3.0-rc02

2022 年 8 月 3 日

androidx.compose.compiler:compiler:1.3.0-rc02 已发布。版本 1.3.0-rc02 包含这些提交。

版本 1.3.0-rc01

2022 年 7 月 27 日

androidx.compose.compiler:compiler:1.3.0-rc01 已发布。版本 1.3.0-rc01 包含这些提交。

版本 1.3.0-beta01

2022 年 7 月 20 日

androidx.compose.compiler:compiler:1.3.0-beta01 已发布。版本 1.3.0-beta01 包含这些提交。

新功能

  • 添加了对 Kotlin 1.7.10 的支持

版本 1.2

版本 1.2.0

2022 年 6 月 29 日

androidx.compose.compiler:compiler:1.2.0 已发布。版本 1.2.0 包含这些提交。

自 1.1.0 版本以来的重要变更

版本 1.2.0-rc02

2022 年 6 月 22 日

androidx.compose.compiler:compiler:1.2.0-rc02 已发布。版本 1.2.0-rc02 包含这些提交。

Bug 修复

  • 移除了可组合 Trace Event 代码生成。(aosp/2127922

版本 1.2.0-rc01

2022 年 6 月 15 日

androidx.compose.compiler:compiler:1.2.0-rc01 已发布。版本 1.2.0-rc01 包含这些提交。

版本 1.2.0-beta03

2022 年 6 月 1 日

androidx.compose.compiler:compiler:1.2.0-beta03 已发布。版本 1.2.0-beta03 包含这些提交。

版本 1.2.0-beta02

2022 年 5 月 18 日

androidx.compose.compiler:compiler:1.2.0-beta02 已发布。版本 1.2.0-beta02 包含这些提交。

版本 1.2.0-beta01

2022 年 5 月 11 日

androidx.compose.compiler:compiler:1.2.0-beta01 已发布。版本 1.2.0-beta01 包含这些提交。

  • 这是 1.2 的首个 Beta 版本!自上一个 Alpha 版本以来没有变化。

新功能

  • 添加了对 Kotlin 1.6.21 的支持

版本 1.2.0-alpha08

2022 年 4 月 20 日

androidx.compose.compiler:compiler:1.2.0-alpha08 已发布。版本 1.2.0-alpha08 包含这些提交。

版本 1.2.0-alpha07

2022 年 4 月 6 日

androidx.compose.compiler:compiler:1.2.0-alpha07 已发布。版本 1.2.0-alpha07 包含这些提交。

版本 1.2.0-alpha06

2022 年 3 月 23 日

androidx.compose.compiler:compiler:1.2.0-alpha06 已发布。版本 1.2.0-alpha06 包含这些提交。

版本 1.2.0-alpha05

2022 年 3 月 9 日

androidx.compose.compiler:compiler:1.2.0-alpha05 已发布。版本 1.2.0-alpha05 包含这些提交。

版本 1.2.0-alpha04

2022 年 2 月 23 日

androidx.compose.compiler:compiler:1.2.0-alpha04 已发布。版本 1.2.0-alpha04 包含这些提交。

版本 1.2.0-alpha03

2022 年 2 月 9 日

androidx.compose.compiler:compiler:1.2.0-alpha03 已发布。版本 1.2.0-alpha03 包含这些提交。

版本 1.2.0-alpha02

2022 年 1 月 26 日

androidx.compose.compiler:compiler:1.2.0-alpha02 已发布。版本 1.2.0-alpha02 包含这些提交。

版本 1.2.0-alpha01

2022 年 1 月 12 日

androidx.compose.compiler:compiler:1.2.0-alpha01 已发布。版本 1.2.0-alpha01 包含这些提交。

新功能

  • 添加了对 Kotlin 1.6.10 的支持。

版本 1.1

版本 1.1.1

2022 年 2 月 23 日

androidx.compose.compiler:compiler:1.1.1 已发布。版本 1.1.1 包含这些提交。

Bug 修复

  • 修复 androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList 中的 NullPointerException 问题。(aosp/1947059, b/206677462
  • 修复在 Android 上从剪贴板读取时,剪贴板内容导致的崩溃问题。(I06020, b/197769306
  • 修复 LazyVerticalGrid 中的 RTL 问题。(aosp/1931080, b/207510535

版本 1.1.0

2022 年 2 月 9 日

androidx.compose.compiler:compiler:1.1.0 已发布。版本 1.1.0 包含这些提交。

自 1.0.0 版本以来的重要变更

  • 稳定支持 Android 12 的Overscroll 效果
  • 改进了触摸目标尺寸
  • 请注意,相对于 Compose 1.0,Material 组件将扩展其布局空间以满足 Material 无障碍功能指南中关于触摸目标尺寸的要求。例如,Button 的触摸目标将扩展到最小尺寸 48x48dp,即使您将 Button 的尺寸设置得更小。这使得 Compose Material 与 Material Design Components 的行为保持一致,如果您混用 Views 和 Compose,则会提供一致的行为。此更改还确保了当您使用 Compose Material 组件创建 UI 时,将满足触摸目标无障碍功能的最低要求。
  • 稳定支持Navigation Rail
  • 将之前的一些实验性 API 升级为稳定 API
  • 支持更高版本的 Kotlin

版本 1.1.0-rc03

2022 年 1 月 26 日

androidx.compose.compiler:compiler:1.1.0-rc03 已发布。版本 1.1.0-rc03 包含这些提交。

Bug 修复

  • 已更新以支持 Compose Material 1.1.0-rc03

版本 1.1.0-rc02

2021 年 12 月 16 日

androidx.compose.compiler:compiler:1.1.0-rc02 已发布。版本 1.1.0-rc02 包含这些提交。

依赖项更新

  • Compose 编译器 1.1.0-rc02 与 Kotlin 1.6.10 兼容。

版本 1.1.0-rc01

2021 年 12 月 15 日

androidx.compose.compiler:compiler:1.1.0-rc01 已发布。版本 1.1.0-rc01 包含这些提交。

依赖项变更

  • Compose 编译器 1.1.0-rc01 与 Kotlin 1.6.0 兼容。
  • 通过 androidx.dev SNAPSHOT 并指定 buildId 8003490,可获取兼容的 1.6.10 构建版本。以下依赖项代码段将配置 Compose 编译器的 SNAPSHOT

    将以下代码段添加到项目的根 build.gradle 文件中

    buildscript {
        repositories {
            google()
            jcenter()
            maven { url 'https://androidx.dev/snapshots/builds/8003490/artifacts/repository' }
        }
    }
    

    将以下代码段添加到使用 Compose 的应用或模块的 build.gradle 文件中

    android {
        composeOptions {
            kotlinCompilerExtensionVersion = "1.2.0-SNAPSHOT"
        }
    }
    

版本 1.1.0-beta04

2021 年 12 月 1 日

androidx.compose.compiler:compiler:1.1.0-beta04 已发布。版本 1.1.0-beta04 包含这些提交。

新功能

  • 已更新以与 Kotlin 1.6.0 兼容

版本 1.1.0-beta03

2021 年 11 月 17 日

androidx.compose.compiler:compiler:1.1.0-beta03 已发布。版本 1.1.0-beta03 包含这些提交。

版本 1.1.0-beta02

2021 年 11 月 3 日

androidx.compose.compiler:compiler:1.1.0-beta02 已发布。版本 1.1.0-beta02 包含这些提交。

版本 1.1.0-beta01

2021 年 10 月 27 日

androidx.compose.compiler:compiler:1.1.0-beta01 已发布。版本 1.1.0-beta01 包含这些提交。

版本 1.1.0-alpha06

2021 年 10 月 13 日

androidx.compose.compiler:compiler:1.1.0-alpha06 已发布。版本 1.1.0-alpha06 包含这些提交。

版本 1.1.0-alpha05

2021 年 9 月 29 日

androidx.compose.compiler:compiler:1.1.0-alpha05 已发布。版本 1.1.0-alpha05 包含这些提交。

版本 1.1.0-alpha04

2021 年 9 月 15 日

androidx.compose.compiler:compiler:1.1.0-alpha04 已发布。版本 1.1.0-alpha04 包含这些提交。

版本 1.1.0-alpha03

2021 年 9 月 1 日

androidx.compose.compiler:compiler:1.1.0-alpha03 已发布。版本 1.1.0-alpha03 包含这些提交。

新功能

  • Compose 编译器现在支持旧版本的 Compose Runtime (1.0)。在此更改之前,Compose 编译器仅与相同版本或更高版本的 Compose Runtime 兼容。在此更改之后,Compose 编译器与旧版本的 Compose Runtime (1.0) 兼容。(aosp/1796968
  • 已将 Compose 1.1.0-alpha03 更新为依赖于 Kotlin 1.5.30。(I74545

版本 1.1.0-alpha02

2021 年 8 月 18 日

androidx.compose.compiler:compiler:1.1.0-alpha02 已发布。版本 1.1.0-alpha02 包含这些提交。

版本 1.1.0-alpha01

2021 年 8 月 4 日

androidx.compose.compiler:compiler:1.1.0-alpha01 已发布。版本 1.1.0-alpha01 包含这些提交。

版本 1.0

版本 1.0.5

2021 年 11 月 3 日

androidx.compose.compiler:compiler:1.0.5 已发布。版本 1.0.5 包含这些提交。

Bug 修复

  • 修复了跟踪 derivedStateOf 实例时崩溃的问题。(aosp/1792247

版本 1.0.4

2021 年 10 月 13 日

androidx.compose.compiler:compiler:1.0.4 已发布。版本 1.0.4 包含这些提交。

依赖项更新

  • 已更新为依赖于 Kotlin 1.5.31

版本 1.0.3

2021 年 9 月 29 日

androidx.compose.compiler:compiler:1.0.3 已发布。版本 1.0.3 包含这些提交。

依赖项更新

  • 已更新为依赖于 Kotlin 1.5.30

版本 1.0.2

2021 年 9 月 1 日

androidx.compose.compiler:compiler:1.0.2 已发布。版本 1.0.2 包含这些提交。

已更新以支持 Compose 1.0.2 版本。Compose 1.0.2 仍与 Kotlin 1.5.21 兼容。

版本 1.0.1

2021 年 8 月 4 日

androidx.compose.compiler:compiler:1.0.1 已发布。版本 1.0.1 包含这些提交。

依赖项更新

  • 已更新为依赖于 Kotlin 1.5.21

版本 1.0.0

2021 年 7 月 28 日

androidx.compose.compiler:compiler:1.0.0 已发布。版本 1.0.0 包含这些提交。

1.0.0 的主要功能

这是 Compose 的首个稳定版本。请参阅官方Compose 发布博客了解详情!

版本 1.0.0-rc02

2021 年 7 月 14 日

androidx.compose.compiler:compiler:1.0.0-rc02 已发布。版本 1.0.0-rc02 包含这些提交。

版本 1.0.0-rc01

2021 年 7 月 1 日

androidx.compose.compiler:compiler:1.0.0-rc01 已发布。版本 1.0.0-rc01 包含这些提交。

版本 1.0.0-beta09

2021 年 6 月 16 日

androidx.compose.compiler:compiler:1.0.0-beta09 已发布。版本 1.0.0-beta09 包含这些提交。

版本 1.0.0-beta08

2021 年 6 月 2 日

androidx.compose.compiler:compiler:1.0.0-beta08 已发布。版本 1.0.0-beta08 包含这些提交。

版本 1.0.0-beta07

2021 年 5 月 18 日

androidx.compose.compiler:compiler:1.0.0-beta07 已发布。版本 1.0.0-beta07 包含这些提交。

版本 1.0.0-beta06

2021 年 5 月 5 日

androidx.compose.compiler:compiler:1.0.0-beta06 已发布。版本 1.0.0-beta06 包含这些提交。

版本 1.0.0-beta05

2021 年 4 月 21 日

androidx.compose.compiler:compiler:1.0.0-beta05 已发布。版本 1.0.0-beta05 包含这些提交。

版本 1.0.0-beta04

2021 年 4 月 7 日

androidx.compose.compiler:compiler:1.0.0-beta04 已发布。版本 1.0.0-beta04 包含这些提交。

版本 1.0.0-beta03

2021 年 3 月 24 日

androidx.compose.compiler:compiler:1.0.0-beta03 已发布。版本 1.0.0-beta03 包含这些提交。

版本 1.0.0-beta02

2021 年 3 月 10 日

androidx.compose.compiler:compiler:1.0.0-beta02 已发布。版本 1.0.0-beta02 包含这些提交。

版本 1.0.0-beta01

2021 年 2 月 24 日

androidx.compose.compiler:compiler:1.0.0-beta01 已发布。版本 1.0.0-beta01 包含这些提交。

这是 Compose 1.0.0 Beta 的首次发布。

版本 1.0.0-alpha12

2021 年 2 月 10 日

androidx.compose.compiler:compiler:1.0.0-alpha12 已发布。版本 1.0.0-alpha12 包含这些提交。

版本 1.0.0-alpha11

2021 年 1 月 28 日

androidx.compose.compiler:compiler:1.0.0-alpha11 已发布。版本 1.0.0-alpha11 包含这些提交。

版本 1.0.0-alpha10

2021 年 1 月 13 日

androidx.compose.compiler:compiler:1.0.0-alpha10 已发布。版本 1.0.0-alpha10 包含这些提交。

版本 1.0.0-alpha09

2020 年 12 月 16 日

androidx.compose.compiler:compiler:1.0.0-alpha09 已发布。版本 1.0.0-alpha09 包含这些提交。

版本 1.0.0-alpha08

2020 年 12 月 2 日

androidx.compose.compiler:compiler:1.0.0-alpha08 已发布。版本 1.0.0-alpha08 包含这些提交。

版本 1.0.0-alpha07

2020 年 11 月 11 日

androidx.compose.compiler:compiler:1.0.0-alpha07 已发布。版本 1.0.0-alpha07 包含这些提交。

新功能

  • 稳定性推断与传播。Compose 编译器插件将分析其编译的类型,以推断它是否符合某些运行时优化条件。然后,此推断结果将作为元数据合成到类上,供其他模块中的编译器使用。此外,这些推断的运行时结果将作为元数据传递给组合期间的可组合调用。这需要为可组合函数提供不同的元数据协议,这意味着使用 alpha07 编译器编译的可组合函数将无法与使用任何早期编译器版本编译的可组合函数二进制兼容。(aosp/1431988

版本 1.0.0-alpha06

2020 年 10 月 28 日

androidx.compose.compiler:compiler:1.0.0-alpha06 已发布。版本 1.0.0-alpha06 包含这些提交。

版本 1.0.0-alpha05

2020 年 10 月 14 日

androidx.compose.compiler:compiler:1.0.0-alpha05 已发布。版本 1.0.0-alpha05 包含这些提交。

版本 1.0.0-alpha04

2020 年 10 月 1 日

androidx.compose.compiler:compiler:1.0.0-alpha04 已发布。版本 1.0.0-alpha04 包含这些提交。

androidx.compose:compose-compiler 已重构为 androidx.compose.compiler:compiler。这是新组中的第一个版本。