谷歌发布Android XR SDK开发者预览版4,并更新设备命名规范

PICO 4 Ultra

查看引用/信息源请点击:映维网Nweon

AI眼镜现在称为音频眼镜;而带显示屏的AI眼镜则统称为显示眼镜

映维网Nweon 2026年05月20日谷歌日前发布了Android XR SDK的全新开发者预览版,继续聚焦于统一头戴设备、有线XR眼镜和智能眼镜的跨设备开发。

谷歌进一步强调,将对各类设备形态采用更具描述性的命名:AI眼镜现在称为音频眼镜(Audio Glasses);而带显示屏的AI眼镜则统称为显示眼镜(Display Glasses)。相关变化已在谷歌开发者文档中体现。

谷歌发布Android XR SDK开发者预览版4,并更新设备命名规范

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允许你直接从喜爱的引擎中运行体验。

本文链接https://news.nweon.com/140375
转载须知:转载摘编需注明来源映维网并保留本文链接
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供
QQ交流群苹果Vision  |  Meta Quest  |  AR/VR开发者  |  映维粉丝读者
XR Dev Wechat Group/微信群

您可能还喜欢...

资讯