今天,我们很高兴推出 Android XR SDK 开发者预览版 4,继续专注于统一头戴设备、有线 XR 眼镜和智能眼镜的跨设备开发。为了让我们的平台更加直观,我们正在为设备规格采用更具描述性的命名方式,其中 AI 眼镜现在称为音频眼镜,而显示屏 AI 眼镜现在称为显示屏眼镜。这些更改将从今天开始出现在我们的文档中。
此版本包含多项更新,可帮助您为 XR 设备打造出色的体验,在 XR 头戴设备上实现更深入的沉浸式体验,并简化在音频眼镜和显示眼镜上创建增强现实体验的流程。此外,我们的核心库(包括 XR 运行时、Jetpack SceneCore 和 ARCore for Jetpack XR)很快将正式移至 Beta 版!
为了让您抢先体验相关硬件和资源,以便在即将推出的设备(例如显示眼镜、音频眼镜和 XREAL 的 Project Aura)上构建沉浸式和增强现实体验,我们宣布推出 Android XR 开发者催化剂计划。了解详情,并立即开始申请。
为音频眼镜和显示眼镜构建增强现实体验
从增强现实体验库开始,开发者预览版 4 引入了新的 API,可帮助您创建和测试应用。
Jetpack Projected:设备可用性和 ProjectedTestRule API
Jetpack Projected 库有助于将应用体验从手机扩展到用户的视野范围中。我们添加了 Device Availability API,该 API 将穿戴状态和连接信号整合为标准的 Android Lifecycle.State 值。这样一来,您就可以根据设备是否处于佩戴状态来调整应用的行为。
val xrDevice = XrDevice.getCurrentDevice(projectedContext) // Observe the device lifecycle flow xrDevice.getLifecycle().currentStateFlow .collect { state -> when (state) { Lifecycle.State.STARTED -> { /* Device is available (worn) */ } Lifecycle.State.CREATED -> { /* Device is unavailable (not worn) */ } Lifecycle.State.DESTROYED -> { /* Device is DISCONNECTED */ } } }
为了简化测试,投影测试制品中的新 ProjectedTestRule API 可自动设置投影测试环境。这有助于您编写简洁可靠的单元测试,而无需编写样板代码。
// from the 'androidx.xr.projected:projected-testing:1.0.0-alpha07' artifact @get:Rule val projectedTestRule = ProjectedTestRule() @Test fun testProjectedContextInitialization() { // by default, ProjectedTestRule automatically creates and connects // a projected device before each test val projectedContext = ProjectedContext.createProjectedDeviceContext(context) // assert the projected context is successfully initialized assertThat(projectedContext).isNotNull() }
Jetpack Compose Glimmer:Google Sans Flex 和新组件
我们的显示眼镜界面库 Jetpack Compose Glimmer 现在包含 Google Sans Flex,可提高光学透视显示屏上的可读性。我们还添加了多个互动组件:
为扩展现实头戴设备和有线扩展现实眼镜打造沉浸式体验
如果您想为扩展现实头戴设备和有线扩展现实眼镜打造完全沉浸式体验,我们为您准备了多项重大更新。
Beta 版过渡和现代架构
XR 运行时、Jetpack SceneCore 和 ARCore for Jetpack XR 感知功能(深度图、眼部/手部跟踪、命中测试和空间锚点)即将进入 Beta 版阶段,因此我们简化了 Jetpack XR API。我们移除了旧版 Guava 和 RxJava3 软件包,转而采用以 Kotlin 为主的新式架构。
Jetpack SceneCore:glTF 和自定义网格
我们正在扩展 3D 模型功能,新增了对 3D 模型进行微调以及访问 3D 模型中特定节点的功能。借助 GltfModelNode,您可以修改姿势、材质和纹理等属性,甚至可以为特定节点运行 动画。
// Create a new PBR material pbrMaterial = KhronosPbrMaterial.create( session = xrSession, alphaMode = AlphaMode.OPAQUE ) // Load a texture. val texture = Texture.create( session = xrSession, path = Path("textures/texture_name.png") ) // Apply the texture and configure occlusion to define how the material handles ambient lighting. pbrMaterial.setOcclusionTexture( texture = texture, strength = 0.5f ) // Access the hierarchy of nodes within the model entity. val entityNodes = entity.nodes // Find the specific node to apply the material override. val myEntityNode = entityNodes.find { it.name == "node_name" } // Apply the PBR material to the node. myEntityNode?.setMaterialOverride( material = newMaterial )
我们还将为 SceneCore 引入自定义网格。借助自定义网格,您可以以编程方式动态构建几何图形,这非常适合创建自定义 3D 模型。此功能将以实验性功能的形式推出,欢迎试用并与我们分享您的想法!
// Create the mesh val roadMesh = CustomMesh.BuilderFromMeshData(session, roadVertexLayout) .addVertexData(ByteBufferRegion(roadDataBuffer, 0, vertexDataSize)) .setIndexData(ByteBufferRegion(roadDataBuffer, vertexDataSize, indexDataSize)) .setTopology(MeshSubsetTopology.TRIANGLES) .build() // Define the material val roadMaterial = KhronosPbrMaterial.create(session, AlphaMode.OPAQUE) // Instantiate the entity using the custom mesh and material val roadEntity = MeshEntity.create( session, roadMesh, listOf(roadMaterial), pose = roadPose, )
Compose for XR:原生 glTF 支持
我们现在直接在 Compose for XR 中通过 SpatialGltfModel 原生支持 glTF。将此与 SpatiallGltfModelState 结合使用,以访问 glTF 模型中的节点和动画,或使用它们为 3D 模型添加纹理和材质。
val myGltfModelState = rememberSpatialGltfModelState( source = SpatialGltfModelSource.fromPath( Paths.get("models/my_animated_model.glb") ) ) val myGltfAnimation = myGltfModelState.animations.find { it.name == "animation_name" } DisposableEffect(myGltfAnimation) { myGltfAnimation?.loop() onDispose { myGltfAnimation?.stop() } } SpatialGltfModel(state = myGltfModelState, modifier = modifier)
ARCore for Jetpack XR:有线 XR 眼镜的 Geospatial API 预览版
我们还将在 ARCore for Jetpack XR 中提供有线 XR 眼镜的 Geospatial API 抢先预览版。此更新可在 87 个以上的国家/地区实现与现实世界位置相关联的数字内容的高精度锚定。
通过将 ARCore 的 Visual Positioning System (VPS) 与 Gemini Live API 的推理和音频功能相结合,您可以打造情境感知体验,让应用能够了解用户的位置和方位。想象一下,您打造了一个沉浸式 AI 引导的徒步游览项目,可提供附近地点的实时音频描述,将数字信息与实体环境无缝融合。
立即开始构建未来
现在是开发 Android XR 应用的好时机。随着 Jetpack XR SDK 即将进入 Beta 版阶段,以及一系列强大的新工具触手可及,请探索以下各个领域,让您的应用体验为 XR 做好准备!
阅读文档、探索示例并查看 XR 实验
如需查看完整的技术指南、API 参考文档以及有关设置新模拟器的说明,请访问 Android 开发者官方网站。从我们的示例和实验中获取灵感。了解我们如何使用这些 API 构建沉浸式空间布局、加载 3D 模型、探索空间音频等!
了解游戏引擎的新变化
我们已正式支持 Unreal Engine 和 Godot,并推出了两款新工具,以利用 Unity 和 Android XR 交互框架加速 Android XR 开发。根据您的反馈,我们推出了 Android XR 引擎 Hub,让您能够直接通过自己偏好的引擎运行体验,
申请加入 Android XR 开发者催化剂计划
千万别错过为最新 Android XR 硬件构建应用的机会。立即申请,就有机会获得预发布版硬件,包括我们的音频眼镜和显示眼镜原型以及 XREAL 的 Project Aura。
我们期待在今年晚些时候推出更多 Android XR 设备,并期待看到您打造出色的 XR 体验!
如需了解此公告和所有 Google I/O 2026 更新,请访问 io.google。
继续阅读
-
产品资讯
我们很高兴地宣布,Android XR 现已正式支持 Unreal Engine 和 Godot。我们还推出了旨在提高您的工作效率并实现全新 XR 功能的新工具:Android XR Engine Hub 和 Android XR Interaction Framework。
Luke Hopkins • 阅读用时:4 分钟
-
产品资讯
在今年的 Google I/O 大会上,我们讨论了不断发展的业务模式,该模式可提供更多选择,并让您的应用和内容能够通过应用商店内外的各种新方式被发现。我们还推出了高级工具和数据分析,可帮助您以更简单的方式扩大业务规模。
Paul Feng • 阅读用时:6 分钟
-
产品资讯
我们很高兴与您分享 Google TV 功能和开发者工具,这些功能和工具旨在提高您内容的发现率,并为您的应用做好准备,以迎接未来的电视体验。
Paul Lammertsma • 阅读用时:4 分钟
随时了解最新动态
每周通过电子邮件接收最新的 Android 开发洞见。