Skip to content

僅限 Android 的元件

Compose Multiplatform 建立在 Jetpack Compose 之上。Compose Multiplatform 的大部分功能都適用於所有平台。然而,有些 API 和函式庫只能在 Android 目標平台中使用。這可能是因為它們是 Android 特有的,或者尚未移植到其他平台。本頁總結了 Compose Multiplatform API 的這些部分。

有時,在 Jetpack Compose 文件 或社群建立的文章中,您可能會發現一個只能在 Android 目標平台中使用的 API。如果您嘗試在 commonMain 程式碼中使用它,您的 IDE 將會告知您此 API 不可用。

僅限 Android 的 API

僅限 Android 的 API 是 Android 特有的,在其他平台上不可用。這是因為其他平台不需要 Android 使用的某些概念。該 API 通常使用來自 android.* 套件的類別或配置 Android 特有的行為。以下是一些僅限 Android 的 API 部分的範例:

通常,將此類 API 部分通用化沒有充分的理由,因此最好只將其保留在 androidMain 中。

簽名中包含 Android 類別的 API

Compose Multiplatform 中的某些 API 部分在其簽名中使用了 android.*androidx.* (不包括 androidx.compose.*),但其行為也適用於其他平台:

它們未來可能會被移植到 commonMain,這將取決於複雜度和需求。

在開發應用程式時常用的 API,例如權限、裝置 (藍牙、GPS、相機) 和 IO (網路、檔案、資料庫),超出了 Compose Multiplatform 的範圍。

簽名中不含 Android 類別的 API

某些 API 部分可能僅適用於 Android 目標平台,即使其簽名不包含 android.*androidx.* 類別,且該 API 適用於其他平台。這背後的原因通常是實作使用了許多平台特有功能,並且需要時間為其他平台編寫其他實作。

通常,此類 API 部分在它們被引入 Jetpack Compose 的 Android 目標平台之後,會被移植到 Compose Multiplatform。

在 Compose Multiplatform 1.8.2 中,以下 API 部分在 commonMain 可用:

請求移植 Android API

對於可以從 Android 移植的每個 API,Compose Multiplatform 的 YouTrack 中都有一個 開放問題。如果您認為某個 API 可以從 Android 移植並通用化,但目前沒有針對它的現有問題,請 建立一個