Android 16 来袭,应用屏幕方向和大小调整变革解析,Android 16 取消应用屏幕限制,开发者如何应对?

本文围绕 Android 16 的重大变革展开,介绍了其在应用屏幕方向和大小调整方面的改变,包括变更内容、例外情况、对开发者的要求以及变更生效时间表等,旨在帮助开发者了解并适应这些变化,为用户提供更好的应用体验。

在当今数字化的时代,Android 生态系统正展现出前所未有的活力。全球范围内,超过 30 亿台 Android 设备正在被广泛使用,这一庞大的用户群体使得 Android 生态系统比以往任何时候都更加繁荣。如今,Android 移动应用的运行范围极为广泛,不仅可以在传统的手机上流畅运行,还能适配可折叠设备、平板电脑、Chromebook、汽车以及最新的 XR 设备等多种类型的设备。用户在选择设备时,往往更倾向于一个完整的设备生态系统,并且他们期望自己所使用的应用能够在所有设备上都实现无缝运行。因此,为了在这个多设备的环境中蓬勃发展,您的应用需要具备强大的适应性,能够无缝地适应不同的屏幕大小和设备形态。

然而,目前许多 Android 应用仍然依赖于传统的界面方法,这些方法通常只能在单一屏幕方向和/或限制了大小调整的情况下正常工作。但随着用户对大屏设备的需求不断增加,他们希望应用能够充分发挥大屏的优势,以获得更好的使用体验。为了满足用户的这一期望,Android 设备制造商引入了一些备受好评的功能,旨在突破这些应用的限制。

鉴于此,Android 16 将在平台层面进行重大变革。它将取消应用限制屏幕方向和大小调整的能力,转而采用一种统一的自适应应用模式。通过这一变更,应用的行为将更加贴合用户的期望,从而有效减少碎片化现象。同时,尊重用户对屏幕方向的偏好设置,还能进一步提升应用的无障碍性。为了帮助开发者实现这一目标,相关团队正在积极构建一系列工具、库和平台 API,以确保在整个 Android 生态系统中都能为用户提供始终如一的卓越体验。

有哪些变更?

从 Android 16 开始,用于限制应用屏幕方向和大小调整的清单属性及运行时 API 将逐步被淘汰。这一举措将为各种设备上的众多应用带来更好的用户体验。这些变更最初将主要适用于应用在大屏设备上运行的情况,这里的 “大屏” 指的是显示区域的最小宽度大于或等于 600dp 的情况,具体包括以下几类设备:

  • 大屏可折叠设备的内屏

  • 平板电脑,包括桌面窗口模式

  • 桌面环境,包括 Chromebook

以下清单属性和 API 将在以 Android 16 (SDK 36) 为目标的大屏设备应用中被忽略:

清单属性/API 忽略的值
screenOrientation portrait、reversePortrait、sensorPortrait、userPortrait、landscape、reverseLandscape、sensorLandscape、userLandscape
setRequestedOrientation portrait、reversePortrait、sensorPortrait、userPortrait、landscape、reverseLandscape、sensorLandscape、userLandscape
resizeableActivity 所有
minAspectRatio 所有
maxAspectRatio 所有

不过,在屏幕方向控制、宽高比和大小调整方面,这些变更存在一些例外情况:

  • 如前所述,这些变更不适用于最小宽度小于 600dp 的屏幕,例如大多数手机、“翻盖” 式设备和大屏可折叠设备的外屏。

  • 基于 android:appCategory 标志,游戏将不受这些变更的影响。

此外,用户拥有一定的控制权。他们可以在宽高比设置中明确选择使用应用的默认行为。

Android 16 来袭,应用屏幕方向和大小调整变革解析,Android 16 取消应用屏幕限制,开发者如何应对?

△ 以 API 级别 36 为目标的应用,以前在大屏设备上以信箱模式 (letterboxed) 显示,现将在 Android 16 上以横向模式填充整个显示屏

让应用具备自适应性,为即将到来的变更做好准备

应用需要支持横向和纵向布局,以适应用户可以选择的各种宽高比的窗口大小。因为在 Android 16 中,将没有办法限制宽高比和屏幕方向仅为纵向或横向。

要测试您的应用是否会受这些变更影响,可以在 Android Studio 中使用搭载 Pixel Tablet 和 Pixel Fold 系列模拟器的 Android 16 Beta 1 开发者预览版,并设置 targetSdkPreview = "Baklava" 或通过启用 UNIVERSAL_RESIZABLE_BY_DEFAULT 标志来使用应用兼容性框架。

对于那些限制屏幕方向和宽高比的现有应用,这些变更可能导致布局重叠等问题。为了解决这些问题并满足用户期望,我们的愿景是使应用具备自适应性,以确保无论用户是在手机、可折叠设备、平板电脑、Chromebook、XR 设备还是在车内使用应用时,都能获得最佳体验。

解决常见问题

  • 避免界面组件拉伸:如果布局是在假设为手机屏幕的情况下设计和构建的,那么应用功能可能会在其他宽高比下出现问题。例如,如果布局是在假设纵向宽高比的情况下构建的,那么填充窗口最大宽度的界面元素在横向窗口中会被拉伸。如果布局没有构建滚动功能,用户可能无法点击屏幕外的按钮或其他界面元素,从而导致功能混淆或失效。为避免拉伸,需要为组件添加最大宽度,并添加滚动功能以确保所有内容都可访问。

  • 确保相机在两种屏幕方向上的兼容性:相机取景器预览可能假设相对于相机传感器的特定宽高比和屏幕方向,一旦这些假设不成立,就可能导致预览画面拉伸或翻转。请确保取景器能够正确旋转,并考虑到界面的宽高比与传感器的宽高比不同。

  • 在窗口大小变化时保持状态:取消屏幕方向和宽高比限制也意味着,应用的窗口大小将更频繁地根据用户使用应用的偏好发生变化,例如旋转、折叠设备,或在多窗口/自由窗口模式下调整应用大小。默认情况下,屏幕方向变化和调整大小会导致 Activity 重建。为了确保良好的用户体验,在这些配置变更的过程中保留应用状态至关重要,以免用户在更改设备状态或更改窗口模式时丢失之前的操作进度。

为了适应不同的窗口大小和宽高比,应使用窗口大小类来驱动布局行为,这种方式不需要针对特定设备进行自定义。在构建应用时,还应假设窗口大小会频繁变化。没有必要为不同的屏幕方向构建重复的特定布局,而是应确保现有界面在任何窗口大小下都能顺利地重新布局。如果您有专门针对横向或纵向设计的布局,那么这些布局仍然会被使用。

通过构建自适应性来优化窗口大小

如果您已经在构建自适应布局并支持所有屏幕方向,那么您就已经为成功做好了准备,因为您的应用将能够适应用户希望使用的各种设备类型和窗口模式。这些变更对您应用的影响会很小。

我们还提供了一系列测试资源,帮助您保证应用的可靠性。您可以使用 Espresso 测试框架和 Jetpack Compose 测试 API 等工具进行自动化测试。

时间表

我们理解,这些变更对于长期以来只支持纵向显示的应用来说意义重大。此类应用可能需要调整界面问题,例如按钮超出屏幕、内容重叠或屏幕带有相机取景器等。

为了帮助您提前规划并做出必要的调整,以下是这些变更的生效时间表:

  • Android 16 (2025):上述变更将成为以 API 级别 36 为目标的应用在大屏设备 (最小屏幕宽度大于 600dp) 上的基本体验,开发者可以选择暂不更改调整。

  • 2026 年的 Android 版本:上述变更将成为以 API 级别 37 为目标的应用在大屏设备 (最小屏幕宽度大于 600dp) 上的基本体验,开发者必须选择接受。

目标 API 级别 适用设备 开发者是否能选择不接受
36 (Android 16) 大屏设备 (最小屏幕宽度 > 600dp)
37 (预计) 大屏设备 (最小屏幕宽度 > 600dp)

针对特定 API 级别的截止日期取决于具体的应用商店。对于 Google Play,我们计划在 2026 年 8 月前应用需以 API 级别 36 为目标,在 2027 年 8 月前应用需以 API 级别 37 为目标。

为 Android 16 做好准备

本文详细介绍了 Android 16 在应用屏幕方向和大小调整方面的变革,包括变更内容、例外情况、对开发者的要求以及变更生效时间表等。开发者需要让应用具备自适应性,以应对这些变化,确保用户在不同设备和窗口模式下都能获得良好的体验。同时,开发者还可以利用提供的测试资源保证应用的可靠性,并根据时间表提前做好规划和调整。

原创文章,作者:江月浔,如若转载,请注明出处:https://www.kqbond.com/archives/4564.html

(0)
江月浔江月浔
上一篇 2025-03-25
下一篇 2025-03-25

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注