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.*androidx.* 類別,且該 API 適用於其他平台,某些 API 的部分內容仍可能僅適用於 Android 目標。這背後的原因通常是實作使用了許多平台特性,且為其他平台撰寫其他實作需要時間。

通常,這類 API 會在 Android 目標的 Jetpack Compose 中引入後,再移植到 Compose Multiplatform。

在 Compose Multiplatform 1.9.3 中,以下 API 部分在 commonMain不可用

請求移植 Android API

對於每個可以從 Android 移植的 API,在 Compose Multiplatform 的 YouTrack 中都有一個開放的問題 (issue)。如果您看到某個 API 可以從 Android 移植並通用化,且目前尚未存在相關問題,請建立一個