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 / 空间视频 / 照片、锚点以及其他空间 UI(例如轨道器)。

要被视为 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. 在任何频闪发生之前显示清晰的警告消息。

避免晕动症

遵循以下指南,避免用户出现晕动症

  • 优先考虑视觉舒适度,避免突然的相机移动。保持一致的参考系以避免用户迷失方向。
  • 不要随着时间旋转相机。如果相机方向发生变化,相机应立即捕捉到新的方向。

输入

互动目标尺寸

可互动目标具有最小尺寸和基于预期互动距离的推荐尺寸

  • 最小尺寸:距离(米)x 0.868 x 48 = M
  • 推荐尺寸:距离(米)x 0.868 x 56 = M 或更大

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

XR 技术功能

手部输入

您的应用支持自然手部输入作为 Android XR 的基本交互方法,包括手部光线投射要求和输入原语的手势支持。

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

边界(原 Guardian)

如果您的应用期望用户在物理空间中从起点(应用启动时)移动,则它要么请求透视,要么在清单中声明 PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE

如果您的应用使用 XR_BOUNDARY_TYPE_LARGE,则在不显示边界的情况下(2.0 米半径内)可完全玩;请注意,边界透视在 1.5 米半径处开始逐渐显示。

性能

渲染

您的应用渲染每一帧的时间在 <11.1 毫秒(90 赫兹)和 < 13.8 毫秒(72 赫兹)之间。

分辨率

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

应用启动时间

用户希望尽快与您的应用或游戏互动。良好的启动或加载时间的定义因类别而异,但作为一般原则,我们建议最大程度地缩短启动与首次互动之间的时间。

请参阅下面的目标持续时间

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

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

ANR

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

您的应用在 99.5% 的日常会话中 ANR 少于 1 次。

您的应用使用 Google Play 的发布前报告来识别潜在的稳定性问题。部署后,请关注 Google Play 开发者控制台中的 Android Vitals 页面。

崩溃率

不要消耗过多系统资源,从而影响系统其余部分和其他应用,将崩溃率保持在约 1%。

Android 应用基准(XR 差异化)

视觉与用户体验

基础 XR

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

空间面板

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

环境

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

在主空间 (HSM) 和全空间 (FSM) 之间切换

将用户带到全空间时,您的应用应提供一个入口点,供用户在主空间和全空间之间快速切换。使用图标或标签,并将按钮放置在易于访问的位置。

空间面板

将菜单、素材和控件放置在专用面板或轨道器中。请勿将这些组件包含在主编辑面板中。

菜单/列表滚动

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

视频/媒体功能

视觉与用户体验

空间播放器(仅限 Android)

您的应用允许用户在全空间中观看内容。

将播放控件从内容顶部的叠加层中移除,并将其放置在专用面板或轨道器中。

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

空间音频

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

同时观看视频

如果您的应用支持多个同步视频流,用户界面应清楚显示以下信息

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

环境

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


OpenXR™ 和 OpenXR 徽标是 The Khronos Group Inc. 拥有的商标,并在中国、欧盟、日本和英国注册为商标。