Android XR 应用质量指南

兼容性层级定义

为确保您的应用在 Android XR 设备上提供出色的用户体验,请查看以下兼容性核对清单和测试。

这些核对清单和测试定义了一套全面的质量要求,适用于大多数类型的 Android 应用。

兼容 Android XR 的移动应用

与 Android XR 兼容的移动应用是指尚未修改为适应大屏幕或任何其他外形规格的现有移动应用。只要此类应用不要求使用不受支持的任何功能(例如电话功能),便会自动与 Android XR 兼容。用户可以完成关键任务流程,但用户体验不如 Android XR 差异化应用

此类应用在用户环境中的面板上全屏运行,但在较大的尺寸下,其布局可能并不理想。在清单中指定了紧凑尺寸的应用会相应地显示。应用未在兼容模式下运行,因此不会采用信箱模式。应用具有 Android XR 提供的核心输入模式(眼球跟踪 + 手势或射线手)的功能体验,并对外部输入设备(包括键盘、鼠标、触控板和游戏控制器)提供基本支持。它可能或不可能支持调整大小。

与 Android XR 兼容的移动应用会自动选择启用,并在 Google Play 商店中提供。如果应用因不支持的功能要求而不兼容,则无法通过 Play 商店安装。

与 Android XR 兼容的大屏幕应用

与 Android XR 兼容的大屏设备应用表示大屏设备第 1 层级第 2 层级应用,已针对所有屏幕尺寸和设备配置(例如,除了移动设备之外的大屏设备)实现布局优化,并针对外部输入设备和多任务处理提供增强型支持。兼容 Android XR 的大屏幕应用会自动选择启用,并在 Play 商店中提供。

一款与 Android XR 兼容的大屏幕应用在用户环境中的空间面板上全屏运行,分辨率为 1024dp × 720dp。用户将能够使用眼睛和双手自然地与应用互动,但在其他方面与大屏幕应用非常相似。

Android XR 差异化应用

Android XR 差异化应用具有专为 XR 设计的用户体验,并实现了仅在 XR 上提供的功能。您可以通过使用 Android Jetpack XR SDK、Unity 或 OpenXR 开发应用,为应用添加 XR 功能(例如空间面板),添加 XR 内容(例如 3D 视频),从而充分利用 Android XR 功能并让应用体验脱颖而出。

您可以使用 Jetpack XR SDK 提供 XR 专用功能,包括空间面板、环境、3D 模型、空间音频、3D / 空间视频 / 照片、锚点以及其他空间界面(例如轨道器)。

要被视为 Android XR 差异化应用,应用必须实现至少一项 XR 专用功能或 XR 专用内容。对于某些使用情形,可能还存在更多功能和内容要求。详情请参见下文。

所有使用 Unity 或 OpenXR 构建的应用都属于差异化应用。使用 Unity 或 OpenXR 构建的应用必须满足质量指标和最低要求,才能被视为 Android XR 差异化应用。例如,帧速率较低、发生崩溃或存在其他负面用户体验的应用不符合条件。

Android XR 兼容性核对清单

这些兼容性核对清单定义了一些标准,可帮助您评估应用针对 XR 设备提供的支持服务级别。支持服务级别包括:

兼容 Android XR 的移动应用

您的应用必须满足核心应用质量要求。

您的应用还应遵循适用于手机和平板电脑等其他设备类型的所有无障碍指南(例如颜色对比度)。

与 Android XR 兼容的大屏幕应用

任何大屏设备第 1 层级第 2 层级应用都被视为与 Android XR 兼容的大屏设备应用。大屏设备应用质量指南提供了一种结构化的方法来确保在 Android XR 上提供出色的体验,但不需要考虑设备状态(例如旋转或折叠/展开)。同样,Android XR 也不支持触控笔。

利用 Android XR 实现差异化体验的应用

由于 Android XR 差异化应用的差异化很大,因此列出的某些功能仅适用于特定类型的应用。选择适合您的应用的功能。Android 应用还必须遵守 Android 大屏设备 / 移动设备指南。查看适用于您的应用的要求(其中一些要求也可能会成为潜在的政策更新)。

应用 / 使用情形类型

类别

领域

指南

一般基准要求(Android 和 OpenXR)

隐私权和安全

账号登录(首次使用体验)

如果您的应用使用登录系统,请在成功完成身份验证后明确显示用户的登录凭据(例如用户名凭据)。这有助于确认账号处于活跃状态,从而建立信任。此外,请添加一个方便访问的菜单或设置页面,让用户能够随时查看和管理其账号信息。

安全和舒适

频闪

为确保所有用户的安全和健康,请务必最大限度地降低应用中出现闪烁效果的风险。

避免刻意添加任何可能会导致闪烁的设计元素。

1. 如果确实需要使用频闪效果,请确保闪烁频率非常低(每秒低于 3 次闪烁),并且闪烁区域小且不明显。

2. 考虑提供通过设置或偏好设置停用此功能的功能。

3. 在发生任何闪烁之前显示清晰的警告消息。

避免晕车

请遵循以下准则,以免给用户造成晕动:

  • 避免突然的摄像机移动,以便优先考虑视觉舒适度。保持一致的参照框架,以免用户迷失方向。
  • 请勿旋转摄像头。如果相机的方向发生变化,相机会自动切换到新屏幕方向。

输入

互动目标大小

可交互的目标根据预期的互动距离具有最小尺寸和建议尺寸:

  • 最小尺寸:DistanceInM x 0.868 x 48 = M
  • 建议的大小:DistanceInM x 0.868 x 56 = M 或更大

使用 Jetpack XR SDK 时,我们建议最小尺寸为 48 x 48dp,建议的点按目标尺寸为 56 x 56dp 或更大。

XR 技术功能

手势输入

您的应用支持将自然手部输入作为 Android XR 的基准互动方法,包括手部射线投射要求和对输入基元的手势支持。

您的应用无需控制器即可玩或使用,但如果您选择使用控制器,则可以通过控制器增强应用的功能。

Boundary(以前称为 Guardian)

如果您的应用希望用户从起始点(应用启动时)移动到其实际空间中,则需要请求透传或在清单中声明 PROPERTY_ACTIVITY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE

如果您的应用使用 XR_BOUNDARY_TYPE_LARGE,则无需显示边界即可完全可玩(半径 2.0 米内;请注意,边界透视功能会在半径 1.5 米处开始淡入)。

性能

渲染

您的应用渲染每帧的时间介于 11.1 毫秒 (90Hz) 和 13.8 毫秒 (72Hz) 之间。

解决方案

应用的分辨率至少为每只眼睛 2364 x 2880。

应用启动时间

用户希望能够尽快与您的应用或游戏互动。启动或加载时间理想的定义因类别而异,但一般而言,我们建议尽可能缩短启动到首次互动的时间。

请参阅下方的目标时长:

  • 平均冷启动时间:低于 2 秒
  • 平均温启动时间:低于 1 秒

如需了解详情,请参阅应用启动时间

ANR

您的应用不会崩溃或阻塞界面线程,从而导致出现 ANR(“Android 无响应”)错误。

在 99.5% 的每日会话中,您的应用发生的 ANR 次数少于 1 次。

您的应用会使用 Google Play 的发布前报告来发现潜在的稳定性问题。部署后,请留意 Google Play 管理中心的 Android Vitals 页面。

崩溃率

请勿过度消耗系统资源,以免影响系统的其余部分和其他应用,并保持约 1% 的崩溃率

Android 应用基准(XR 差异化)

视觉效果和用户体验

基本 XR

您的应用实现了至少一项 XR 专用功能或 XR 专用内容,以提升用户体验。这可以包括轨道器、一个或多个空间面板、环境或 3D 对象。

空间面板

使用面板进行多任务处理(即同时完成两项或更多任务)时,请创建单独的空间面板。例如,您可以为聊天窗口和列表分别创建空间面板。

环境

在显示虚拟环境时,亮度可能会分散注意力并让人感到疲劳。您的应用采用安全的色调范围,亮度不会出现与界面冲突或可能导致用户疲劳的峰值。界面在所有方向上都清晰可辨,尤其是在用户注视的中间水平带内。(详细准则将于日后提供链接)

在居家空间 (HSM) 和完整空间 (FSM) 之间转换

将用户引导至全屏模式时,您的应用应提供一个入口点,以便用户在主屏幕和全屏模式之间快速切换。使用图标或标签,并将按钮放置在易于访问的位置。

空间面板

将菜单、资源和控件放置在专用面板或 Orbiter 中。请勿在主要编辑面板中添加这些组件。

菜单 / 列表滚动

您的应用会更新滚动互动(尤其是通过轮播界面或垂直列表),使其具有物理特性或动量。例如,滚动会结合惯性,使轮播界面和列表中的内容在用户互动后短暂继续移动,然后逐渐停止(而不是在用户停止输入时停止)。

视频 / 媒体功能

视觉效果和用户体验

Spatial Player(仅限 Android)

您的应用允许用户在全屏模式下观看内容。

从内容上方的叠加层中移除播放控件,改为将其放置在专用面板或 Orbiter 中。

对于包含视频播放的面板,请设置宽高比以移除信箱模式。

空间音频

考虑支持空间音频,包括面板锁定的音频或环绕声。

同时观看视频

如果您的应用支持同时播放多个视频串流,则界面应明确显示以下信息:

  • 哪些视频串流提供音频输出
  • 哪些播放控件会影响哪些视频串流

环境

在全空间中播放内容时,您的应用应允许用户调暗透视效果或选择虚拟环境。