Android 12版本特性
Android的新UI–Material You(新的设计语言)
如果想将所有最新的 Material Design 3 新特性带入您的应用,请尝试 Material 设计组件 的 Alpha 版本,并关注即将到来的 Jetpack Compose 支持。
Android 12微件(Widgets)改进 API
Android 12 引入了以下系统参数来设置微件圆角的半径:
system_app_widget_background_radius
:微件背景的角半径,绝不会大于 28dp。system_app_widget_inner_radius
:微件内任何视图的角半径。这正好比背景半径小 8dp,这样在使用 8dp 内边距时,就能很好地对齐。
添加新的复合按钮
-
微件仍然无状态。您的应用必须存储状态并注册状态更改事件。
可以指定额外的微件大小调整限制
除了现有的 minWidth
、minHeight
、minResizeWidth
和 minResizeHeight
属性之外,还可以使用下面这些新的 appwidget-provider
属性:
targetCellWidth
和targetCellHeight
:根据启动器网格单元定义微件的目标大小。定义后,会使用这些属性,而不是minWidth
或minHeight
。maxResizeWidth
和maxResizeHeight
:定义启动器允许用户调整微件大小的大小上限。
提供自适应布局
1 |
|
提供精确布局
如果一小组自适应布局不可行,您可以改为提供根据微件的显示大小量身定制的不同布局。通常,手机有两种大小(竖屏和横屏模式),可折叠设备有四种大小。
如需实现此解决方案,您的应用需要执行以下步骤:
- 过载 [
AppWidgetProvider#onAppWidgetOptionsChanged(...)
](https://developer.android.google.cn/reference/android/appwidget/AppWidgetProvider#onAppWidgetOptionsChanged(android.content.Context, android.appwidget.AppWidgetManager, int, android.os.Bundle)),当一组大小发生更改时,就会调用此方法。 - 调用
getAppWidgetManager#getAppWidgetOptions(...)
,这样会返回包含大小的Bundle
。 - 访问
Bundle
中的AppWidgetManager.OPTION_APPWIDGET_SIZES
键。
1 | // Create the RemoteViews for the given size. |
改进应用的微件选择器体验
实现更流畅的过渡
在Android12中,用户从微件启动您的应用时,会更流畅(有动画)。实现方式:使用 @android:id/background
或 android.R.id.background
标识背景元素
1 | // Top level layout of the widget. |
注意:避免使用广播 trampoline。在Android 12中,如果广播接收器或 服务是从微件点击的 PendingIntent
发起的,应用仍可从其启动 activity。不过,新的应用动画将不会用于从广播接收器或服务启动的应用,这会导致用户体验不佳。
使用 RemoteViews 的运行时修改
通知界面更新
我们还对通知设计进行了改版,使其更现代、更实用。Android 12 也会使用标准的元素来美化自定义通知,使其观感与其他通知保持一致。请访问 官方文档 了解详细信息。
过度滚动拉伸效果
了让应用内容的滚动更加顺畅,Android 12 为所有滚动容器添加了一个新的过度滚动 “拉伸” 效果。这个自带的滚动停止效果覆盖整个系统和所有应用。请访问 官方文档 了解详细信息。
应用启动画面
Android 12 还为所有的应用带来了新的启动画面。应用也可以通过多种方式来定制启动画面,以彰显其独有的品牌个性。请访问 官方文档 了解详细信息。
性能表现
前台服务优化 - 为了给用户提供更好的体验,Android 12 禁止应用在后台启动前台服务。应用可以使用 JobScheduler 中新引入的 加急作业 (expedited job) 来代替之前的做法。请访问 官方文档 了解详细信息。
更灵敏的通知 - Android 12 对通知 trampoline (利用广播接收器或服务间接启动目标 Activity) 的限制有助于减少从通知中启动应用的延迟。例如,Google Photos 应用在不使用通知 trampoline 后,启动速度快了 34%。请访问 官方文档 了解详细信息。