借助 Jetpack XR SDK,您可以使用 Kotlin 和 Compose 等现代工具,以及 Java 和 Views 等上一代工具,构建沉浸式 XR 体验。您可以将您的 UI 空间化、加载和渲染 3D 模型并语义化理解真实世界。
如果您已拥有 Android 移动或大屏幕应用,Jetpack XR SDK 可通过空间化现有布局、使用 3D 模型和沉浸式环境增强您的体验,从而将您的应用扩展到新的维度。请参阅我们的质量准则,了解我们将现有 Android 应用空间化的建议。
Jetpack XR SDK 包含以下库。它们共同提供了一个全面的工具包,用于构建丰富多样的空间化体验,并且旨在相互无缝协作。
- 面向 XR 的 Jetpack Compose:声明式地构建利用 Android XR 空间功能的空间 UI 布局。
- 面向 XR 的 Material Design:使用适应 XR 的 Material 组件和布局进行构建。
- Jetpack SceneCore:使用 3D 内容构建和操作 Android XR 场景图。
- 面向 Jetpack XR 的 ARCore:通过感知功能将数字内容带入真实世界。
面向 XR 的 Jetpack Compose
借助面向 XR 的 Jetpack Compose,您可以使用熟悉的 Compose 概念(例如行和列)在 XR 中创建空间 UI 布局,无论您是将现有 2D 应用移植到 XR 还是从头开始创建新的 XR 应用。
此库提供了子空间可组合微件,例如 SpatialPanel
和 Orbiter
,可让您将现有的 2D Compose 或基于 Views 的 UI 放置在空间布局中。
请参阅使用面向 XR 的 Jetpack Compose 开发 UI,获取详细指导。
面向 XR 的 Compose 引入了 Volume
子空间可组合项,可让您将 SceneCore 实体(例如 3D 模型)放置在相对于您 UI 的位置。
了解如何将现有 Android 应用空间化,或查看 API 参考文档以获取更详细信息。
面向 XR 的 Material Design
Material Design 提供了适用于 XR 的组件和布局。例如,如果您使用自适应布局进行构建,并且使用 EnableXrComponentOverrides
封装容器更新到最新 alpha 依赖项,则每个窗格都将放置在 SpatialPanel
中,并且导航栏将放置在 Orbiter
中。详细了解如何为 XR 实现 Material Design。
Jetpack SceneCore
借助 Jetpack SceneCore 库,您可以放置和排列由实体定义的 3D 内容,使其彼此相对以及相对于您的环境。使用 SceneCore,您可以:
- 设置空间环境
- 创建 [
PanelEntity
][23] 的实例 - 放置和动画化 3D 模型
- [指定空间音频源][24]
- 为实体添加组件,使其可移动、可调整大小,并可锚定到真实世界
Jetpack SceneCore 库还支持将使用 Views 构建的应用空间化。有关详细信息,请参阅我们的[使用视图指南][25]。
查看 [API 参考文档][26]以获取更详细信息。
面向 Jetpack XR 的 ARCore
受现有 [ARCore 库][27]的启发,面向 Jetpack XR 的 ARCore 库提供了将数字内容与真实世界融合的功能。此库包括运动追踪、持久锚点、命中测试以及带语义标签(例如地板、墙壁和桌面)的平面识别。此库利用由 [Android XR 上的 OpenXR][28] 提供支持的底层感知堆栈,这可确保与各种设备的兼容性,并有助于面向未来的应用。
查看[使用面向 Jetpack XR 的 ARCore][29] 以获取更详细信息。
开发者预览版注意事项
请注意,此版本是开发者预览版的一部分,这些 API 仍在开发中。请参阅版本说明了解已知问题。
- [面向 XR 的 Jetpack Compose 版本说明][30]
- [面向 Jetpack XR 的 ARCore 版本说明][31]
- [Jetpack SceneCore 版本说明][32]
- [面向 SceneCore 运行时的 Jetpack 版本说明][33]
如果您遇到列表中没有的问题,请[报告错误或提交反馈][34]。
OpenXR™ 和 OpenXR 徽标是 The Khronos Group Inc. 拥有的商标,并在中国、欧盟、日本和英国注册为商标。