如需开始在 Android 上使用 ARCore,您可以运行 ARCore SDK 中包含的 hello_ar_kotlin 或 hello_ar_java 示例应用。这些示例应用使用 OpenGL,这是一个用于渲染 2D 和 3D 矢量图形的编程接口。这些应用会显示检测到的所有平面,并允许用户点按平面来放置 3D 模型。

设置您的开发环境

安装 Android Studio 3.1 或更高版本,以及 Android SDK Platform 7.0(API 级别 24)或更高版本。

如果您刚开始接触 Android,请参阅构建首个 Android 应用。

打开示例项目

在 Android Studio 中,克隆 ARCore SDK GitHub 代码库。

您可以通过多种方式执行此操作:

对于已安装的 Android Studio:

从 Git 菜单中选择 Clone。

在 Version control 下拉菜单中,选择 Git 作为版本控制系统。

在 URL 字段中,输入 ARCore GitHub 代码库的以下网址:

https://github.com/google-ar/arcore-android-sdk.git

您还可以打开 Terminal 并发出 git clone 命令,如下所示:

git clone https://github.com/google-ar/arcore-android-sdk.git

按照以下方式打开其中一个示例项目(您必须明确打开项目才能构建和运行它)。

从 File 菜单中选择 Open。

在 arcore-android-sdk/samples 文件夹中,选择 hello_ar_kotlin 或 hello_ar_java 文件夹,然后点击 Open。

准备设备或模拟器

您可以在受支持的设备上或 Android 模拟器中运行 AR 应用。您必须先在模拟器上更新 Google Play 服务(适用于 AR),然后才能运行应用。如需了解详情,请参阅在 Android 模拟器中运行 AR 应用 。

运行示例

确保您的 Android 设备已连接到开发机器,然后点击 Android Studio 中的 Run 。

Android Studio 会将您的项目构建为可调试的 APK,安装 APK,然后在您的设备上运行应用。如需了解详情,请参阅构建和运行应用。

如果缺少 Google Play 面向 AR 的服务 或该服务版本过旧,系统可能会提示您安装或更新该服务。选择 CONTINUE 即可从 Google Play 商店安装该服务,或按照更新“面向 AR 的 Google Play 服务”中的说明手动更新该服务。

借助 hello_ar_java 应用,您可以在检测到的 AR 平面上放置三维 ARCore 棋子。它是使用 Android GL SurfaceView 实现的,该 SurfaceView 用于渲染相机预览和基本 AR 对象(例如平面和锚点)。hello_ar_java 的示例渲染框架可在 com/google/ar/core/examples/java/common/samplerender 中找到。

注意 :hello_ar_java 中的生命周期方法不同于通常在 OpenGL 应用中找到的方法。为确保为您自己的应用正确设置 AR,请遵循 hello_ar_java 中的生命周期管理逻辑。

使用即时展示位置

借助 Instant Placement API,用户无需等待 ARCore 检测 Surface 几何图形,即可在屏幕上放置 AR 对象。随着用户在环境中进一步移动,系统会实时优化对象放置。

点按屏幕以放置对象。看到全息对象显示在屏幕上后,请务必继续移动设备,以便 ARCore 获取足够的周围环境数据,从而准确锚定虚拟对象。

一旦 ARCore 检测到表面几何图形并在放置对象的区域内建立可跟踪对象,系统就会自动更新对象的姿态以提高准确性。

在图 1 中,即时展示位置已停用,并且 Surface 几何图形未定义。放置在桌球桌右侧地板上的物体(四个蓝色小圆点)看起来像是被推倒了,其姿势未定义。

在图 2 中,通过齿轮图标下的菜单启用了即时展示位置。

在图 3 中,启用“即时放置”后,系统会在场景中放置一个新对象。它以灰度(而非彩色)显示,表示尚未校正为准确的姿势。

在图 4 中,当检测到表面几何图形(由可跟踪网格线描述)时,新对象会变为彩色,并且其姿势准确无误。

使用深度

启用深度后,ARCore 会考虑场景中对象的几何图形和位置,并计算放置在场景中的对象相对于场景中其他对象的位置。它允许放置的对象被场景中的对象遮挡,并为您的应用增添真实感。

在图 1 中,“深度”已停用。将一个物体放在桌球桌下。

在图 2 中,当设备在桌球桌周围移动时,对象似乎会跟随设备移动,而不会受到场景中其他对象的影响。

在图 3 中,“深度”已启用。

在图 4 中,随着设备在场景中移动,对象现在似乎被桌球桌遮挡了。

后续步骤

尝试在 ARCore SDK 中构建和运行其他示例项目。

如需查看更多可构建和运行的示例应用,请参阅增强现实 Codelab。

了解如何在应用中启用 ARCore。

查看运行时注意事项。

查看设计准则。