谷歌发布Android XR SDK开发者预览版4,并更新设备命名规范
AI眼镜现在称为音频眼镜;而带显示屏的AI眼镜则统称为显示眼镜
(映维网Nweon 2026年05月20日)谷歌日前发布了Android XR SDK的全新开发者预览版,继续聚焦于统一头戴设备、有线XR眼镜和智能眼镜的跨设备开发。
谷歌进一步强调,将对各类设备形态采用更具描述性的命名:AI眼镜现在称为音频眼镜(Audio Glasses);而带显示屏的AI眼镜则统称为显示眼镜(Display Glasses)。相关变化已在谷歌开发者文档中体现。

Developer Preview 4包含大量更新,目标是帮助你为XR设备构建出色的体验,在XR头戴设备实现更深入的沉浸式体验,并简化在音频眼镜和显示眼镜创建增强体验的路径。同时,包括XR Runtime、Jetpack SceneCore和ARCore for Jetpack XR的核心库将很快正式进入Beta阶段。
为音频眼镜和显示眼镜构建增强体验
从用于增强体验的库开始,开发者预览版4引入了新的API,以帮助你创建和测试应用。
Jetpack Projected库有助于将应用体验从手机无缝衔接到用户的视场中。团队新增了设备Device Availability 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()
}
为提高光学透视显示器的可读性,用于显示眼镜的UI库Jetpack Compose Glimmer现在包含了Google Sans Flex字体。谷歌同时添加了多个交互式组件:
-
Stacks:专为触控板优化的分组设计,一次只显示一个项目。
-
Title Chips:为内容卡片提供分类和上下文信息。
为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
pbrMaterial.setOcclusionTexture(
texture = texture,
strength = 0.5f
)
// Access the hierarchy of nodes
val entityNodes = entity.nodes
// Find the specific node
val myEntityNode = entityNodes.find { it.name == "node_name" }
// Apply the PBR material override
myEntityNode?.setMaterialOverride(
material = newMaterial
)
谷歌同时为SceneCore带来了自定义网格,允许你以编程方式动态构建几何体。所述功能将作为实验性功能发布,欢迎试用并分享你的想法。
// 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。结合SpatialGltfModelState使用,你可以访问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眼镜的地理空间API预览
谷歌同时在ARCore for Jetpack XR中为有线XR眼镜提供了地理空间API的早期预览,支持将数字内容高精度锚定到超过87个国家和地区的真实世界位置。
通过将ARCore的视觉定位系统与Gemini Live API的推理和音频能力相结合,你可以创建具有上下文感知能力的体验,同时理解用户的位置和姿态。想象一下,构建一个沉浸式、AI导览的步行游览体验,实时提供附近景点的音频描述,将数字信息与物理环境无缝融合。
值得一提的是,谷歌已增加对Unreal Engine和Godot的官方支持,并推出两款新工具用于通过Unity和Android XR Interaction Framework加速Android XR开发。另外,新推出的Android XR Engine Hub允许你直接从喜爱的引擎中运行体验。

