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.*)的类,但它们的行为也适用于其他平台:

未来,这些 API 可能会移植到 commonMain,具体取决于复杂性和需求。

在开发应用程序时经常使用的 API,例如权限、设备(蓝牙、GPS、摄像头)和 I/O(网络、文件、数据库),不属于 Compose Multiplatform 的范围。

签名中不含 Android 类的 API

即使某些 API 的签名不包含 android.*androidx.* 类,并且该 API 适用于其他平台,它们也可能仅适用于 Android 目标平台。这背后的原因通常是实现使用了许多平台特有的内容,并且为其他平台编写其他实现需要时间。

通常,这类 API 会在 Jetpack Compose 中针对 Android 目标平台引入后移植到 Compose Multiplatform。

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

Android API 移植请求

对于每个可以从 Android 移植的 API,Compose Multiplatform YouTrack 中都有一个 未解决的 issue。如果你发现一个 API 可以从 Android 移植并通用化,并且没有针对它的现有 issue,请 创建一个