性能考虑因素

为了打造富有吸引力的 AR 用户体验,您的支持 AR 的应用必须表现出色。

请确保您的应用满足以下要求:

  • 对用户输入(包括触摸手势和设备动作)做出响应。
  • 以合理且一致的帧速率呈现。相较于可变且更高的帧速率,用户通常更喜欢稳定且较低的帧速率。
  • 最大限度地减少耗电量,让用户在一天当中仍可使用设备处理其他任务,或延长 AR 体验时间。
  • 打造富有吸引力的 AR 体验,其中 AR 生成的内容相对于环境看起来稳定,并且与环境逼真融合。

性能最佳实践

为了打造更具吸引力的 AR 体验,请在设计时牢记以下最佳实践。

使用锚点提升跟踪效果

尽管可以使用世界空间坐标放置 3D 内容,但请始终尽可能使用锚点。ARCore 可以确保锚点相对于世界保持稳定,即使底层世界空间坐标发生变化,并且每当 ARCore 更新它对世界的理解时它也可能会随时间跳跃。

没有连接到锚点的虚拟对象偶尔会显示跳动,相对于环境而言,看起来不会很稳定。这会降低 AR 体验对用户的吸引力。

考虑设备专属性能特征

支持 ARCore 的设备涵盖广泛的硬件和性能特征。设备性能可能会因以下因素而有所不同:

  • 设备 CPU/GPU、时钟速度
  • 可用内存和带宽
  • 摄像头/IMU 传感器质量
  • 其他硬件差异
  • 操作系统和设备驱动程序

我们建议在不同类别的设备(代表用户将使用的设备)上测试您的应用。

在不使用时停用 CPU 密集型功能

某些 ARCore 功能在启用时会增加 CPU 利用率。您可以考虑在 AR 体验不需要这些功能的时候停用这些功能。这会为您的应用提供更多 CPU 周期,并提高散热性能和电池续航时间。

目前,当为当前会话启用 Instant Placement 和/或 Augmented Images 时,ARCore CPU 利用率会增加。请遵循以下准则来提高 CPU 利用率效率:

  • 建立全面跟踪后,应停用 Instant Placement。您可以在会话配置中停用该功能。

  • 只要您的 AR 体验不需要该功能,就应停用 Augmented Images。如需停用增强图像,请在会话配置中配置 null 或空的增强图像数据库。

监控设备热情况

在开发和质量检查测试期间,您可以使用 Android 的 Thermal API 监控和跟踪应用在设备上的性能。

确保使用应用的生产 build(而不是具有不同运行时性能特征的开发 build 或 qa build)。

识别 ARCore CPU 不足

当 ARCore 会话处于活动状态时,您的应用必须与 ARCore 共享有限的移动 CPU 和 GPU 资源。受 CPU 限制的应用可能会与动作跟踪所需的 CPU 资源竞争。

如需验证 ARCore 的同时定位和映射 (SLAM) 能否正常运行,请验证“VIO 频率较低”消息是否出现在 Android 设备日志中:

adb logcat | grep 'VIO frequency low'

避免 ARCore CPU 不足

当 ARCore 会话处于活动状态时,您的应用必须与 ARCore 共享有限的移动 CPU 和 GPU 资源设备。受 CPU 限制的应用可能会与动作跟踪所需的 CPU 资源竞争。

预先创建增强图像数据库

请尽可能在开发时预先创建增强图像数据库。如果必须在运行时创建增强图像数据库或需要动态地将图像添加到现有数据库,请务必在后台线程中添加图像,以免阻塞主界面线程。

限制请求的摄像头视频流数量

使用 Java 共享相机时,应用可以请求额外的 CPU 或 GPU 图片流。