在 Android Emulator 中运行 AR 应用

使用 Android Emulator 可以测试 AR 场景,无需物理设备。 借助 Android Emulator,您可以使用自己能够控制的模拟设备在虚拟环境中运行 ARCore 应用。

设置您的开发环境

软件要求:

硬件要求:

  • 如果您的应用中使用 Sceneform,您还需要:
    支持 OpenGL ES 3.0 或更高版本的开发计算机。

获取适合 ARCore 的 Android Studio 和 SDK 工具

  1. 安装 Android Studio 3.1 或更高版本。

  2. 在 Android Studio 中,转到 Tools > SDK Manager

  3. 选择 SDK Platforms,然后点击 Show Package Details

    Android 8.1 (Oreo) 下,选择:
    Google APIs Intel x86 Atom System Image API 级别 27,版本 4 或更高版本。

  4. 选择 SDK Tools,然后添加 Android Emulator 27.2.9 或更高版本。

  5. 点击 OK 以安装所选的软件包和工具。

创建支持 AR 的虚拟设备

您可以按照 Android Studio 说明操作,创建支持 AR 的虚拟设备

配置虚拟设备

  • 选择 PixelPixel 2 硬件配置。
  • 选择 Oreo:API Level 27: x86:Android 8.1 (Google APIs) 系统映像。
  • 确认您的虚拟设备已正确配置:

    • 转到 Verify Configuration > Show Advanced Settings
    • 确保 Camera Back 已设为 VirtualScene

配置模拟器,使之支持 Sceneform

Sceneform 要求 OpenGL ES 3.0 或更高版本。

  1. 确保您的模拟器已配置为使用最新版本的 OpenGL ES:

    • 在正在运行的模拟器中,点击工具栏中的更多
    • 选择 Settings > Advanced > OpenGL ES API level > Renderer maximum (up to OpenGL ES 3.1)
    • 重新启动模拟器。 系统提示时,请不要保存当前状态。
  2. 在重启模拟器之后,与模拟设备进行短暂的交互,然后通过 grep 命令查看设备日志,检查是否使用了 OpenGL ES 3.0:

    adb logcat | grep eglMakeCurrent

    如果您看到 ver 3 0 或更高版本 ,则可以在模拟器中运行 Sceneform 应用:

    … …  …  … D EGL_emulation: eglMakeCurrent: 0xebe63540: ver 3 0 (tinfo 0xd104cb40)

    如果您看到的是更低版本,则表示您的桌面设备 GPU 不支持 OpenGL ES 3.0,您必须改用支持的物理设备来运行 Sceneform 应用。

运行您的应用

在模拟器中支持 AR 的虚拟设备上测试 ARCore 应用。 要执行此操作,您可以按照 Android Studio 说明操作,在 Android Emulator 中运行应用

更新 ARCore

模拟器上的 ARCore 版本可能已过期。 请按照以下说明操作,更新 ARCore:

  1. 从 GitHub 版本 页面下载最新的 ARCore_*_x86_for_emulator.apk

  2. 将下载的 APK 安装到您想要使用的每个 AVD 中:

    选择所需的 AVD,然后将下载的 APK 拖放到正在运行的模拟器上,或者在虚拟设备正在运行时,使用 adb 进行安装:

    adb install -r ARCore_*_x86_for_emulator.apk

针对您想要使用的任何其他 AVD,重复上述步骤。

控制虚拟场景

当您的应用连接到 ARCore 时,您会在模拟器窗口下面看到一个状态栏和一个描述如何控制摄像头的叠加层。

移动虚拟摄像头

按住 Option (macOS) 或 Alt(Linux 或 Windows)可以访问摄像头移动控件。 使用以下控件可以移动摄像头:

平台 动作 操作
macOS 左右移动 按住 Option 并按 AD
上下移动 按住 Option 并按 QE
前后移动 按住 Option 并按 WS
更改设备的屏幕方向 按住 Option 并移动鼠标
LinuxWindows 左右移动 按住 Alt 并按 AD
上下移动 按住 Alt 并按 QE
前后移动 按住 Alt 并按 WS
更改设备的屏幕方向 按住 Alt 并移动鼠标

松开 OptionAlt 可在模拟器中返回交互模式。

扩展控件中使用 Virtual Sensors 标签可以进行更精确的设备定位。

向场景添加增强图像

将图像加载到模拟器的模拟环境中可以测试增强图像

在扩展控件中使用 Camera 标签可以添加或修改场景图像。 存在两个图像位置,一个在墙上,一个在桌子上。

要在场景中查看这些图像位置,请启动您的模拟器,然后穿过摄像头开始位置后面的门,将摄像头移动到餐厅区域。

问题排查提示

  • 如果您的 ARCore 应用启动并且您看到“AR Core not supported”消息,请检查您的系统映像的版本。 确保您使用的是 API Level 27 Revision 4

  • 如果您的 ARCore 应用在启动时无法打开摄像头,请确保 Camera Back 已设为 VirtualScene,如上面的配置步骤所述。