[Android翻译]Jetpack Compose - 桌面

1,339 阅读2分钟

原文链接:zeromod.in/posts/jetpa…

原文作者:zeromod.in/

发布时间:2020年7月31日

"安卓系统构建原生UI的现代工具箱"

Jetpack Compose简化并加速了Android上的UI开发。用更少的代码、强大的工具和直观的Kotlin API,快速将你的应用变为现实。

当compose专注于Android的UI工具包时,在AOSP gerrit中有一个神秘的提交,提到 "桌面UI工作--基本信息"。这在开发者中造成了很大的关注度,因为这是移动开发者最喜欢的功能之一,也就是多平台,写一次代码就可以到处跑。Flutter于2017年5月推出,是现代支持Multi Platform的框架之一。

试试神秘的提交

所以我有兴趣尝试一下AOSP gerrit中的这个提交,其中包括通过Compose运行桌面应用的示例。Compose 是作为 gerrit 中 framework/base repo 的一部分开发的。

compose-desktop是由skia支持的。

Skia是一个开源的2D图形库,它提供了通用的API,可以在各种硬件和软件平台上工作。它作为Google Chrome和Chrome OS、Android、Flutter、Mozilla Firefox和Firefox OS等众多产品的图形引擎。

另外,在skia的基础上使用 skija

一个现代化的图形工具箱允许你构建各种图形用户界面,而不受现有框架的限制。

问题是 skija 目前只支持 MacOS。由于我没有运行MacOS的机器,所以这个实验被搁置了一段时间。后来在6月27日,jetbrains发布了一个新的库skiko,它为 skija提供了KMP(KotlinMultiPlatform)支持。

因此,通过一个小黑客(用skiko库代替skija),我能够运行compose-desktop样本,下面是它的截图。

www.youtube.com/watch?v=rsj…

注:创建一个新的Android项目,并复制粘贴相同的compose fun在Android中运行。

设置

  • 首先使用本指南设置版本库。
  • 一旦repo sync结束,运行cd frameworks/support/ui/
  • 在这里,建议运行本软件库中提供的Android Studio的自定义构建。运行./studiow来启动Android Studio的自定义构建。
  • 让Android Studio同步项目。

使用skiko lib而不是skja

  • 使用这里的说明构建并发布skiko到本地maven。
  • buiild.gradle(ui-desktop)中以api("org.jetbrains.skiko:skiko-jvm-runtime-linux:0.1-SNAPSHOT")的形式将skiko作为依赖项加入。
  • androidx/ui/desktop/ComposeInit.kt中的Library.load("/", "skija")修改为Library.load("/", "skiko")

运转

在 compos-desktop-sample中执行gradle任务run


www.deepl.com 翻译