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 XR 的功能,并通过以下方式区分应用体验:添加 XR 功能(例如空间面板)、通过使用 Android Jetpack XR SDK、Unity 或 OpenXR 进行开发,向应用添加 XR 内容(例如 3D 视频)。

您可以使用 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 应用还必须 遵守 大屏设备和移动 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 的基准互动方法,包括手部光线投射要求和输入基元的姿势支持。

您的应用无需控制器即可畅玩或使用,但如果您选择使用控制器,则可以增强应用体验。

边界(以前称为“Guardian”)

如果您的应用希望用户从其出发地(应用启动时)在物理空间中移动,则会在清单中请求透视或声明 PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE

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

性能

渲染

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

分辨率

您的应用每只眼睛的分辨率至少为 1856 x 2160。

应用启动时间

用户希望能够尽快与您的应用或游戏互动。良好启动或加载时间的定义因类别而异,但一般原则是,我们建议尽可能缩短启动和首次互动之间的时间。

请参阅以下目标时长:

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

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

ANR

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

在 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. 的商标,已在中国、欧盟、日本和英国注册为商标。