Compose Compiler

借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2024 年 8 月 7 日 1.5.15 - - -

结构

Compose 由 androidx 中的 7 个 Maven 组 ID 构成。每个组都包含一套特定用途的功能,并各有专属的版本说明。

下表介绍了各个组的内容,点击链接即可查看其版本说明。

说明
compose.animation在 Jetpack Compose 应用中构建动画,丰富用户体验。
compose.compiler借助 Kotlin 编译器插件,转换 @Composable functions(可组合函数)并启用优化功能。
compose.foundation使用现成可用的构建块编写 Jetpack Compose 应用,还可扩展 Foundation 以构建您自己的设计系统元素。
compose.material使用现成可用的 Material Design 组件构建 Jetpack Compose UI。这是更高层级的 Compose 入口点,旨在提供与 www.material.io 上描述的组件一致的组件。
compose.material3使用 Material Design 3(新一代 Material Design)组件构建 Jetpack Compose UI。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。
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"
    }
}

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

反馈

您的反馈将帮助我们改进 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 和原生编译进行了上游修复。如需了解完整详情,请参阅上面的提交范围。

版本 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
  • 修复了非基元内联类的值形参中不可为 null 的类型。(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 修复

  • 修复了被推断为“不稳定”的嵌套外部泛型类型。(I3437fb/327643787
  • 支持多个稳定性配置文件。(I8db14b/325326744
  • 现在,Compose Compiler 可以通过递归遍历基类/替换来正确转换被替换的函数。(I2c9f9b/316196500
  • 确保函数引用记忆不会尝试捕获未直接使用的本地声明的隐式父项。(Ib1267
  • 修复了可组合交叉内联 lambda 的代码生成问题(在未启用“nonSkippingGroupOptimization”的情况下很难遇到此 bug)。(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 中包含这些提交内容

bug 修复

  • 支持在 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 中包含这些提交内容

bug 修复

  • 修复了匿名对象初始化程序中的可组合调用。(b/32026145896315c
  • 将递归本地声明计为捕获。(b/318745941e7b4b0
  • 通过针对具有固有记忆功能的函数类型强制更改 .changed,修复了固有特性 remember 更改与 Java 方法引用相关的行为。(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

bug 修复

  • 修复了使用 Java21 构建时 Compose Compiler build 抛出异常的 bug。使用 Google Maven 中的 Compose Compiler(即未自行构建)的用户绝不会受到此 bug 的影响。(b/316644294)
  • 修复了针对非内嵌 lambda 的某些调用方报告 COMPOSABLE_EXPECTED 错误的 bug。(b/309364913)
  • 为开放函数中的默认参数添加了编译错误(以前只有它仅限于抽象函数)。Compose 目前不支持用被替换的函数替换默认参数,并且在运行时用默认参数替换可组合函数会失败。使用 @Suppress("ABSTRACT_COMPOSABLE_DEFAULT_PARAMETER_VALUE") 进行抑制,但请注意,如果不为形参提供默认值就替换此类函数,则会导致运行时崩溃。(b/317490247)
  • 修复了固有记忆功能中阻止值正确传播的 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() 键参数调用可组合函数时 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 修复

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

外部贡献

  • 修复了当可组合函数是最后一个语句并返回 null 常量时,由于可组合函数中缺少 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 中包含这些提交内容

bug 修复

  • 修复了在查找被替换的可组合项类型期间发生崩溃的问题(Ib6d2cb/297665426) <ph type="x-smartling-placeholder">
      </ph>
    • stabilityConfigurationPath 添加到了已知参数中(之前存在 bug,会导致配置文件标志无法使用)。(b/309765121)
    • 记忆功能修复(I081d1I4d7bf
    • 通过考虑固有记忆中的“不确定”参数状态进行了重组修复 (b/263402091)
    • 修复了固有记忆功能的调试行信息 (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 Compiler 现在与 Kotlin 1.9.20 兼容

新功能

  • 添加了实验性选项,以启用强跳过模式。强跳过模式允许跳过参数不稳定的可组合项。 此外,系统会记住包含不稳定捕获的 lambda。此功能处于实验阶段,尚未准备好投入实际使用。(22421e)
  • 添加了用于启用/停用来源/跟踪记录信息的标志。(4d45f09)
  • 允许通过配置文件配置外部类的稳定性。(If40eb)

bug 修复

  • 修复了未收集来源信息时可组合函数提前退出的问题。(fe6267)
  • 修复了从可组合函数继续执行操作的问题。(948362)
  • 修复了从具有多个过载且依赖于表达式返回值类型的过载的函数调用中调用可组合函数时的解决方法。(2d36d0
  • 修复了函数引用没有调度接收器时的记忆问题。(fc2326
  • 修复了在某些情况下阻止 lambda 重组的脏检查。(db3699)
  • 修复了跨模块增量编译时的稳定性。(7d3e127
  • @DontMemoize 的范围缩小为仅 lambda 表达式。(7a7fa52
  • 修复了将可组合函数接口用作 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 修复

  • 在返回常量的可组合函数中,为返回语句插入行号。(I42d89
  • 修复了因切换到新的编译器插件入口点而导致的内存泄漏问题。(4f0a101)
  • 停止在 Compose 编译器中转换不可组合的有趣接口。这会使得有趣接口的处理方式与 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 编译器提供了实验性支持。K2 尚不支持某些 Compose 功能,编译器的未来版本将支持这些功能。

自版本 1.4.0 以来的重要变更

  • Kotlin 版本已更新至 1.9.0。
  • 已废弃 @Composable lambda 调用的命名参数。此功能依赖于内部编译器 API,K2 将不提供支持。
  • 添加了一个诊断,用于在预期/实际调用上验证 @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 Compiler 现在依赖于 Java11(而不是 Compose Compiler 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 Compiler 版本要求构建环境使用 Java 17 及更高版本。根据用户反馈,我们会将此要求还原到 Java 11,然后再推出另一个版本 (1.4.6),以便为使用旧版 Java 的用户提供更好的支持。

新功能

支持 Kotlin 1.8.20

bug 修复

  • 将可组合调用运算符替换的要求传播到使用相应注解扩展 lambda 接口的类和接口。f8f2f78a1a769c2373201027f12700e772e4e97e
  • 允许在 getValue 运算符上使用 @Composable 注解,并将为委托生成的 getter 标记为 IR 中的可组合项,以确保稍后正确转换。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 修复

  • 修复了可组合内嵌 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 修复

  • 停用之前引入了一些代码生成 bug 的固有记忆优化。
  • 在包含 vararg 参数的函数中停用了固有记忆功能。
  • 修复了使用默认参数的可组合项出现的错误跳过问题
  • 新增了在检查 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
  • 已关闭固有记忆功能
  • 界面工具数据类 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 降低时会破坏 Compose 中的 Kotlin/JS 支持的 bug (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 修复

  • 修复了在某些情况下 Compose Compiler 错误地将单元类型标记为可组合项的 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 中包含这些提交内容

bug 修复

  • 移除了可组合的跟踪事件生成代码 (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 中的 NullPointerExceptionaosp/1947059b/206677462
  • 修复了在 Android 上从剪贴板读取内容时剪贴板内容导致的崩溃问题。(I06020b/197769306
  • 修复了 LazyVerticalGrid 中的 RTL(aosp/1931080b/207510535

版本 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 无障碍功能指南触摸目标尺寸的要求。例如,按钮触摸目标将扩展为至少 48x48dp 的尺寸,即使您将按钮尺寸设为更小也不影响。这会使 Compose Material 与 Material Design 组件的行为保持一致,以便在混合使用 View 和 Compose 时提供一致的行为。此变更还可确保在您使用 Compose Material 组件创建界面时,能够满足触摸目标无障碍功能的最低要求。
  • 导航栏提供稳定支持
  • 将之前的一些实验性 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 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 兼容。
  • 可通过 buildId 为 8003490 的 androidx.dev SNAPSHOT 提供兼容的 1.6.10 build。以下依赖项代码段将为 Compose Compiler 配置 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 Compiler 现在支持较低版本的 Compose Runtime (1.0)。在此变更之前,Compose Compiler 仅与相同版本或更高版本的 Compose Runtime 兼容。此变更生效后,Compose Compiler 可与较低版本的 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 Compiler 插件会分析其编译的类型,以推断其是否符合进行特定运行时优化的条件。然后,这一推断结果将作为元数据合成到类上,以供编译器在其他模块中利用。此外,这些推断的运行时结果会在组合过程中随元数据一起传递给可组合调用。这就需要对可组合函数使用不同的元数据协议,这意味着,使用 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。 这是新包中的第一个版本。