使用android桌面库,组成桌面

问题描述 投票:0回答:1

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) }

它有 androidx 导入。

是否可以在可用于其他桌面环境的撰写桌面上运行其他 Android 库,例如 ExoplayerGoogle Accompanist

kotlin android-jetpack-compose kotlin-multiplatform compose-desktop
1个回答
8
投票

不,这只是一个名字。

Compose 最初是由 Android 团队创建的,后来他们与 JetBrains 合作创建了多平台版本。但 Android 团队决定不更改包的名称(例如,删除前缀

androix
),JetBrains 必须使用相同的包名称以实现兼容性。

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

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

Bitmap
BitmapFactory
ImageDecoder
,因此移植它会非常困难。 Coil 作者正在做多平台的移植,3.0.0 应该有它,目前处于 alpha 状态。

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

© www.soinside.com 2019 - 2024. All rights reserved.