平板电脑和大屏设备支持

Android 13 使 Android 在大屏设备上表现更出色

Android 13 基于 Android 12 中引入的平板电脑优化和 Android 12L 功能更新构建而成 - 包括针对系统界面的优化、更出色的多任务处理功能和改进的兼容模式。在测试过程中,请确保您的应用在平板电脑和其他大屏设备上拥有最佳显示效果。

如需开始使用,请在 Android Studio 中为 Android 模拟器设置虚拟设备,或在大屏设备上从我们的设备制造商合作伙伴处获取 Android 13

如果您刚开始进行大屏设备开发,请参阅大屏设备和可折叠设备指南,阅读有关如何在这些设备上打造出色体验的最新指南和技术。

下面为您介绍一些新变化以及关于应用测试内容的建议

针对大屏设备优化了操作系统

现在,以下系统界面元素在大屏设备上看起来更美观,使用起来更便捷:通知、快捷设置、锁屏、概览、主屏幕等。

在大屏设备上,通知栏以新的两列布局显示快捷设置和通知,以此充分利用空间。锁屏也使用更大的两列布局来突出显示通知和时钟,此外还优化了“设置”等系统应用。

大屏布局采用两列布局显示更多内容。

其他变更侧重于使大屏设备上的按键交互更加容易。例如,平板电脑的锁屏图案和 PIN 码控件现在显示在屏幕的一侧,更容易操控。用户只需点按屏幕另一侧,PIN 码/图案控件便会移至该侧。

对于可折叠设备,系统优化了主屏幕网格以及折叠-展开的转换效果,使用户能够从单个外部屏幕无缝切换到更大的展开屏幕,增强连贯性的同时保留了他们的选择。

面向开发者:媒体投影的变化

从 12L 开始,当在 Surface 上呈现虚拟屏幕时,系统会根据 Surface 的大小缩放虚拟屏幕,其过程类似于使用 ImageViewcenterInside 选项。

这种新的缩放方法可最大限度地增加 Surface 图像的大小,同时确保适当的宽高比,提升了将屏幕投射到电视和其他大屏幕上的效果。

如需了解详情,请参阅大屏设备上的媒体投影

强大直观的多任务处理功能

用户经常会在使用屏幕较大的平板电脑、Chromebook 和可折叠设备时处理多任务。新的商务办公功能使多任务处理变得更强大、更直观。

新的任务栏让您可以更轻松地即时启动和切换应用。手势更是提升了任务栏的使用速度,您可以通过拖放进入分屏模式,向上滑动进入主屏幕。在手势导航中,快速切换手势可让用户浏览最近使用的应用。用户可以随时通过长按显示或隐藏任务栏。

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

在分屏模式下运行应用是一种常见的多任务处理方式,并且分屏模式比以往更容易找到和使用。现在,用户可以直接从任务栏将他们最常用的应用拖放到分屏中,也可以使用概览中的新“拆分”操作通过点按来启动分屏模式。

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

面向开发者:在分屏模式下测试应用

由于分屏模式的使用越来越普遍,以及 Android 12 中引入的变更允许用户将所有应用启动到分屏模式,因此我们强烈建议您在分屏模式下测试应用

面向开发者:处理边衬区大小的动态变化

即使尚未引入新的边衬区 API,系统也会将新的任务栏作为边衬区报告给应用。

与手势导航搭配使用时,任务栏可以动态地隐藏和显示。如果您的应用本就使用边衬区信息来绘制界面,则需要考虑当应用处于恢复状态时,边衬区大小可能会发生变化。在这些情况下,您的应用需要调用 setOnApplyWindowInsetsListener 并处理边衬区的尺寸变化,如系统栏边衬区中所述。

改善了兼容性体验

许多应用已经针对大屏设备进行了优化,现在可通过自适应布局、多窗口模式支持、跨屏幕尺寸的连贯性和设备折叠状态变化等功能提供出色的体验。

对于尚未优化的应用,系统对兼容模式进行了视觉和稳定性方面的改进,以便为用户提供更好的体验,同时使这些应用在默认情况下看起来更美观。

兼容模式的改进可为未针对大屏设备进行优化的应用提供更好的用户体验。

为了改进信箱模式的界面,设备制造商可以通过叠加层配置来自定义许多选项。例如,设备制造商现在可以配置应用宽高比、对应用窗口应用圆角,以及设置状态栏透明度。

面向开发者:在兼容模式下检查应用

如果您的应用尚未优化,无法适应屏幕尺寸和设备折叠状态变化,您的应用可能会在兼容模式下启动。我们建议您使用兼容模式测试应用,以确保您的应用外观和功能正常。

如需了解详情,请参阅增强的信箱模式

改善了防手掌误触

大屏设备是触控笔输入的理想平台。但是,当使用触控笔绘图、手写或与您的应用互动时,用户有时会用手掌触摸屏幕。系统可能会在将其识别为意外手掌误触并予以忽略之前便将相应触摸事件报告给您的应用。

在 Android 13(API 级别 33)之前,系统通过分派随带 ACTION_CANCELMotionEvent 来取消手掌触摸事件。Android 13 通过为动作事件对象添加 FLAG_CANCELED 而增强了手掌误触识别。

如果手掌触摸是唯一的触摸事件指针,系统会对动作事件对象设置 ACTION_CANCELFLAG_CANCELED 以取消相应事件。如果还有其他指针,Android 13 会设置 ACTION_POINTER_UPFLAG_CANCELED

面向开发者:更新触摸事件监听器和处理程序

在 Android 12(API 级别 32)及更低版本上,只能针对单指针触摸事件检测手掌误触。如果手掌触摸是唯一的指针,系统会通过在动作事件对象上设置 ACTION_CANCEL 来取消相应事件。如果还有其他指针,系统会设置 ACTION_POINTER_UP,这不足以检测手掌误触。这两种情况都未设置 FLAG_CANCELED

对于 Android 13,请更新您的触摸事件监听器和处理程序,以便在收到 ACTION_POINTER_UP 时检查 FLAG_CANCELED,以确保已检测和处理手掌误触和其他取消的事件。

针对大屏设备的更多更新和资源

大屏设备上 Google Play 的变化

为了让用户更轻松地在平板电脑、可折叠设备和 ChromeOS 设备上找到最佳应用体验,Google Play 做出了一些更改,以重点推介针对用户设备优化的应用。

新增的检查服务按照大屏设备应用质量指南评估每个应用的质量,确保 Google Play 在这些设备上尽可能呈现更出色的应用。如果应用未针对大屏设备进行优化,大屏设备用户现在会在该应用的 Play 商店商品详情页上看到通知,这有助于他们找到适合在其设备上运行的应用。

Play 还引入了大屏设备专用的应用评分机制(于 2021 年 8 月首次公布),让用户能够对您的应用在其大屏设备上的表现进行评分。

使用 Jetpack WindowManager 嵌入 activity

利用 activity 嵌入功能,您可以一次显示多个 activity(例如,在列表-详情模式下),以便充分利用大屏设备的额外显示区域,并且只需对应用进行少量重构,甚至无需重构。您可以通过创建 XML 配置文件或进行 Jetpack WindowManager API 调用,确定应用如何显示其 activity(并排或堆叠)。系统处理其余的工作,根据您创建的配置确定呈现方式。如果您的应用使用多个 activity,建议您尝试嵌入 activity。如需了解详情,请参阅 activity 嵌入

设备屏幕方向请求

与标准手机不同,可折叠设备和平板电脑经常在横屏和竖屏模式下切换使用。平板电脑通常横向放置,而可折叠设备可根据其折叠状态确定放置方向。

有些应用会请求固定的屏幕方向(横屏或竖屏),并且希望无论设备的屏幕方向如何,都保持首选屏幕方向(请参阅 screenOrientation 清单属性)。尽管此功能仍受支持,但设备制造商可以选择覆盖应用的首选屏幕方向请求。

在 Android 12(API 级别 31)及更高版本中,设备制造商可以将个别设备屏幕(例如,平板电脑大小的可折叠设备屏幕)配置为忽略屏幕方向指定,并强制应用在竖屏模式下垂直展示而在横屏模式下以信箱模式展示。通过忽略屏幕方向指定,Android 可以更好地满足开发者始终以固定宽高比展示应用的意图,同时将应用保持在最易使用的方向。

不过,为了提供最佳用户体验,请在设计应用时采用自适应布局。在尺寸大于 600dp 的屏幕上,无论是竖屏模式还是横屏模式,这种布局都能充分利用可用的屏幕空间。

在大屏合作伙伴设备上获取 Android 13

我们与设备制造商合作伙伴合作,可允许在大屏设备上试用 Android 13。请访问以下网站,查看其符合条件的大屏设备列表,并获取关于可用的 Beta 版 build 的详细信息。

如需获取更新和支持,请参阅设备制造商在各自的 Android 13 Beta 版相关网站上链接的资源。请注意,每个合作伙伴都将直接为您提供 Beta 版更新,并提供各自的注册和支持流程。

要测试的内容

在开始测试之前,请在 Android Studio 中为 Android 模拟器设置虚拟设备,或在大屏设备上从我们的设备制造商合作伙伴处获取 Android 13。完成设备设置后,您需要使用一些常见的大屏设备用例测试您的应用,以确保应用按预期响应。下面列出了几项建议的测试内容,并提供了相关资源的详细信息链接,这些资源可以帮助您针对大屏设备优化应用:

要测试的内容 资源
屏幕尺寸、设备折叠状态和旋转

检查当屏幕尺寸因设备折叠状态变化(例如展开可折叠设备或将可折叠设备置于桌面模式)而变化时,应用如何响应。此外,尝试在处于上述各状态时旋转设备,确保应用以最佳方式响应。

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

检查在大屏设备上使用任务栏查看应用时,应用如何响应。检查应用界面是否被任务栏截断或阻止,尝试使用任务栏进入和退出分屏和多窗口模式,并使用任务栏测试在您的应用与其他应用之间快速切换。

如果应用的屏幕方向固定且不可调整,请检查应用如何响应兼容模式调整(例如信箱模式)。

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

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

如果您的应用设置 resizeableActivity="true",还需检查应用在小屏设备 (sw < 600dp) 上以多窗口模式运行时如何响应。

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

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

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

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

对于相机应用,检查当您的应用在多窗口模式或分屏模式下被限制在屏幕某个区域时,相机预览界面在大屏设备上如何响应。此外,还要检查应用在可折叠设备的折叠状态发生变化时如何响应。

文档