Kotlinv2.4.0

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 适用于其他平台,它们也可能仅在 Android 目标中可用。这背后的原因通常是该实现在很大程度上使用了平台特性,编写其他平台的实现需要一定时间。

通常,这类 API 会在 Jetpack Compose 的 Android 目标中引入后,被移植到 Compose Multiplatform。

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

请求移植 Android API

对于每个可以从 Android 移植的 API,在 Compose Multiplatform YouTrack 中都有一个待解决的问题。如果您发现某个 API 可以从 Android 移植并通用化,但目前还没有相关的问题,请创建一个