Compose 编译器

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

结构

Compose 是 androidx 中 7 个 Maven 组 ID 的组合。每个组包含一组目标功能子集,每个子集都有自己的一组发行说明。

此表解释了这些组并链接到每一组发行说明。

描述
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。

错误修复

  • 确保在源信息关闭时实现内联主体。(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)

错误修复

  • 修复了具有默认值且包装非原始值的 value class 参数的 @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 包含 这些提交

错误修复

  • 修复了 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 而不是 startReplacableGroupstartReplaceGroupCompose 运行时 1.7.0-alpha03 的运行时中引入。仅在针对 1.7.0-alpha03 或更高版本的运行时时才会生成对 startRestartGroup 的调用。

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

新功能

  • 支持 Kotlin 1.9.23

错误修复

  • 修复嵌套外部泛型类型推断为不稳定。(I3437fb/327643787)
  • 支持多个稳定性配置文件。(I8db14b/325326744)
  • Compose 编译器现在通过递归遍历基类/覆盖来正确转换覆盖函数。(I2c9f9b/316196500)
  • 确保函数引用记忆不会尝试捕获本地声明的隐式父级(当它们未被直接使用时)。(Ib1267)
  • 修复了可组合交叉内联 lambda 的代码生成(在不启用“nonSkippingGroupOptimization”的情况下很难遇到此错误)。(Icb2fdb/325502738)

版本 1.5.10

2024 年 2 月 21 日

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

错误修复

  • 支持 init 块内的实时字面量。(b/320397488)
  • 使用调度程序参数检查函数是否在本地类中(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 包含这些提交。

错误修复

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

错误修复

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

错误修复

  • 修复当 remember() 密钥参数调用可组合函数时 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

错误修复

  • 启用内在 remember - 在 Compose 编译器插件中内联 remember 并将 .equals 比较替换为稳定参数的参数元数据的 int 比较的编译器转换。这会导致使用的插槽减少,并且在运行时执行的比较减少。可以通过提供编译器插件参数来禁用此选项:-P plugin:androidx.compose.compiler.plugins.kotlin:intrinsicRemember=false。(If675f)
  • 修复自适应函数引用和内联参数的记忆。(b/312738720)
  • 在退出内联函数调用时实现组(b/312242547)

外部贡献

  • 修复了由于 Composable 函数在为最后一个语句且返回空常量时缺少 return 语句导致的 k/native 和 k/wasm 运行时崩溃(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 包含这些提交。

错误修复

  • 修复了在查找重写 composable 类型时发生的崩溃(Ib6d2cb/297665426)。
    • stabilityConfigurationPath 添加到已知参数中(之前 bug 阻止了配置文件标志的使用)。(b/309765121)。
    • 记忆化修复(I081d1I4d7bf)。
    • 通过考虑内在 remember 中的不确定参数状态来修复重新组合。(b/263402091)。
    • 修复了内在 remember 的调试行信息。(Ic8cf5)。
    • 修复了在编译时查找重写 composable 类型期间发生的崩溃(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 Compiler 现在与 Kotlin 1.9.20 兼容。

新功能

  • 添加了一个实验性选项以启用强跳过模式。强跳过模式允许具有不稳定参数的 composable 被跳过。此外,具有不稳定捕获的 lambda 会被记忆化。此功能为实验性功能,不建议用于生产环境。(22421e)。
  • 添加标志以启用/禁用源/跟踪信息。(4d45f09)。
  • 允许通过配置文件配置外部类的稳定性。(If40eb)。

错误修复

  • 修复了在未收集源信息时从 composable 函数过早退出的问题。(fe6267)。
  • 修复了从 composable 函数继续执行的问题。(948362)。
  • 修复了当 composable 函数从具有多个重载(依赖于表达式返回类型)的函数调用中调用时发生的解析问题。(2d36d0)。
  • 修复了函数引用没有分派接收者时的记忆化问题。(fc2326)。
  • 修复了在某些情况下阻止 lambda 重新组合的脏检查。(db3699)。
  • 修复了跨模块增量编译时的稳定性问题。(7d3e127)。
  • @DontMemoize 的作用域减少到仅限于 lambda 表达式。(7a7fa52)。
  • 修复了使用 Composable 函数接口作为 lambda 时变量未正确捕获的问题。(5ae3556)。

外部贡献

  • 对数字和空值比较使用结构相等符号。(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 包含这些提交。

错误修复

  • 在常量返回值 composable 函数中插入 return 语句的行号。(I42d89)。
  • 修复了由于切换到新的编译器插件入口点导致的内存泄漏。(4f0a101)。
  • 停止在 Compose 编译器中转换非 composable 函数接口。这会导致函数接口与 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 包含这些提交。

错误修复

  • 修复了在具有提前返回的 @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 将不支持它。
  • 添加了一个诊断程序以验证 @Composable 注解在 expect/actual 调用上的使用情况。两个声明都应具有匹配的注解。

版本 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。

错误修复

  • 改进了 @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 包含这些提交。

错误修复

  • 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

错误修复

  • 将 composable 调用运算符覆盖的要求传播到扩展具有相应注解的 lambda 接口的类和接口。f8f2f78a1a769c2373201027f12700e772e4e97e
  • 允许在 getValue 运算符上使用 @Composable 注解,并在 IR 中将委托生成的 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 包含这些提交。

错误修复

  • 修复了 Composable 内联 lambda 返回值。(72172b)。
  • 允许 composable 返回 Nothing(在 composable 函数中使用 TODO 时不生成错误)。3aea8d)。

版本 1.4.3

版本 1.4.3

2023 年 2 月 22 日

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

错误修复

  • 修复了 composable 调用参数中的条件 composable 调用。(Ie93edb)。

版本 1.4.2

版本 1.4.2

2023 年 2 月 8 日

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

新功能

  • 支持 Kotlin 1.8.10

错误修复

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

版本 1.4.1

版本 1.4.1

2023 年 2 月 8 日

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

错误修复

  • 禁用先前引入了一些代码生成错误的内在 remember 优化。
  • 在包含 vararg 参数的函数中禁用内在 remember。
  • 修复了具有默认参数的 composable 中的错误跳过问题。
  • 如果检查 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 工具数据类Group现在有一个字段isInline,用于指示该组是否用于调用内联可组合函数。如果isInlinetrue,则表示调用的是内联可组合函数。但是,对于来自使用未生成内联函数信息的 Compose 编译器插件版本的模块的内联可组合函数调用,该值可能为 false。
  • ImmutableCollection及其 Persistent 同级现在被认为是稳定的。
  • 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 包含这些提交。

错误修复

  • 修复了从内联可组合函数中提前返回的功能 (b/255350755)
  • 修复了诱饵降低中的错误,该错误破坏了 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 包含这些提交。

错误修复

  • 修复 Compose 编译器在某些情况下错误地将单元类型标记为可组合的 IllegalStateException。(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 包含这些提交。

错误修复

版本 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 包含这些提交。

错误修复

版本 1.1.0

2022 年 2 月 9 日

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

自 1.0.0 以来重要更改

  • 对 Android 12 过度滚动效果 的稳定支持
  • 触摸目标大小的改进
  • 请注意,相对于 Compose 1.0,Material 组件将扩展其布局空间以满足 Material 辅助功能指南 中的触摸目标大小。例如,即使您将 Button 的大小设置为更小,Button 触摸目标也将扩展到最小 48x48dp 大小。这使 Compose Material 与 Material Design Components 的行为保持一致,如果您混合使用 View 和 Compose,则可以提供一致的行为。此更改还确保在使用 Compose Material 组件创建 UI 时,将满足触摸目标辅助功能的最低要求。
  • 导航栏 的稳定支持
  • 将许多以前实验性的 API 提升到稳定版
  • 对更新版本的 Kotlin 的支持

版本 1.1.0-rc03

2022 年 1 月 26 日

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

错误修复

  • 更新以支持 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 Compiler 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 Compiler 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 运行时 (1.0)。在此更改之前,Compose 编译器仅与相同版本或更高版本的 Compose 运行时兼容。更改后,Compose 编译器与旧版本的 Compose 运行时 (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 包含以下提交。

错误修复

  • 修复了跟踪 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。这是新组的第一个版本。