Compose Compiler
最近更新时间 | 稳定版 | 候选版 | 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.runtime | Compose 编程模型和状态管理的基本构建块,以及 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.15
和 androidx.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.14
和 androidx.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.13
和 androidx.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.12
和 androidx.compose.compiler:compiler-hosted:1.5.12
。版本 1.5.12 包含这些提交内容。
bug 修复
版本 1.5.11
2024 年 3 月 20 日
发布了 androidx.compose.compiler:compiler:1.5.11
和 androidx.compose.compiler:compiler-hosted:1.5.11
。版本 1.5.11 包含这些提交内容。
备注
从此版本开始,如果使用包含此方法的运行时编译模块,编译器现在会调用
startReplaceGroup
,而不是startReplacableGroup
。startReplaceGroup
是在 Compose Runtime1.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 Compiler 现在会通过递归遍历基类/替换项来正确转换被替换的函数。(I2c9f9、b/316196500)
- 确保在本地声明未直接使用时,函数引用 memoization 不会尝试捕获本地声明的隐式父级。(Ib1267)
- 修复了可组合项跨内嵌 lambda 的代码生成问题(如果未启用“nonSkippingGroupOptimization”,则很难遇到此 bug)。(Icb2fd、b/325502738)
版本 1.5.10
2024 年 2 月 21 日
发布了 androidx.compose.compiler:compiler:1.5.10
和 androidx.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.9
和 androidx.compose.compiler:compiler-hosted:1.5.9
。版本 1.5.9 中包含这些提交内容。
bug 修复
- 修复了匿名对象初始化程序中的可组合项调用。(b/320261458、96315c)
- 将递归本地声明计为捕获。(b/318745941、e7b4b0)
- 修复了固有 remember 更改与 Java 方法引用相关的行为的问题,方法是强制为具有固有 remember 的函数类型设置 .changed。(b/319810819、77128e)
- 添加了一项实验性优化,该优化会移除不可跳过的函数(例如明确标记为
@NonSkippableComposable
的函数)以及隐式不可跳过的函数(例如内嵌函数和返回非单位值的函数,例如remember
)周围的组。 - 您可以通过将插件选项
-P plugin:androidx.compose.compiler.plugins.kotlin:nonSkippingGroupOptimization=true
传递给 Kotlin 编译器来启用此优化。(I1688f)
版本 1.5.8
2024 年 1 月 10 日
发布了 androidx.compose.compiler:compiler:1.5.8
和 androidx.compose.compiler:compiler-hosted:1.5.8
。版本 1.5.8 中包含这些提交内容。
新功能
- 支持 Kotlin 1.9.22
bug 修复
- 修复了使用 Java21 构建时 Compose 编译器 build 会抛出异常的 bug。使用 Google Maven 中的 Compose 编译器(即不自行构建)的用户从未受到此 bug 的影响。(b/316644294)
- 修复了以下 bug:系统会为非内嵌 lambda 的某些调用方报告
COMPOSABLE_EXPECTED
错误。(b/309364913) - 针对公开函数中的默认形参添加了编译错误(之前仅限于抽象函数)。Compose 目前不支持替换被替换函数中的默认参数,并且在运行时使用默认参数替换可组合函数会失败。使用
@Suppress("ABSTRACT_COMPOSABLE_DEFAULT_PARAMETER_VALUE")
进行抑制,但请注意,如果在不为参数提供默认值的情况下替换此类函数,则会导致运行时崩溃。b/317490247 - 修复了固有 remember 中的 bug,该 bug 会导致值无法正确传播。(b/316327367)
外部贡献
- 修复了文档拼写错误。(aosp/288106)
版本 1.5.7
2023 年 12 月 19 日
发布了 androidx.compose.compiler:compiler:1.5.7
和 androidx.compose.compiler:compiler-hosted:1.5.7
。版本 1.5.7 中包含这些提交内容。
bug 修复
- 修复了
remember()
键参数调用 Composable 函数时 Compose 运行时崩溃的问题 (b/315855015) - 修复了使用
return@
时 Compose 运行时崩溃的问题。(b/315821171) - 避免在 Memoization 键中使用绝对路径,以便更好地利用构建缓存。(b/313937484)
版本 1.5.6
2023 年 12 月 6 日
发布了 androidx.compose.compiler:compiler:1.5.6
和 androidx.compose.compiler:compiler-hosted:1.5.6
。版本 1.5.6 中包含这些提交内容。
新功能
- 支持 Kotlin 1.9.21
bug 修复
- 启用固有 remember - 一种编译器转换,用于在 Compose 编译器插件中内嵌 remember,并将
.equals
比较替换为稳定参数的参数元数据的 int 比较。这会导致使用的槽数减少,运行时进行的比较次数也减少。您可以通过提供编译器插件参数 -Pplugin:androidx.compose.compiler.plugins.kotlin:intrinsicRemember=false
来停用此选项。(If675f) - 修复了自适应函数引用和内嵌参数的 memoization 问题。(b/312738720)
- 退出内嵌函数调用时实现组 (b/312242547)
外部贡献
- 修复了以下问题:由于可组合函数中缺少 return 语句(当它是最后一个语句并返回 null 常量时),导致 k/native 和 k/wasm 运行时崩溃 (aosp/2835716)
版本 1.5.5
2023 年 11 月 29 日
发布了 androidx.compose.compiler:compiler:1.5.5
和 androidx.compose.compiler:compiler-hosted:1.5.5
。版本 1.5.5 中包含这些提交内容。
bug 修复
- 修复了在查找被替换的可组合项类型期间发生的崩溃问题 (Ib6d2c、b/297665426)
- 向已知参数添加了
stabilityConfigurationPath
(之前的 bug 阻止了使用配置文件标志)。(b/309765121) - 修复了 Memoization 问题 (I081d1、I4d7bf)
- 通过考虑内建 remember 中的不确定形参状态修复了重组问题 (b/263402091)
- 修复了内建 remember 的调试行信息 (Ic8cf5)
- 修复了编译时查找被覆盖的可组合类型期间发生的崩溃问题(IR 降低失败)(b/297665426)
- 向已知参数添加了
外部贡献
- 为带参数的稳定函数引用创建了备忘录 (I4d7bf、b/302680514)
版本 1.5.4
2023 年 11 月 7 日
发布了 androidx.compose.compiler:compiler:1.5.4
和 androidx.compose.compiler:compiler-hosted:1.5.4
。版本 1.5.4 中包含这些提交内容。
依赖项更新
- Compose Compiler 现在与 Kotlin 1.9.20 兼容
新功能
- 添加了用于启用强力跳过模式的实验性选项。强力跳过模式允许跳过参数不稳定的可组合项。此外,具有不稳定捕获的 lambda 会被缓存。此功能尚处于实验阶段,不适用于正式使用。(22421e)
- 添加了用于启用/停用源/轨迹信息的标志。(4d45f09)
- 允许通过配置文件配置外部类的稳定性。(If40eb)
bug 修复
- 修复了在未收集来源信息时从可组合函数提前退出的问题。(fe6267)
- 修复了从可组合函数继续的问题。(948362)
- 修复了以下问题:从具有多个依赖于表达式返回值类型的重载的函数调用中调用可组合函数时,解析会出错。(2d36d0)
- 修复了函数引用没有调度接收器时发生的 Memoization 问题。(fc2326)
- 修复了在某些情况下会阻止重组 lambda 的脏值检查。(db3699)
- 修复了在跨模块增量编译时出现的稳定性问题。(7d3e127)
- 将
@DontMemoize
的范围缩小到仅限 lambda 表达式。(7a7fa52) - 修复了使用可组合 fun 接口作为 lambda 时无法正确捕获变量的问题。(5ae3556)
外部贡献
- 使用结构等式符号进行数字和 null 比较 (c612a0)
版本 1.5.3
2023 年 8 月 29 日
发布了 androidx.compose.compiler:compiler:1.5.3
、androidx.compose.compiler:compiler-daemon:1.5.3
和 androidx.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.2
、androidx.compose.compiler:compiler-daemon:1.5.2
和 androidx.compose.compiler:compiler-hosted:1.5.2
。版本 1.5.2 中包含这些提交内容。
bug 修复
- 在返回常量的可组合函数中为返回语句插入行号。(I42d89)
- 修复了切换到新编译器插件入口点导致的内存泄漏问题。(4f0a101)
- 停止在 Compose 编译器中转换不可组合函数接口。这会导致 fun 接口的处理方式与 lambda 相同,包括 memoization 规则。(28b3ce9)
- 使用 vararg 参数类型来推断调用点的稳定性。(bc83645)
版本 1.5.1
2023 年 7 月 26 日
发布了 androidx.compose.compiler:compiler:1.5.1
、androidx.compose.compiler:compiler-daemon:1.5.1
和 androidx.compose.compiler:compiler-hosted:1.5.1
。版本 1.5.1 中包含这些提交内容。
bug 修复
- 修复了
@ReadOnlyComposable
函数中的组合轨迹事件标记,其中的提前返回会导致轨迹损坏。
版本 1.5.0
2023 年 7 月 18 日
发布了 androidx.compose.compiler:compiler:1.5.0
、androidx.compose.compiler:compiler-daemon:1.5.0
和 androidx.compose.compiler:compiler-hosted:1.5.0
。版本 1.5.0 中包含这些提交内容。
实验性 K2 支持
- Compose Compiler 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.8
、androidx.compose.compiler:compiler-daemon:1.4.8
和 androidx.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.7
、androidx.compose.compiler:compiler-daemon:1.4.7
和 androidx.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.6
、androidx.compose.compiler:compiler-daemon:1.4.6
和 androidx.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.5
、androidx.compose.compiler:compiler-daemon:1.4.5
和 androidx.compose.compiler:compiler-hosted:1.4.5
。版本 1.4.5 中包含这些提交内容。
注意:此版本的 Compose 编译器要求您的构建环境使用 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
外部贡献
- 改进了对 Kotlin/Native 中的可组合函数的支持。f52b6aeed22400dd4f4a4f05559a9aa42642402c
版本 1.4.4
版本 1.4.4
2023 年 3 月 22 日
发布了 androidx.compose.compiler:compiler:1.4.4
、androidx.compose.compiler:compiler-daemon:1.4.4
和 androidx.compose.compiler:compiler-hosted:1.4.4
。版本 1.4.4 中包含这些提交内容。
bug 修复
版本 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
字段,可指示群组是否用于调用内嵌可组合函数。如果isInline
是true
,则会调用内嵌可组合函数。不过,如果调用对象是来自模块的内嵌可组合函数,而且相应模块是由不会生成内嵌函数信息的 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 以来的重要变更
- 支持 Kotlin 1.7.0
- 请阅读我们的博文,了解 Compose 中新的 Compose 编译器版本控制策略。
版本 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
中的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 滚动效果提供稳定支持
- 改进了触摸目标大小调整
- 请注意,对于 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
与 Kotlin1.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
与 Kotlin1.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
,使其依赖于 Kotlin1.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
。
这是新包中的第一个版本。