오늘은 헤드셋, 유선 XR 안경, 지능형 안경의 교차 기기 개발을 통합하는 데 중점을 둔 Android XR SDK 개발자 프리뷰 4를 출시하게 되어 기쁩니다. Google은 플랫폼을 직관적으로 유지하기 위해 폼 팩터에 더 설명적인 이름을 채택하고 있습니다. 이에 따라 AI 글라스는 이제 오디오 글라스로, 디스플레이 AI 글라스는 디스플레이 글라스로 변경되며, 이러한 변경사항은 오늘부터 문서에 반영됩니다.
이번 출시에는 XR 기기를 위한 멋진 환경을 구축하고, XR 헤드셋에서 더 깊은 몰입형 환경을 지원하며, 오디오 및 디스플레이 글라스에서 증강 환경을 만드는 경로를 간소화하는 데 도움이 되는 업데이트가 가득합니다. 또한 XR 런타임, Jetpack SceneCore, Jetpack XR용 ARCore를 비롯한 핵심 라이브러리가 곧 공식적으로 베타로 전환됩니다.
디스플레이 및 오디오 안경, XREAL의 Project Aura와 같은 차세대 기기에서 몰입형 및 증강 환경을 빌드할 수 있는 하드웨어와 리소스를 사전 체험할 수 있도록 Android XR 개발자 촉진 프로그램을 발표합니다. 자세히 알아보고 지금 바로 신청을 시작하세요.
오디오 및 디스플레이 글래스를 위한 증강 환경 빌드
증강 환경을 위한 라이브러리로 시작하는 개발자 프리뷰 4에서는 앱을 만들고 테스트하는 데 도움이 되는 새로운 API를 도입합니다.
Jetpack Projected: 기기 가용성 및 ProjectedTestRule API
Jetpack Projected 라이브러리는 휴대전화에서 사용자의 시야로 앱 환경을 연결하는 데 도움이 됩니다. 웨어 상태와 연결 신호를 표준 Android Lifecycle.State 값으로 통합하는 기기 사용 가능 여부 API가 추가되었습니다. 이를 통해 기기 착용 여부에 따라 애플리케이션 동작을 조정할 수 있습니다.
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 및 새로운 구성요소
디스플레이 글래스용 UI 라이브러리인 Jetpack Compose Glimmer에 광학 투과형 디스플레이의 가독성을 개선하기 위한 Google Sans Flex가 포함되었습니다. 또한 다음과 같은 여러 대화형 구성요소가 추가되었습니다.
XR 헤드셋 및 유선 XR 안경용 몰입형 환경 빌드
XR 헤드셋과 유선 XR 글라스를 위한 완전한 몰입형 환경을 구축하려는 경우 몇 가지 중요한 업데이트가 있습니다.
베타 전환 및 최신 아키텍처
XR 런타임, Jetpack SceneCore, Jetpack XR용 ARCore 인식 기능 (깊이 맵, 눈/손 추적, 히트 테스트, 공간 앵커)이 곧 베타로 전환되므로 Jetpack XR API가 간소화되었습니다. 최신 Kotlin 우선 아키텍처를 위해 기존 Guava 및 RxJava3 패키지가 삭제되었습니다.
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, )
XR용 Compose: 네이티브 glTF 지원
이제 SpatialGltfModel을 사용하여 XR용 Compose에서 직접 기본 glTF를 지원합니다. SpatiallGltfModelState와 함께 사용하여 glTF 모델의 nodes 및 animations에 액세스하거나 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)
Jetpack XR용 ARCore: 유선 XR 안경용 Geospatial API 미리보기
또한 Jetpack XR용 ARCore에서 유선 XR 안경용 Geospatial API의 초기 미리보기를 제공합니다. 이번 업데이트를 통해 87개 이상의 국가에서 실제 위치에 연결된 디지털 콘텐츠를 고정밀도로 고정할 수 있습니다.
ARCore의 시각적 위치 시스템 (VPS)을 Gemini Live API의 추론 및 오디오 기능과 결합하면 사용자의 위치와 자세를 모두 이해하는 상황 인식 환경을 만들 수 있습니다. 디지털 정보와 실제 환경을 원활하게 결합하여 주변 장소에 대한 실시간 오디오 설명을 제공하는 몰입형 AI 안내 도보 투어를 구축한다고 가정해 보세요.
지금 미래를 만들어 보세요
Android XR용 개발을 시작하기에 지금이 가장 좋은 시기입니다. Jetpack XR SDK가 곧 베타로 전환되고 강력한 새 도구를 사용할 수 있으므로 다음 각 영역을 살펴보고 앱의 환경을 XR에 맞게 준비하세요.
문서를 읽고, 샘플을 살펴보고, XR 실험을 확인하세요.
공식 Android 개발자 사이트에서 전체 기술 가이드, API 참조, 새 에뮬레이터 설정 안내를 확인하세요. 샘플과 실험을 통해 아이디어를 얻으세요. 이러한 API를 사용하여 몰입형 공간 레이아웃을 빌드하고, 3D 모델을 로드하고, 공간 오디오를 탐색하는 방법을 알아보세요.
게임 엔진의 새로운 기능 확인하기
Unreal Engine과 Godot을 공식적으로 지원하며, Unity와 Android XR 상호작용 프레임워크를 사용하여 Android XR 개발을 가속화하는 두 가지 새로운 도구를 출시했습니다. 또한 의견을 바탕으로 선호하는 엔진에서 직접 환경을 실행할 수 있는 Android XR 엔진 허브를 도입합니다.
Android XR 개발자 촉진 프로그램에 신청하세요.
최신 Android XR 하드웨어를 빌드할 기회를 놓치지 마세요. 지금 신청하여 오디오 및 디스플레이 안경 프로토타입, XREAL의 Project Aura 등 출시 전 하드웨어에 액세스할 기회를 잡으세요.
올해 말 더 많은 Android XR 기기가 출시될 예정이니, 개발자 여러분이 구축할 멋진 XR 환경을 기대하겠습니다.
io.google에서 이번 발표와 모든 Google I/O 2026 업데이트를 확인하세요.
계속 읽기
-
제품 소식
Google I/O '26에서는 Android 개발자를 위한 17가지 주요 발표가 진행됩니다. 여기에서는 에이전트 기반 생산성, UI 표준으로서의 Compose 우선, 확장되는 생태계를 위한 고성능 미디어 및 적응형 개발에 중점을 둡니다.
Matthew McCullough • 8분 읽기
-
제품 소식
Android 개발자는 앱 개발에 사용하는 에이전트, 도구, 명령줄 인터페이스 (CLI), LLM과 관련해 다양한 선택지를 보유하고 있습니다.
Simona Milanovic, Ben Trengrove • 읽는 데 5분 소요
-
제품 소식
Android Performance Analyzer (APA)는 Android 모바일 생태계를 위한 Android의 새로운 프로파일러 및 성능 분석 도구입니다. APA는 앱이나 게임을 더 빠르고 원활하게 실행해야 하는 Android 개발자를 위한 프로파일링 도구입니다.
Mayank Jain • 읽는 데 5분 소요
소식 받아보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요.