設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

谷歌發(fā)布 Jetpack Glance Alpha 版,構(gòu)建安卓 12 小組件更輕松

2021/12/28 16:20:17 來(lái)源:IT之家 作者:瀟公子 責(zé)編:瀟公子
感謝IT之家網(wǎng)友 胡蘿卜周 的線索投遞!

IT之家 12 月 28 日消息,據(jù)谷歌開(kāi)發(fā)者發(fā)布,Android 12 改進(jìn)了一項(xiàng)被許多 Android 用戶視為關(guān)鍵的功能 - App Widgets,改進(jìn)后的 Widgets 更加實(shí)用、美觀,且更易于被用戶發(fā)現(xiàn) (84% 的用戶至少使用一個(gè) Widgets)?,F(xiàn)在,我們發(fā)布了 Jetpack Glance 的第一個(gè) Alpha 版,讓 Widgets 的構(gòu)建過(guò)程變得更加輕松,該版本是建立在 Jetpack Compose 運(yùn)行時(shí) (Runtime) 之上的新框架,旨在實(shí)現(xiàn)更快、更輕松的為主屏幕或其他界面構(gòu)建 App Widgets。

Jetpack Glance Alpha版

Android 12 Widgets 改進(jìn)

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

App Widgets

https://developer.android.google.cn/guide/topics/appwidgets/overview

Jetpack Glance

https://developer.android.google.cn/jetpack/androidx/releases/glance

Jetpack Compose 運(yùn)行時(shí) (Runtime)

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

歡迎您開(kāi)始嘗試并分享反饋意見(jiàn):

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

Glance 提供了新式聲明性 Kotlin API,其類似于您在 Jetpack Compose 中使用的 API,能夠幫助您用更少的代碼構(gòu)建更美觀的自適應(yīng) App Widgets。

https://developer.android.google.cn/jetpack/compose

Glance "Hello World" Widgets 示例

△ 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 提供了可組合項(xiàng)的基礎(chǔ)組件集,助您打造 "一目了然" 的體驗(yàn)?,F(xiàn)在,我們將提供更多的 App Widgets。Glance 利用 Jetpack Compose 運(yùn)行時(shí) (Runtime),可以將可組合項(xiàng)轉(zhuǎn)化為實(shí)際的 RemoteViews,并在 App Widgets 中顯示。

Glance 結(jié)構(gòu)示意圖

△ Glance 結(jié)構(gòu)示意圖

可組合項(xiàng)

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

RemoteViews

https://developer.android.google.cn/reference/android/widget/RemoteViews

這意味著 Glance 需要啟用 Compose,且依賴于運(yùn)行時(shí) (Runtime)、圖形 (Graphics) 和單元界面 Compose 層,但它與其他現(xiàn)有的 Jetpack Compose 界面元素之間不具備直接互操作性。但是,您可以分享應(yīng)用中的狀態(tài)或任何其他邏輯,以此來(lái)打造一目了然的界面。

啟用 Compose

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

Compose 層

https://developer.android.google.cn/jetpack/compose/layering

Alpha 版介紹

此初始版本引入了主要的 API,不僅能夠?qū)崿F(xiàn)與現(xiàn)有 RemoteViews 之間的互操作性,還能幫助您構(gòu)建 App Widgets。

以下是該開(kāi)發(fā)庫(kù)提供的內(nèi)容概覽:

通過(guò) GlanceAppWidget 和 GlanceAppWidgetReceiver 聲明您的 App Widgets。

GlanceAppWidget

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

GlanceAppWidgetReceiver

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

利用 Glance 可組合項(xiàng)的初始集組合您的界面: Box、Row、Column、Text、Button、LazyColumn、Image、Spacer。

Box、Row、Column、Spacer

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

Text

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

Button

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

LazyColumn

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

Image

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

利用 GlanceModifier 方法將修飾符應(yīng)用于可組合項(xiàng):

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

利用預(yù)定義的 Action 處理用戶交互:

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

actionStartActivity

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

actionRunCallback

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

actionStartService

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

actionStartBroadcastReceiver

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

通過(guò) ActionParameters 為 Action 提供參數(shù):

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

通過(guò)定義 SizeMode.Single、SizeMode.Exact 或 SizeMode.Responsive 來(lái)處理不同的 Widgets 布局。

SizeMode.Single

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

SizeMode.Exact

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

SizeMode.Responsive

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

不同的 Widgets 布局

https://developer.android.google.cn/guide/topics/appwidgets/layouts

提供 GlanceStateDefinition,以保留 GlanceAppWidget 狀態(tài)。

GlanceStateDefinition

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

GlanceAppWidget

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

提供本地組合,例如 LocalContext、LocalState、LocalGlanceId、LocalSize:

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

通過(guò) AndroidRemoteViews 可組合項(xiàng)實(shí)現(xiàn)與您現(xiàn)有 RemoteViews 之間的互操作。

AndroidRemoteViews

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

RemoteViews

https://developer.android.google.cn/reference/android/widget/RemoteViews.html

我們還將推出更多功能,例如默認(rèn)主題,更完善的 Android Studio 支持等等。敬請(qǐng)期待新版本:

https://developer.android.google.cn/jetpack/androidx/releases/glance

注意: 雖然 SDK 的最低版本是 21,但 Alpha 版目前支持兼容的最低版本為 SDK v23。

△ 在 Android 12 中構(gòu)建新式 Android App Widgets

Glance 使用入門

您可以在 GitHub 上查看示例,以便快速入門。也可以在最新的穩(wěn)定版 Android Studio 中使用 Glance,但首先需要按照 Jetpack Compose 文檔中的步驟進(jìn)行設(shè)置,因?yàn)?Glance 依賴于 Compose 運(yùn)行時(shí) (Runtime)。

示例

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

穩(wěn)定版 Android Studio

https://developer.android.google.cn/studio

Jetpack Compose 文檔

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

此外,您還可以查看 AndroidX 代碼庫(kù)中的進(jìn)階示例:

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

編寫您自己的插件,您可以擴(kuò)展 Android Gradle Plugin 并根據(jù)您的項(xiàng)目需求自定義您的構(gòu)建!

 ResponsiveAppWidget.kt 演示

△ 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

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:Jetpack Glance安卓12,小組件,谷歌

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知