今天,我们很高兴推出 Android XR SDK 的开发者预览版 4,继续专注于为头戴设备、有线 XR 眼镜和 智能眼镜统一跨设备开发。为了让我们的平台更直观,我们为设备规格采用了更具描述性的命名方式,其中 AI 眼镜现在称为无屏眼镜,带屏 AI 眼镜现在称为带屏眼镜,这些更改将从今天开始出现在我们的文档中。
此版本包含大量更新,可帮助您为 XR 设备打造出色的体验,在 XR 头戴设备上实现更深入的沉浸式体验,并简化在音频眼镜和带屏眼镜上创建增强体验的路径。 此外,我们的核心库(包括 XR Runtime、Jetpack SceneCore 和 ARCore for Jetpack XR)即将正式进入 Beta 版阶段!
为了让您能够抢先体验硬件和资源,以便在即将推出的设备(如带屏眼镜、无屏眼镜和 XREAL 的 Project Aura)上打造沉浸式和增强体验,我们宣布推出 Android XR 开发者催化剂计划。了解详情,并立即开始申请。
为音频眼镜和带屏眼镜打造增强体验
首先,我们推出了用于增强体验的库,开发者预览版 4 引入了新的 API,可帮助您创建和测试应用。
Jetpack Projected:Device Availability 和 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 */ } } }
为了简化测试,projected-testing 制品中的新 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,可在光学透视显示屏上提高可读性。我们还添加了几个互动组件:
为 XR 头戴设备和有线 XR 眼镜打造沉浸式体验
如果您希望为 XR 头戴设备和有线 XR 眼镜打造完全沉浸式的体验,我们提供了一些重大更新。
Beta 版过渡和现代架构
XR Runtime、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 中提供原生 glTF 支持,并使用 SpatialGltfModel。您可以将此功能与 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 的视觉定位系统 (VPS) 与 Gemini Live API 的推理和音频功能相结合,您可以创建内容感知体验,了解用户的位置和姿势。想象一下,打造一个沉浸式 AI 引导的徒步游览体验,提供附近地点的实时音频描述,将数字信息与物理环境无缝融合。
立即开始构建未来
现在是开发 Android XR 的绝佳时机。随着 Jetpack XR SDK 即将进入 Beta 版阶段,以及一系列强大的新工具触手可及,请探索以下各个领域,让您的应用体验为 XR 做好准备!
阅读文档、探索示例并查看 XR 实验
请访问 Android 开发者官方网站,获取完整技术指南、API 参考文档以及有关设置新模拟器的说明。从我们的示例和实验中获取灵感。了解我们如何使用这些 API 构建沉浸式空间布局、加载 3D 模型、探索空间音频等!
了解游戏引擎的新功能
我们已正式支持 Unreal Engine 和 Godot,并推出了两款新工具,以加快使用 Unity 和 Android XR Interaction Framework 开发 Android XR 的速度。此外,根据您的反馈,我们推出了 Android XR Engine Hub,让您可以直接从首选引擎运行体验,
申请加入 Android XR 开发者催化剂计划
千万不要错过为最新的 Android XR 硬件构建应用的机会。立即申请,就有机会获得预发布硬件,包括我们的音频眼镜和带屏眼镜原型以及 XREAL 的 Project Aura。
我们期待在今年晚些时候推出更多 Android XR 设备,并期待看到您打造出色的 XR 体验!
如需了解此公告和 2026 年 Google I/O 大会的所有更新,请访问 io.google。
继续阅读
-
产品资讯
从增强现实叠加层到完全沉浸式环境,Android XR 生态系统正在快速扩展,Samsung Galaxy XR 今天已上市。
Stevan Silva, Vinny DaSilva • 3 分钟阅读时间
-
产品资讯
我们很高兴地宣布,Android XR 现在正式支持 Unreal Engine 和 Godot。我们还推出了旨在提高开发效率并实现新的 XR 功能的新工具:Android XR Engine Hub 和 Android XR Interaction Framework。
Luke Hopkins, Ryan Bartley • 4 分钟阅读时间
-
产品资讯
在 2026 年 Google I/O 大会上,我们介绍了 Android 从操作系统到智能系统的转变。我们还演示了如何使用系统原生构建智能体验,以及如何将 Google AI 的强大功能融入到您的应用中。
Jingyu Shi • 2 分钟阅读时间
随时了解最新动态
每周通过电子邮件接收最新的 Android 开发洞见 每周。