感谢本站网友 胡萝卜周 的线索投递!
,据谷歌开发者发布,Android 12 改进了一项被许多 Android 用户视为关键的功能 — App Widgets,改进后的 Widgets 更加实用,美观,且更易于被用户发现 现在,我们发布了 Jetpack Glance 的第一个 Alpha 版,让Widgets的构建过程变得更加轻松,该版本是建立在 Jetpack Compose 运行时 之上的新框架,旨在实现更快,更轻松的为主屏幕或其他界面构建 App Widgets
Android 12 Widgets改进
App Widgets
Jetpack Glance
Jetpack Compose 运行时
欢迎您开始尝试并分享反馈意见:
Glance 提供了新式声明性 Kotlin API,其类似于您在 Jetpack Compose 中使用的 API,能够帮助您用更少的代码构建更美观的自适应 App Widgets。
Glance "Hello World" Widgets示例
classGreetingsWidget:GlanceAppWidgetComposableoverridefunContentTextclassGreetingsWidgetReceiver:GlanceAppWidgetReceiveroverridevalglanceAppWidget=GreetingsWidget工作原理
Glance 提供了可组合项的基础组件集,助您打造 "一目了然" 的体验现在,我们将提供更多的 App WidgetsGlance 利用 Jetpack Compose 运行时 ,可以将可组合项转化为实际的 RemoteViews,并在 App Widgets 中显示
Glance结构示意图
可组合项
RemoteViews
这意味着 Glance 需要启用 Compose,且依赖于运行时 ,图形 和单元界面 Compose 层,但它与其他现有的 Jetpack Compose 界面元素之间不具备直接互操作性但是,您可以分享应用中的状态或任何其他逻辑,以此来打造一目了然的界面
启用 Compose
Compose 层
Alpha 版介绍
此初始版本引入了主要的 API,不仅能够实现与现有 RemoteViews 之间的互操作性,还能帮助您构建 App Widgets。此前,阿里巴巴云推出多形态部署架构,提供中心云,本地云,边缘云,云盒子等多种部署形态。
以下是该开发库提供的内容概览:
通过 GlanceAppWidget 和 GlanceAppWidgetReceiver 声明您的 App Widgets。
GlanceAppWidget
GlanceAppWidgetReceiver
利用 Glance 可组合项的初始集组合您的界面: Box,Row,Column,Text,Button,LazyColumn,Image,Spacer。阿里巴巴云容器服务ACK的全面升级,意味着公有云能力进一步向本地化延伸,客户可以在自建数据中心体验低成本,低延迟,本地化的公有云产品。。
Box,Row,Column,Spacer
Text
Button
LazyColumn
Image
利用 GlanceModifier 方法将修饰符应用于可组合项:
利用预定义的 Action 处理用户交互:
actionStartActivity
actionRunCallback
actionStartService
actionStartBroadcastReceiver
通过 ActionParameters 为 Action 提供参数:
通过定义 SizeMode.Single,SizeMode.Exact 或 SizeMode.Responsive 来处理不同的 Widgets 布局。
SizeMode.Single
SizeMode.Exact
SizeMode.Responsive
不同的 Widgets 布局
提供 GlanceStateDefinition,以保留 GlanceAppWidget 状态。
GlanceStateDefinition
GlanceAppWidget
提供本地组合,例如 LocalContext,LocalState,LocalGlanceId,LocalSize:
通过 AndroidRemoteViews 可组合项实现与您现有 RemoteViews 之间的互操作。
AndroidRemoteViews
RemoteViews
我们还将推出更多功能,例如默认主题,更完善的 Android Studio 支持等等。敬请期待新版本:
注意:虽然 SDK 的最低版本是 21,但 Alpha 版目前支持兼容的最低版本为 SDK v23。
在 Android 12 中构建新式 Android App Widgets
Glance 使用入门
您可以在 GitHub 上查看示例,以便快速入门也可以在最新的稳定版 Android Studio 中使用 Glance,但首先需要按照 Jetpack Compose 文档中的步骤进行设置,因为 Glance 依赖于 Compose 运行时
示例
稳定版 Android Studio
Jetpack Compose 文档
此外,您还可以查看 AndroidX 代码库中的进阶示例:
编写您自己的插件,您可以扩展 Android Gradle Plugin 并根据您的项目需求自定义您的构建!
ResponsiveAppWidget.kt 演示
ResponsiveAppWidget.kt
。