谷歌发布 Jetpack Glance Alpha 版,构建安卓 12 小组件

 头条123   2025-04-27 18:58   1631 人阅读  0 条评论
谷歌发布 Jetpack Glance Alpha 版,构建安卓 12 小组件 据谷歌开辟者公布,Android 12 改良了一项被很多 Android 用户视为关头的功用 - App Widgets,改良后的 Widgets 加倍适用、美妙,且更容易于被用户发明 (84% 的用户 少利用一个 Widgets)。此刻,我们公布了 Jetpack Glance 的 一个 Alpha 版,让 Widgets 的构建进程变得加倍轻松,该版本是成立正在 Jetpack Compose 运转时 (Runtime) 之上的新框架,旨正在实现更快、更轻松的为主屏幕或其他界面构建 App Widgets。

Android 12 Widgets 改良

https://developer.android.谷歌.cn/about/versions/12/features/widgets

App Widgets

https://developer.android.谷歌.cn/guide/topics/appwidgets/overview

Jetpack Glance

https://developer.android.谷歌.cn/jetpack/androidx/releases/glance

Jetpack Compose 运转时 (Runtime)

https://developer.android.谷歌.cn/jetpack/androidx/releases/compose-runtime

接待您起头测验考试并 反应定见:

https://issuetracker.谷歌.com/issues/new?component=1097239&template=1611667

Glance 供给了新式声明性 Kotlin API,其近似于您正在 Jetpack Compose 中利用的 API,可以或许帮忙您用更少的代码构建更美妙的自顺应 App Widgets。

https://developer.android.谷歌.cn/jetpack/compose

△ Glance "Hello World" Widgets 示例

class GreetingsWidget(private val name: String): GlanceAppWidget() {

@Composable

override fun Content() {

Text(text = "Hello $name")

}

}

class GreetingsWidgetReceiver : GlanceAppWidgetReceiver() {

override val glanceAppWidget = GreetingsWidget("Glance")

}

  事情道理

Glance 供给了可组合项的根本组件集,助您打造 "了如指掌" 的体验。此刻,我们将供给更多的 App Widgets。Glance 操纵 Jetpack Compose 运转时 (Runtime),能够将可组合项转化为现实的 RemoteViews,并正在 App Widgets 中显现。

△ Glance 布局表示图

可组合项

https://developer.android.谷歌.cn/reference/kotlin/androidx/compose/runtime/Composable

RemoteViews

https://developer.android.谷歌.cn/reference/android/widget/RemoteViews

那意味着 Glance 需求启用 Compose,且依靠于运转时 (Runtime)、图形 (Graphics) 和单位界面 Compose 层,但它与其他现有的 Jetpack Compose 界面元素之间不具有间接互操纵性。可是,您能够 利用中的状况或任何其他逻辑,以此来打造了如指掌的界面。

启用 Compose

https://developer.android.谷歌.cn/jetpack/compose/interop/adding#anchor

Compose 层

https://developer.android.谷歌.cn/jetpack/compose/layering

  Alpha 版先容

此初始版本引进了首要的 API,不但可以或许实现与现有 RemoteViews 之间的互操纵性,还能帮忙您构建 App Widgets。

  以下是该开辟库供给的内容概览:

经由过程 GlanceAppWidget 和 GlanceAppWidgetReceiver 声明您的 App Widgets。

GlanceAppWidget

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/GlanceAppWidget

GlanceAppWidgetReceiver

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/GlanceAppWidgetReceiver

操纵 Glance 可组合项的初始集组合您的界面: Box、Row、Column、Text、Button、LazyColumn、Image、Spacer。

Box、Row、Column、Spacer

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/layout/package-summary#top-level-functions

Text

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/text/package-summary#text

Button

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/package-summary#button

LazyColumn

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/lazy/package-summary#lazycolumn

Image

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/package-summary#image

操纵 GlanceModifier 方式将润色符利用于可组合项:

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/GlanceModifier.html

操纵预界说的 Action 处置用户交互:

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/action/package-summary

actionStartActivity

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/action/package-summary#actionstartactivity

actionRunCallback

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/action/package-summary#actionruncallback

actionStartService

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/action/package-summary#actionstartservice

actionStartBroadcastReceiver

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/action/package-summary#actionstartbroadcastreceiver

经由过程 ActionParameters 为 Action 供给参数:

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/action/ActionParameters

经由过程界说 SizeMode.Single、SizeMode.Exact 或 SizeMode.Responsive 来处置分歧的 Widgets 结构。

SizeMode.Single

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/SizeMode.Single

SizeMode.Exact

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/SizeMode.Exact

SizeMode.Responsive

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/SizeMode.Responsive

分歧的 Widgets 结构

https://developer.android.谷歌.cn/guide/topics/appwidgets/layouts

供给 GlanceStateDefinition,以保存 GlanceAppWidget 状况。

GlanceStateDefinition

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/state/GlanceStateDefinition.html

GlanceAppWidget

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/state/package-summary

供给当地组合,比方 LocalContext、LocalState、LocalGlanceId、LocalSize:

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/package-summary#top-level-properties

经由过程 AndroidRemoteViews 可组合项实现与您现有 RemoteViews 之间的互操纵。

AndroidRemoteViews

https://developer.android.谷歌.cn/reference/kotlin/androidx/glance/appwidget/package-summary#androidremoteviews

RemoteViews

https://developer.android.谷歌.cn/reference/android/widget/RemoteViews.html

我们还将推出更多功用,比方默许主题,更完美的 Android Studio 撑持等等。敬请等候新版本:

https://developer.android.谷歌.cn/jetpack/androidx/releases/glance

注重: 固然 SDK 的 低版本是 21,但 Alpha 版今朝撑持兼容的 低版本为 SDK v23。

△ 正在 Android 12 中构建新式 Android App Widgets

  Glance 利用进门

您能够正在 GitHub 上检察示例,以便快速进门。也能够正在新 的不变版 Android Studio 中利用 Glance,但起首需求依照 Jetpack Compose 文档中的步调停止设置,由于 Glance 依靠于 Compose 运转时 (Runtime)。

示例

https://github.com/android/user-interface-samples/tree/glance/AppWidget/glance-widget

不变版 Android Studio

https://developer.android.谷歌.cn/studio

Jetpack Compose 文档

https://developer.android.谷歌.cn/jetpack/compose/interop/adding#setup

另外,您还能够检察 AndroidX 代码库中的进阶示例:

https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/

编写您本身的插件,您能够扩大 Android Gradle Plugin 并按照您的项目需求自界说您的构建!

△ ResponsiveAppWidget.kt 演示

ResponsiveAppWidget.kt

https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:glance/glance-appwidget/integration-tests/demos/src/main/java/androidx/glance/appwidget/demos/ResponsiveAppWidget.kt

本文地址:https://www.toutiao123.net/news/29771.html
版权声明:本文为原创文章,版权归 头条123 所有,欢迎 本文,转载请保留出处!