12L 的功能和变化

The 12L feature drop makes Android 12 even better on large
screens

12L 是一项特殊功能更新,旨在让 Android 12 在大屏幕上表现更佳。我们已针对大屏幕优化和完善了系统界面,让多任务处理更强大、更直观,并改进了对应用的兼容性支持,使它们默认情况下看起来更好。我们还添加了一些开发者 API。

您可以首先下载 12L 模拟器在合作设备上获取 12L

以下是新功能的概览。

针对大屏幕优化的操作系统

12L 优化了系统界面,使其在大屏幕上更美观、更易于使用——包括通知、快捷设置、锁屏、概览、主屏幕等。

在大屏幕上,通知栏通过新的两列布局显示快捷设置和通知,充分利用了空间。锁屏也使用了更大的两列布局来突出显示通知和时钟,并且设置等系统应用也进行了优化。

大屏幕布局以两列布局显示更多内容。

我们还致力于让大屏幕上的关键交互更便捷。例如,平板电脑上的锁屏图案和 PIN 码控件现在显示在屏幕一侧,以便于触及,用户只需轻触屏幕另一侧即可将 PIN 码/图案控件移至该侧。

对于可折叠设备,我们优化了主屏幕网格并完善了折叠-展开过渡,以便用户从单个外部屏幕无缝过渡到更大的展开屏幕,从而加强连续性并保留其选择。

对于开发者:媒体投影的变更

从 12L 开始,当虚拟显示屏呈现在表面上时,虚拟显示屏将使用类似于 ImageViewcenterInside 选项的过程,缩放以适应表面。

新的缩放方法通过最大化表面图像的大小同时确保正确的宽高比,改进了到电视和其他大显示屏的屏幕投射。

有关详细信息,请参阅大屏幕上的媒体投影

强大且直观的多任务处理

用户在使用平板电脑、Chromebook 和可折叠设备的大屏幕时,通常会进行多任务处理。在 12L 中,新的生产力功能使多任务处理更加强大和直观。

12L 增加了一个新的任务栏,使启动和即时切换应用变得更容易。手势使使用任务栏更快,通过拖放进入分屏模式,向上滑动返回主屏幕。在手势导航中,快速切换手势让用户可以在最近的应用之间翻转。用户可以通过长按随时显示或隐藏任务栏。

任务栏让用户更快地启动和切换应用,拖放进入分屏模式,以及向上滑动返回主屏幕。

在分屏模式下运行应用是一种流行的多任务处理方式,在 12L 中,我们让分屏变得比以往任何时候都更容易发现和使用。用户现在可以直接从任务栏将他们喜欢的应用拖放到分屏中,或者他们也可以在概览中使用新的“分屏”操作,通过轻触来启动分屏模式。

为了使分屏为用户提供更一致的体验,Android 12 及更高版本允许所有应用进入多窗口模式,无论它们是否可调整大小。

对于开发者:在分屏模式下测试您的应用

随着分屏模式变得更加易于访问,以及 Android 12 中允许用户将所有应用启动到分屏的更改,我们强烈建议您在分屏模式下测试您的应用。

对于开发者:处理内边距大小的动态变化

新的任务栏被报告为应用的内边距 (Inset),尽管 12L 没有引入新的内边距 API。

当与手势导航一起使用时,任务栏可以动态隐藏和显示。如果您的应用已经使用内边距信息来绘制其 UI,它需要考虑在应用处于恢复状态时内边距的大小可能会改变的可能性。在这些情况下,您的应用需要调用 setOnApplyWindowInsetsListener 并按照系统栏内边距中的描述处理内边距尺寸的变化。

改进的兼容性体验

许多应用已针对大屏幕设备进行了优化,并通过响应式布局、多窗口模式支持、跨屏幕尺寸和设备姿态变化的连续性等提供出色的体验。

对于尚未优化的应用,我们对兼容性模式进行了视觉和稳定性改进,以便为用户提供更好的体验,并使这些应用默认情况下看起来更好。

兼容性模式的改进为尚未针对大屏幕优化的应用提供了更好的用户体验。

我们改进了黑边填充的 UI,通过叠加配置使许多选项可由设备制造商自定义。例如,设备制造商现在可以配置应用宽高比、对应用窗口应用圆角,并设置状态栏透明度。

对于开发者:在兼容性模式下检查您的应用

如果您的应用尚未优化以适应屏幕尺寸和设备姿态变化,您的应用可能会在兼容性模式下启动。我们建议使用 12L 兼容性模式测试您的应用,以确保您的应用看起来和功能正常。

有关详细信息,请参阅设备兼容性模式

更多大屏幕更新和资源

Google Play 在大屏幕上的变化

为了让人们更容易在平板电脑、可折叠设备和 ChromeOS 设备上找到最佳应用体验,Google Play 包含了一些更改,以突出显示针对其设备优化的应用。

增加了新的检查,根据我们的大屏幕应用质量指南评估每个应用的质量,以确保我们在这些设备上呈现最佳应用。当应用未针对大屏幕进行优化时,大屏幕用户现在会在应用的 Play 商店详情页面上看到通知,以帮助他们找到在其设备上效果最佳的应用。

Play 还将推出大屏幕特定的应用评分,正如在 2021 年 8 月宣布的那样,因此用户将能够评估您的应用在其大屏幕设备上的表现。

使用 Jetpack WindowManager 进行 Activity 嵌入

Activity 嵌入允许您通过同时显示多个 Activity 来利用大屏幕的额外显示区域,例如用于列表-详细信息模式,并且几乎不需要重构您的应用。您可以通过创建 XML 配置文件或进行 Jetpack WindowManager API 调用来确定您的应用如何显示其 Activity——并排或堆叠。系统会根据您创建的配置处理其余部分,确定呈现方式。如果您的应用使用多个 Activity,我们建议尝试 Activity 嵌入。要了解更多信息,请参阅Activity 嵌入

设备方向请求

与标准手机不同,可折叠设备和平板电脑经常在横向和纵向两种方向上使用。平板电脑通常以横向位置停靠,而可折叠设备可以根据其折叠方式进行定向。

有些应用请求固定的纵向或横向方向,并期望无论设备方向如何,都保持其首选方向(请参阅 screenOrientation 清单属性)。虽然 12L 仍然支持此功能,但设备制造商可以选择覆盖应用对首选方向的请求。

在 Android 12 (API level 31) 及更高版本中,设备制造商可以配置单个设备屏幕(例如可折叠设备的平板电脑大小屏幕)以忽略方向规范,并强制将纵向模式下的应用呈现为直立但以黑边填充在横向显示屏上。通过忽略规范,Android 可以更好地实现开发者始终以固定宽高比呈现应用的意图,同时保持应用方向以实现最佳可用性。

但是,为了获得最佳用户体验,请设计您的应用,使其具有响应式布局,可在大于 600dp 的屏幕上充分利用纵向和横向方向上的屏幕空间。

准备好您的应用

随着 12L 功能更新在越来越多的大屏幕设备上推出,现在是时候测试您的应用并针对大屏幕进行优化了。

您可以首先设置 12L 模拟器在合作设备上获取 12L。您将能够看到大屏幕的最新系统 UI 更改,尝试使用任务栏和分屏模式的应用,在兼容性模式下测试您的应用,甚至尝试使用 Jetpack WindowManager API 进行 Activity 嵌入。

使用 Android 模拟器的新可调整大小设备定义,测试 12L 在各种大屏幕场景下的表现。

如果您刚开始进行大屏幕开发,请查看大屏幕和可折叠设备指南,阅读构建这些设备上出色体验的最新指南和技术。

要测试什么

为 12L 创建虚拟设备后,您将需要使用一些常见的大屏幕用例来测试您的应用,以确保您的应用按您希望的方式响应。以下是一些建议的领域,并附有更多相关资源的链接,可以帮助您针对大屏幕优化您的应用

要测试什么 资源
屏幕尺寸、设备姿态和旋转

检查您的应用在屏幕尺寸因设备姿态变化(例如展开可折叠设备或将可折叠设备置于桌面模式)而改变时如何响应。此外,尝试在这些状态下旋转设备,以确保您的应用做出最佳响应。

文档 示例 Codelabs 技术讲座
任务栏交互和分屏模式

检查您的应用在大屏幕上与任务栏一起查看时如何响应。检查您的应用的 UI 是否被任务栏裁剪或遮挡,尝试使用任务栏进入和退出分屏和多窗口模式,并尝试使用任务栏在您的应用和其他应用之间快速切换。

如果您的应用具有固定方向且不可调整大小,请检查您的应用如何响应兼容性模式调整,例如黑边填充。

文档 示例 技术讲座
多窗口模式

检查您的应用在大型屏幕(sw >= 600dp)上的多窗口模式下运行时如何响应,尤其是当您的应用设置了 resizeableActivity="false" 时。

如果您的应用设置了 resizeableActivity="true",请务必检查您的应用在小型屏幕(sw < 600dp)上的多窗口模式下运行时如何响应。

如果您的应用使用 Display API,例如 Display.getRealSize()Display.getRealMetrics(),请改用 Jetpack WindowManager 库中的 WindowMetrics API。

文档 示例 技术讲座
媒体投影

如果您的应用使用媒体投影,请检查您的应用在大屏幕设备上播放、流式传输或投射媒体时如何响应。务必考虑可折叠设备上的设备姿态变化。

文档 示例 技术讲座
相机预览

对于相机应用,检查您的相机预览 UI 在多窗口或分屏模式下,当您的应用被限制在屏幕的一部分时,在大屏幕上如何响应。还要检查您的应用在可折叠设备姿态变化时如何响应。

文档