Android XR:沉浸式体验的应用质量指南和政策

适用的 XR 设备
本指南可帮助您为以下类型的 XR 设备打造优质体验。
扩展现实头戴设备
有线扩展现实眼镜

沉浸式体验的应用质量指南扩展了基础核心应用质量移动标准。

这些应用质量指南和政策侧重于 XR 头戴设备和有线 XR 眼镜上 Android XR 平台独有的空间互动和功能,如兼容性层级定义、核对清单和 Android XR 应用政策中所述。请查看这些部分,验证您的应用是否可在扩展现实头戴设备和有线 XR 眼镜上提供出色的用户体验。

沉浸式体验:兼容性层级定义

请查看以下兼容性层级定义,了解您的应用在扩展现实头戴设备和有线 XR 眼镜上提供的沉浸式体验支持级别。

与 Android XR 兼容的移动应用

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

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

与 Android XR 兼容的移动应用会自动选择启用,并可在 Google Play 商店中下载。由于功能要求不受支持而导致不兼容的应用无法通过 Play 商店安装。

与 Android XR 兼容的自适应应用

与 Android XR 兼容的自适应应用是指针对所有屏幕尺寸和设备配置(例如,除了移动设备之外,还包括大屏设备)实现了布局优化,并增强了对外部输入设备和多任务处理的支持的应用。如果应用针对桌面设备、平板电脑或可折叠设备达到第 2 层级:自适应优化或第 1 层级:自适应差异化,则满足这些要求。

与 Android XR 兼容的自适应应用会自动选择加入,并可在 Play 商店中获取。

Android XR 差异化应用

Android XR 差异化应用提供专为 XR 量身打造的用户体验,并且搭载 XR 设备上的独有功能。您可以使用 Android Jetpack XR SDK、Unity、Godot、Unreal Engine 或 OpenXR 进行开发,通过添加 XR 功能(例如空间面板)和 XR 内容(例如 3D 视频)来充分利用 Android XR 功能,并打造差异化的应用体验。

您可以使用 Jetpack XR SDK 提供 XR 专属功能,例如:

  • 空间面板
  • 环境
  • 3D 模型
  • 空间音频
  • 3D 或空间视频和照片
  • 锚定广告
  • 其他空间界面,例如轨道器

如要被视为 Android XR 差异化应用,应用必须实现至少一项 XR 专属功能或 XR 专属内容。对于某些用例,可能存在更多功能和内容要求。如需了解详情,请参阅后续部分。

所有使用 Unity、Godot、Unreal Engine 或 OpenXR 构建的应用,只要符合质量指标和最低要求,即被视为 Android XR 差异化应用。例如,帧速率低、崩溃或存在其他负面用户体验的应用不符合条件。

利用徽章帮助用户在 Play 商店中发现您的应用

Android XR 差异化应用会自动在 Play 商店中获得“Made for XR”标记,以帮助用户发现优质的 XR 体验。

沉浸式体验:兼容性核对清单

为确保您的应用在扩展现实头戴设备和有线扩展现实眼镜上提供出色的用户体验,请查看以下兼容性核对清单和测试。

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

与 Android XR 兼容的移动应用

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

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

与 Android XR 兼容的自适应应用

任何针对桌面设备、平板电脑或可折叠设备达到第 2 层级(自适应优化)或第 1 层级(自适应差异化)的应用,也都被视为与 Android XR 兼容的自适应应用。自适应应用质量指南提供了一种结构化方法,可确保在 Android XR 上提供出色的体验,但无需考虑设备状态(例如旋转或折叠/展开)。

Android XR 差异化应用

由于 Android XR 差异化应用的差异化很大,因此列出的某些功能仅适用于特定类型的应用。选择适合您应用的功能。Android 应用还必须遵守自适应应用质量指南。请参阅适合您的应用的要求。

您还应遵循有关设计 XR 差异化应用的指南,以提供尽可能出色的用户体验。

应用类型和应用场景

类别

领域

指南

一般基准要求(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 的基准交互方法,包括手部光线投射要求和对输入基元的手势支持。

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

边界

如果您的应用主要专注于现实世界(currentPassthroughOpacity 设置为大于 0.5 的值),用户可能会在现实世界环境中四处走动。确保中央视野范围没有密集、不透明的元素,以免发生绊倒危险或无法感知周围环境。

如果您的应用主要专注于虚拟世界(currentPassthroughOpacity 设置为小于 0.5 的值),并且不是固定体验,则应考虑使用 PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE 在清单中声明一个大边界。

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

XR 眼镜:XR 眼镜设备没有边界。

性能

渲染

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

分辨率

OpenXR 和引擎:查询 XR_ANDROID_recommended_resolution 以获取理想的渲染目标,就像标准游戏引擎一样。

应用启动时间

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

请参阅以下目标时长:

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

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

ANR

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

您的应用在 99.5% 的活跃日中 ANR 发生次数少于 1 次。

您的应用使用 Google Play 的发布前测试报告来找出潜在的稳定性问题。部署后,请关注 Google Play 管理中心内的 Android Vitals 页面。

崩溃率

不消耗过多系统资源,以免影响系统的其余部分和其他应用,同时保持约 1% 的崩溃率。

Android 应用基准(XR 差异化)

视觉和用户体验

基本 XR

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

空间面板

  • 将菜单、资源和控件放置在专用面板或轨道器中。请勿在主编辑面板中添加这些组件。
  • 使用面板执行多任务(即同时完成两项或多项任务)时,请创建单独的空间面板。例如,您可以为聊天窗口和列表创建单独的空间面板。

环境

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

界面主题

默认使用或强烈建议使用深色主题;浅色主题应用会显得非常亮,无法融入用户所处的环境,并且会更快耗尽电池电量。对于 XR 眼镜,请始终实现深色主题,因为系统默认使用深色主题。

在主共享空间 (HSM) 和全沉浸空间 (FSM) 之间切换

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

菜单和列表滚动

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

视频和媒体功能

视觉和用户体验

空间播放器(仅限 Android)

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

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

对于包含视频播放功能的面板,请设置宽高比以移除黑边。

空间音频

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

同时观看视频

如果您的应用支持同时播放多个视频流,界面会清楚地显示以下信息:

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

环境

在全沉浸空间中播放视频内容时,您的应用允许用户调暗透视画面(或在受支持的设备上选择虚拟环境)。

Android XR 应用政策

所有应用都必须遵守以下政策中的要求,以便在扩展现实头戴设备和有线 XR 眼镜等沉浸式设备上提供安全且尊重用户的体验。

应用安全

谨此提醒,通过 Google Play 分发的所有应用都必须遵守所有 Google Play 开发者政策。

我们严格禁止以下活动,应用不得协助或宣传这些活动:

  • 人肉搜索
  • 人脸识别或生物识别
  • 监视
  • 创建或传播未经当事人同意的私密图像 (NCII)

所有应用都必须提供以下旁观者保护措施:

相机安全

访问摄像头的应用必须尊重旁观者的隐私,并必须遵守以下规定:

禁止的互动

说明

实时人脸识别和人肉搜索

应用不得使用摄像头传感器进行人脸识别,以获取旁观者的个人身份信息 (PII)。例如:姓名、住址、电话号码或雇主。

未经当事人同意的私密图像 (NCII) 或非法内容生成

应用不得使用摄像头传感器来协助创建未经当事人同意的私密图像 (NCII) 或任何非法内容(例如 CSAM)。

音频安全

使用麦克风阵列的应用应尊重旁观者的隐私,并且必须遵守以下规定:

禁止的互动

说明

持续窃听

当佩戴者未主动与应用互动来执行用户发起的任务时,应用不得在后台持续录音或转写。

语音识别

应用不得使用麦克风阵列来识别非佩戴者的声音或旁观者。

LED 行为

应用不得对设备的前置和后置 LED 执行以下操作:

禁止的互动

说明

程序化抑制或修改

应用不得根据麦克风和摄像头访问权限更改、调暗或停用系统强制执行的外向 LED 和面向用户的 LED 行为。应用也不得鼓励或指示用户更改、调暗或停用 LED 的行为。

绕过防窃听和破坏检测

应用不得绕过或干扰设备的阻碍检测算法,也不得鼓励或引导用户这样做。这些算法旨在通过编程方式,在面向外部的 LED 被物理遮挡或损坏时停止录制。


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