Compose Compiler

透過 Kotlin 編譯器外掛程式轉換 @Composable 函式,並啟用最佳化功能。
最新版 穩定版 候選版 Beta 版 Alpha 版
2022 年 6 月 1 日 1.1.1 - 1.2.0-beta03 -

結構

Compose 是由 androidx 中的 7 個 Maven 群組 ID 所組成。每個群組都包含一個指定功能子集,且各有一組專屬的版本資訊。

下表提供各群組的說明和每組版本資訊的連結。

群組說明
compose.animation在其 Jetpack Compose 應用程式中建構動畫,以提供豐富的使用者體驗。
compose.compiler透過 Kotlin 編譯器外掛程式轉換 @Composable 函式,並啟用最佳化功能。
compose.foundation透過現成可用的建構區塊編寫 Jetpack Compose 應用程式,並擴充基礎以建構您自己的設計系統元件。
compose.material運用現成可用的質感設計元件建構 Jetpack Compose UI。這是更高層級的 Compose 進入點,用意是確保提供的元件與 www.material.io 上所述元件相符。
compose.material3運用新一代的 Material Design 3 元件建構 Jetpack Compose UI。Material 3 包含更新後的主題設定和元件,以及動態色彩等 Material You 個人化功能,並在設計方面與全新的 Android 12 視覺風格及系統 UI 相呼應。
compose.runtimeCompose 的程式設計模型和狀態管理的基礎建構區塊,以及 Compose Compiler 外掛程式指定的核心執行階段。
compose.ui與裝置互動所需的 Compose UI 基礎元件,包括版面配置、繪圖及輸入。

宣告依附元件

如需新增 Compose 的依附元件,須將 Google Maven 存放區新增至專案中。詳情請參閱「Google 的 Maven 存放區」一文。

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-beta02"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-beta02"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.2 版本

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 版的第一個測試版!自上次 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-alpha051.2.0-alpha05 版本包含這些修訂版本。

1.2.0-alpha04 版本

2022 年 2 月 23 日

發布 androidx.compose.compiler:compiler:1.2.0-alpha041.2.0-alpha04 版本包含這些修訂版本。

1.2.0-alpha03 版本

2022 年 2 月 9 日

發布 androidx.compose.compiler:compiler:1.2.0-alpha031.2.0-alpha03 版本包含這些修訂版本。

1.2.0-alpha02 版本

2022 年 1 月 26 日

發布 androidx.compose.compiler:compiler:1.2.0-alpha021.2.0-alpha02 版本包含這些修訂版本。

1.2.0-alpha01 版本

2022 年 1 月 12 日

發布 androidx.compose.compiler:compiler:1.2.0-alpha011.2.0-alpha01 版包含這些修訂版本。

新功能

  • 已新增對 Kotlin 1.6.10 的支援。

1.1 版本

1.1.1 版本

2022 年 2 月 23 日

發布 androidx.compose.compiler:compiler:1.1.11.1.1 版本包含這些修訂版本。

修正錯誤

1.1.0 版本

2022 年 2 月 9 日

發布 androidx.compose.compiler:compiler:1.1.01.1.0 版本包含這些修訂版本。

自 1.0.0 版本以來的重要變更

  • 穩定支援 Android 12 的過度捲動效果
  • 改善觸控目標縮放功能
  • 請注意,對於 Compose 1.0 版,Material 元件會展開版面配置空間,以符合 Material 無障礙功能準則對於觸控目標尺寸的規定。舉例來說,即使您將觸控目標按鈕的尺寸設定為小於最小尺寸 48x48dp,系統仍會將按鈕擴大為這個尺寸。這樣一來,Compose Material 的行為就會跟質感設計元件相同,在混用 Views 和 Compose 時便可確保行為一致。利用 Compose Material 元件建立使用者介面時,這項變更還能確保達到觸控目標無障礙功能的最低要求。
  • 穩定支援導覽邊欄
  • 將先前推出的一些實驗性 API 升級為穩定版
  • 支援更新版本的 Kotlin

1.1.0-rc03 版本

2022 年 1 月 26 日

發布 androidx.compose.compiler:compiler:1.1.0-rc031.1.0-rc03 版本包含這些修訂版本。

修正錯誤

  • 更新為可支援 Compose Material 1.1.0-rc03

1.1.0-rc02 版本

2021 年 12 月 16 日

發布 androidx.compose.compiler:compiler:1.1.0-rc021.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-rc011.1.0-rc01 版本包含這些修訂版本。

依附元件變更

  • Compose Compiler 1.1.0-rc01 與 Kotlin 1.6.0 相容。
  • 相容的 1.6.10 版本可透過 buildId 8003490 的 androidx.dev SNAPSHOT 取得。下列依附元件程式碼片段可為 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-beta041.1.0-beta04 版本包含這些修訂版本。

新功能

  • 更新為可與 Kotlin 1.6.0 相容

1.1.0-beta03 版本

2021 年 11 月 17 日

發布 androidx.compose.compiler:compiler:1.1.0-beta031.1.0-beta03 版本包含這些修訂版本。

1.1.0-beta02 版本

2021 年 11 月 3 日

發布 androidx.compose.compiler:compiler:1.1.0-beta021.1.0-beta02 版本包含這些修訂版本。

1.1.0-beta01 版本

2021 年 10 月 27 日

發布 androidx.compose.compiler:compiler:1.1.0-beta011.1.0-beta01 版本包含這些修訂版本。

1.1.0-alpha06 版本

2021 年 10 月 13 日

發布 androidx.compose.compiler:compiler:1.1.0-alpha061.1.0-alpha06 版本包含這些修訂版本。

1.1.0-alpha05 版本

2021 年 9 月 29 日

發布 androidx.compose.compiler:compiler:1.1.0-alpha051.1.0-alpha05 版本包含這些修訂版本。

1.1.0-alpha04 版本

2021 年 9 月 15 日

發布 androidx.compose.compiler:compiler:1.1.0-alpha041.1.0-alpha04 版本包含這些修訂版本。

1.1.0-alpha03 版本

2021 年 9 月 1 日

發布 androidx.compose.compiler:compiler:1.1.0-alpha031.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-alpha021.1.0-alpha02 版本包含這些修訂版本。

1.1.0-alpha01 版本

2021 年 8 月 4 日

發布 androidx.compose.compiler:compiler:1.1.0-alpha011.1.0-alpha01 版本包含這些修訂版本。

1.0 版本

1.0.5 版本

2021 年 11 月 3 日

發布 androidx.compose.compiler:compiler:1.0.51.0.5 版包含這些修訂版本。

修正錯誤

  • 已修正追蹤 derivedStateOf 例項時的當機問題。(aosp/1792247)

1.0.4 版本

2021 年 10 月 13 日

發布 androidx.compose.compiler:compiler:1.0.41.0.4 版本包含這些修訂版本。

依附元件更新

  • 已更新為依附 Kotlin 1.5.31

1.0.3 版本

2021 年 9 月 29 日

發布 androidx.compose.compiler:compiler:1.0.31.0.3 版本包含這些修訂版本。

依附元件更新

  • 已更新為依附 Kotlin 1.5.30

1.0.2 版本

2021 年 9 月 1 日

發布 androidx.compose.compiler:compiler:1.0.21.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.11.0.1 版本包含這些修訂版本。

依附元件更新

  • 已更新為依附 Kotlin 1.5.21

1.0.0 版本

2021 年 7 月 28 日

發布 androidx.compose.compiler:compiler:1.0.01.0.0 版本包含這些修訂版本。

1.0.0 的主要功能

這是 Compose 發行的第一個穩定版本。如需詳細資訊,請參閱官方的 Compose Release 網誌

1.0.0-rc02 版本

2021 年 7 月 14 日

發布 androidx.compose.compiler:compiler:1.0.0-rc021.0.0-rc02 版本包含這些修訂版本。

1.0.0-rc01 版本

2021 年 7 月 1 日

發布 androidx.compose.compiler:compiler:1.0.0-rc011.0.0-rc01 版本包含這些修訂版本。

1.0.0-beta09 版本

2021 年 6 月 16 日

發布 androidx.compose.compiler:compiler:1.0.0-beta091.0.0-beta09 版本包含這些修訂版本。

1.0.0-beta08 版本

2021 年 6 月 2 日

發布 androidx.compose.compiler:compiler:1.0.0-beta081.0.0-beta08 版本包含這些修訂版本。

1.0.0-beta07 版本

2021 年 5 月 18 日

發布 androidx.compose.compiler:compiler:1.0.0-beta071.0.0-beta07 版本包含這些修訂版本。

1.0.0-beta06 版本

2021 年 5 月 5 日

發布 androidx.compose.compiler:compiler:1.0.0-beta061.0.0-beta06 版本包含這些修訂版本。

1.0.0-beta05 版本

2021 年 4 月 21 日

發布 androidx.compose.compiler:compiler:1.0.0-beta051.0.0-beta05 版本包含這些修訂版本。

1.0.0-beta04 版本

2021 年 4 月 7 日

發布 androidx.compose.compiler:compiler:1.0.0-beta041.0.0-beta04 版本包含這些修訂版本。

1.0.0-beta03 版本

2021 年 3 月 24 日

發布 androidx.compose.compiler:compiler:1.0.0-beta031.0.0-beta03 版本包含這些修訂版本。

1.0.0-beta02 版本

2021 年 3 月 10 日

發布 androidx.compose.compiler:compiler:1.0.0-beta021.0.0-beta02 版本包含這些修訂版本。

1.0.0-beta01 版本

2021 年 2 月 24 日

發布 androidx.compose.compiler:compiler:1.0.0-beta011.0.0-beta01 版本包含這些修訂版本。

這是發行的第一個 Compose 1.0.0 Beta 版本。

1.0.0-alpha12 版本

2021 年 2 月 10 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha121.0.0-alpha12 版本包含這些修訂版本。

1.0.0-alpha11 版本

2021 年 1 月 28 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha111.0.0-alpha11 版本包含這些修訂版本。

1.0.0-alpha10 版本

2021 年 1 月 13 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha101.0.0-alpha10 版本包含這些修訂版本。

1.0.0-alpha09 版本

2020 年 12 月 16 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha091.0.0-alpha09 版本包含這些修訂版本。

1.0.0-alpha08 版本

2016 年 12 月 2 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha081.0.0-alpha08 版本包含這些修訂版本。

1.0.0-alpha07 版本

2020 年 11 月 11 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha071.0.0-alpha07 版本包含這些修訂版本。

新功能

  • 穩定性推論與傳播。Compose Compiler 外掛程式會分析要進行編譯的類型,藉此在進入執行階段之前先推斷是否能夠執行特定最佳化功能。接著,將此推論結果合成為類別的中繼資料,以供其他模組中的編譯器使用。此外,這些推論的執行階段結果會透過中繼資料,於組合期間傳送至可組合的呼叫。這會導致需要針對可組合函式使用不同的中繼資料通訊協定,也就是說,使用 Alpha07 編譯器與使用舊版編譯器進行編譯的可組合函式,兩者不具二進位檔相容性。(aosp/1431988)

1.0.0-alpha06 版本

2017 年 10 月 28 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha061.0.0-alpha06 版本包含這些修訂版本。

1.0.0-alpha05 版本

2017 年 10 月 14 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha051.0.0-alpha05 版本包含這些修訂版本。

1.0.0-alpha04 版本

2020 年 10 月 1 日

發布 androidx.compose.compiler:compiler:1.0.0-alpha041.0.0-alpha04 版本包含這些修訂版本。

androidx.compose:compose-compiler 已重構為 androidx.compose.compiler:compiler。這是新群組中的第一個版本。