Compose Compiler

借助 Kotlin 编译器插件,转换可组合函数(@Composable)并实现优化。
最近更新时间 稳定版 候选版本 Beta 版 Alpha 版
2022 年 8 月 3 日 1.2.0 1.3.0-rc02 - -

结构

Compose 由 androidx 中的 7 个 Maven 组 ID 构成。每个组中都有一套特定用途的功能以及相应的版本说明。

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

说明
compose.animation在 Jetpack Compose 应用中构建动画,丰富用户体验。
compose.compiler借助 Kotlin 编译器插件,转换可组合函数 (@Composable) 并实现优化。
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 界面。Material 3 中包括了更新后的主题和组件,以及动态配色等 Material You 个性化功能,旨在与新的 Android 12 视觉风格和系统界面相得益彰。
compose.runtimeCompose 编程模型和状态管理的基本构建块,以及 Compose Compiler 插件针对的核心运行时。
compose.ui与设备互动所需的 Compose UI 的基本组件,包括布局、绘图和输入。

声明依赖项

如需添加 Compose 的依赖项,您必须将 Google Maven 仓库添加到项目中。如需了解详情,请参阅 Google Maven 仓库

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

Groovy

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.3.0"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库的改进有自己的见解,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

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

版本 1.3

版本 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。 这是新包中的第一个版本。