Android 13 延续了 Android 12 和 12L 功能更新中引入的平板电脑优化功能,包括系统 UI 优化、更好的多任务处理和改进的兼容性模式。在测试过程中,请确保您的应用在平板电脑和其他大屏幕设备上的显示效果最佳。
您可以通过设置 Android Studio 中 Android 模拟器的虚拟设备或从我们的设备制造商合作伙伴获取大屏幕设备上的 Android 13 来开始。
如果您刚开始接触大屏幕开发,请查看大屏幕和折叠屏设备指南,了解在这些设备上构建出色体验的最新指南和技术。
以下是关于应用中新增内容以及一些测试建议。
针对大屏幕优化的操作系统
现在,系统 UI 在大屏幕上的外观更精美,使用起来也更方便,包括通知、快速设置、锁屏、概览、主屏幕等等。
在大屏幕上,通知栏利用空间优势,以新的两列布局显示快速设置和通知。锁屏也使用更大的两列布局来突出显示通知和时钟,并且像设置这样的系统应用也进行了优化。
其他更改侧重于使大屏幕上的关键交互更容易。例如,平板电脑上的锁屏图案和 PIN 码控件现在显示在屏幕侧面,便于触及,用户只需轻触屏幕另一侧即可将 PIN/图案控件移至该侧。
对于折叠屏设备,系统会优化主屏幕网格并改进折叠展开过渡,以便用户可以从单个外部屏幕无缝切换到更大的展开屏幕,在保持连续性的同时保留其选择。
面向开发者:媒体投影的更改
从 12L 开始,当虚拟显示在表面上呈现时,虚拟显示将使用类似于centerInside
的ImageView
选项的过程进行缩放以适应表面。
新的缩放方法通过最大限度地提高表面图像的大小,同时确保正确的纵横比,从而改善了向电视和其他大型显示器的屏幕投射。
更多详情,请参阅大屏幕上的媒体投影。
强大且直观的多任务处理
用户在使用平板电脑、Chromebook 和折叠屏设备的大屏幕时经常进行多任务处理。新的生产力功能使多任务处理更加强大和直观。
新的任务栏让启动和切换应用更加便捷。手势操作让任务栏使用效率更高,例如拖放进入分屏模式,向上滑动返回主屏幕。在手势导航中,快速切换手势允许用户在最近使用的应用之间切换。用户可以随时通过长按显示或隐藏任务栏。
在分屏模式下运行应用是多任务处理的常用方式,而现在发现和使用分屏比以往更容易。用户现在可以直接从任务栏拖放他们喜欢的应用到分屏中,或者他们也可以在概览中使用新的“分屏”操作,通过点击启动分屏模式。
为了使分屏对用户而言体验更加一致,Android 12 及更高版本允许所有应用进入多窗口模式,无论它们是否可调整大小。
面向开发者:在分屏模式下测试您的应用
随着分屏模式变得更容易访问,以及 Android 12 中允许用户将所有应用启动到分屏的更改,我们强烈建议您在分屏模式下测试您的应用。
面向开发者:处理内边距大小的动态变化
新的任务栏向应用报告为内边距 (Inset),即使没有引入新的内边距 API。
当与手势导航一起使用时,任务栏可以动态显示和隐藏。如果您的应用已经使用内边距信息来绘制其 UI,则需要考虑在应用处于恢复状态时内边距大小可能发生变化的可能性。在这种情况下,您的应用需要调用setOnApplyWindowInsetsListener
并根据系统栏内边距中的描述处理内边距尺寸的变化。
改进的兼容性体验
许多应用已经针对大屏幕设备进行了优化,并通过响应式布局、对多窗口模式的支持、跨屏幕尺寸和设备姿势变化的连续性等等提供了出色的体验。
对于尚未优化的应用,系统包含对兼容模式的视觉和稳定性改进,以提供更好的用户体验,并使这些应用默认看起来更好。
为了改进黑边(Letterboxing)的UI,设备制造商可以通过叠加配置自定义许多选项。例如,设备制造商现在可以配置应用纵横比、为应用窗口应用圆角以及设置状态栏透明度。
面向开发者:在兼容模式下检查您的应用
如果您的应用尚未针对屏幕尺寸和设备姿势变化进行优化,则您的应用可能会在兼容模式下启动。我们建议您使用兼容模式测试您的应用,以确保您的应用外观和功能正常。
更多详情,请参阅增强型黑边处理。
改进的防误触功能
大屏幕是触控笔输入的理想界面。但是,当用户使用触控笔在您的应用中绘图、书写或进行交互时,他们有时会用手掌触摸屏幕。触摸事件可能会在系统识别并忽略该事件为意外手掌触摸之前报告给您的应用。
在 Android 13 (API 级别 33) 之前,系统通过调度带有ACTION_CANCEL
的MotionEvent
来取消手掌触摸事件。Android 13 通过向运动事件对象添加FLAG_CANCELED
来增强手掌误触识别的功能。
如果手掌触摸是唯一的触摸事件指针,则系统会通过在运动事件对象上设置ACTION_CANCEL
和FLAG_CANCELED
来取消事件。如果其他指针按下,Android 13 会设置ACTION_POINTER_UP
和FLAG_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 商店列表页面上看到通知,以帮助他们找到最适合其设备的应用。
正如2021 年 8 月首次宣布的那样,Play 还引入了特定于大屏幕的应用评分,因此用户可以对您的应用在其大屏幕设备上的运行情况进行评分。
使用 Jetpack WindowManager 进行活动嵌入
活动嵌入允许您通过同时显示多个活动(例如列表-详情模式)来利用大屏幕的额外显示区域,并且几乎不需要或根本不需要重构您的应用。您可以通过创建 XML 配置文件或进行 Jetpack WindowManager API 调用来确定您的应用如何显示其活动——并排或堆叠。系统会处理其余部分,根据您创建的配置确定呈现方式。如果您的应用使用多个活动,我们建议您尝试使用活动嵌入。要了解更多信息,请参阅活动嵌入。
设备方向请求
与标准手机不同,折叠屏手机和平板电脑经常在横向和纵向方向上使用。平板电脑通常以横向模式停靠,而折叠屏手机可以根据其折叠方式进行方向调整。
一些应用请求固定为纵向或横向方向,并期望无论设备方向如何都保持在其首选方向(请参阅screenOrientation
清单属性)。虽然这仍然受支持,但设备制造商可以选择覆盖应用对首选方向的请求。
在 Android 12 (API 级别 31) 及更高版本中,设备制造商可以配置单个设备屏幕(例如折叠屏手机的平板电脑尺寸屏幕)以忽略方向规范,并强制以纵向模式呈现的应用保持直立,但在横向显示屏上显示黑边。通过忽略规范,Android 可以更好地满足开发者始终以固定纵横比呈现应用的意图,同时保持应用方向以获得最佳可用性。
但是,为了获得最佳用户体验,请使用响应式布局设计您的应用,以便在屏幕尺寸大于 600dp 的横向和纵向方向上充分利用可用屏幕空间。
在大屏幕合作伙伴设备上获取 Android 13
我们已与设备制造商合作伙伴合作,使 Android 13 能够在大屏幕设备上试用。请访问以下网站,查看其符合条件的大屏幕设备列表,并获取有关哪些 Beta 版本可用的详细信息。
有关更新和支持,请参阅每个设备制造商在其 Android 13 Beta 网站上链接的资源。请注意,每个合作伙伴将直接向您提供 Beta 更新,并处理他们自己的注册和支持。
测试内容
在开始测试之前,在 Android Studio 中为 Android 模拟器设置虚拟设备,或从我们的设备制造商合作伙伴处在大屏幕设备上获取 Android 13。完成设备设置后,您需要使用一些常见的大屏幕用例测试您的应用,以确保您的应用按您想要的方式响应。以下是一些推荐的领域,以及指向相关资源的链接,这些资源可以帮助您优化应用以适应大屏幕。
测试内容 | 资源 |
---|---|
屏幕尺寸、设备姿势和旋转 检查您的应用在由于设备姿势变化(例如展开折叠屏设备或将折叠屏设备置于桌面模式)而导致屏幕尺寸变化时的响应情况。还尝试在这些状态中的每一个状态下旋转设备,以确保您的应用以最佳方式响应。 |
文档 示例 Codelabs 技术讲座 |
任务栏交互和分屏模式 检查您的应用在大型屏幕上显示时,任务栏对其响应如何。检查您的应用UI是否被任务栏截断或遮挡,尝试使用任务栏进入和退出分屏和多窗口模式,并测试使用任务栏在您的应用和其他应用之间快速切换。 如果您的应用具有固定方向且不可调整大小,请检查您的应用对兼容性模式调整(例如,信箱模式)的响应。 |
文档 示例 技术讲座 |
多窗口模式 检查您的应用在大型屏幕 (sw >= 600dp) 上的多窗口模式下运行时的响应,尤其是在您的应用设置了 如果您的应用设置了 如果您的应用使用 `Display` API(例如 |
文档 示例 技术讲座 |
媒体投射 如果您的应用使用媒体投射,请检查您的应用在大型屏幕设备上播放、流式传输或投射媒体时的响应。还要考虑折叠式设备的姿态变化。 |
文档 示例 技术讲座 |
相机预览 对于相机应用,请检查您的相机预览UI在您的应用在多窗口或分屏模式下受限于屏幕一部分时,在大屏幕上的响应。还要检查您的应用在折叠式设备姿态变化时的响应。 |
文档 |