使用 Android 桌面库,构建桌面

Art*_*hur 2 kotlin kotlin-multiplatform android-jetpack-compose compose-desktop

在compose-desktop的示例中,它得到了

import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application

fun main() = application {
    var isOpen by remember { mutableStateOf(true) }
    var isAskingToClose by remember { mutableStateOf(false) }
Run Code Online (Sandbox Code Playgroud)

它有 androidx 导入。

是否可以在可用于其他桌面环境的 compose 桌面上运行其他 Android 库(例如ExoplayerGoogle Accompanist) ?

Phi*_*hov 7

不,这只是一个名字。

Compose 最初是由 Android 团队创建的,后来他们与 JetBrains 合作创建了多平台版本。但 Android 团队决定不更改包的名称(例如,删除前缀androix),JetBrains 必须使用相同的包名称以实现兼容性。

您无法运行任何特定于 Android 的库 - 使用 Compose for Desktop 创建的应用程序作为普通 JVM 应用程序运行。

根据这些库对 Android 原语的依赖程度,将它们移植到桌面可能更容易或更困难。例如,Coil 实际上是围绕 Android 框架类(如BitmapBitmapFactoryImageDecoder)构建的,因此移植它会非常困难。

许多 Google Accompanist 库仅在 Android 平台上有意义。如果您需要在Desktop上使用其中一些,您可以尝试复制粘贴源代码,看看是否可以在Desktop上运行。