Jetpack XR용 ARCore
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2026년 3월 25일 | - | - | - | 1.0.0-alpha12 |
종속 항목 선언
Jetpack XR용 ARCore의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소 를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha12" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha12" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha12" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha12") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha12") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha12") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
버전 1.0
버전 1.0.0-alpha12
2026년 3월 25일
androidx.xr.arcore:arcore-*:1.0.0-alpha12이 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.
API 변경사항
Config.augmentedObjectCategories가 목록에서 세트로 변경되었습니다. (I25a64, b/487376359)androidx.xr.arcore.Eye및androidx.xr.arcore.Hand유형 (I42438, b/449032900)- 리소스 범위 지정을 위해 Android 컨텍스트를 전달할 수 있도록
Session.create오버로드를 추가했습니다. (I7d3fe, b/415805990, b/477386334) FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT를FakeRuntimeAnchor.anchorResourceLimit로 변경합니다. (I90841, b/431992235)- 향후 변경되거나 삭제될 수 있으므로
TiltGestureAPI를 실험용으로 만듭니다. 이 API를 사용하려면@ExperimentalGesturesApi(Ic9858)를 선택하세요. - 구성에서
AugmentedObject추적의 카테고리를 설정하는 기능을 추가했습니다. (I1f6e4, b/480220930)
버그 수정
PerceptionRuntimeFactory의 실제 위치로 META-INF/services/ 파일을 업데이트하여 Chrome의 빌드를 수정했습니다. (I7a801, b/481288291)
버전 1.0.0-alpha11
2026년 2월 25일
androidx.xr.arcore:arcore-*:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.
버전 1.0.0-alpha10
2026년 1월 28일
androidx.xr.arcore:arcore-*:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.
새로운 기능
- 전환 진행률과 함께 기기 기울기 (위/아래) 상태를 안정적으로 감지하기 위한 반응형
Flow를 제공하는TiltGestureAPI를 도입합니다. (Ic269f, b/448152779) - 이제 Jetpack XR용 ARCore에서 XR 런타임 로깅 메커니즘을 사용합니다. 자세한 내용은
androidx.xr.runtime.Log를 참고하세요. (l52735, b/448697662)
API 변경사항
- 이제 OpenXR 지원 기기에서
Geospatial.createPoseFromGeospatialPose가 작동합니다. (l362c6)
버전 1.0.0-alpha09
2025년 12월 3일
androidx.xr.arcore:arcore-*:1.0.0-alpha09이 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.
버전 1.0.0-alpha08
2025년 11월 19일
androidx.xr.arcore:arcore-*:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.
새로운 기능
- 이제 Jetpack XR용
ARCore에서 Google Play AR 서비스를 사용할 수 있는 기기를 지원합니다. - VPS 사용 가능 여부 및 포즈 변환을 위한 지리공간 API를 추가했습니다. (I144dc)
버전 1.0.0-alpha07
2025년 10월 22일
androidx.xr.arcore:arcore-*:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.
버그 수정
:xr:arcore:arcore-openxr이:xr:arcore:arcore에 구현 종속 항목으로 추가되었습니다. (I47315, b/446999229)
버전 1.0.0-alpha06
2025년 9월 24일
androidx.xr.arcore:arcore-*:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.
API 변경사항
ARCore테스트 지원이xr:arcore:arcore-testing모듈로 이전되었습니다. (I25469)- 렌더링 목적으로 애플리케이션이 기기의 포즈와 디스플레이 구성을 가져올 수 있도록
ArDevice및RenderViewpoint를 추가합니다. (Ib7e3f) HandJointTypeenum의 이름을HAND_JOINT_TYPE_프리픽스로 바꿉니다. (I3f7cd)HandJointType이xr:runtime:runtime에서xr:arcore:arcore로 이동되었습니다. (Iadb9c, b/409058039)Hand.State에서 이제 성능 중심 애플리케이션에 쉽게 액세스할 수 있는 형식으로 관절 포즈가 포함된java.nio.FloatBuffer를 노출합니다. (I55e27)
버전 1.0.0-alpha05
2025년 7월 30일
androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05, androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
새로운 기능
- 개발자가 손 측면 정보를 가져올 수 있도록
getPrimaryHandSide를 추가합니다. (I270bd) - 지리공간 확인 VPS 사용 가능 여부 API를 추가합니다. (I58573)
checkVpsAvailability용 ARCore API를 추가합니다. (Idbded)- Java 개발자가 사용할 수 있도록
stateFlowable확장 함수가:xr:arcore:arcore-rxjava3에 추가되었습니다. (I083aa, b/427247794)
API 변경사항
- Config
*Modevals의 이름이 동작을 반영하도록 변경되었습니다. (I6d247, b/414648065) - 기본 ARCore 아티팩트 (xr:arcore:arcore)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 호환되는 API에 액세스하기 위해
xr:arcore:arcore-rxjava3라이브러리에 종속될 수 있습니다. (Ia525e, b/422794329) - 기본 ARCore 아티팩트 (
xr:scenecore:scenecore)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 호환되는 API에 액세스하기 위해xr:arcore:arcore-guava라이브러리에 종속될 수 있습니다. (Iffcb4, b/422773524) - Java 개발자가 사용할 수 있도록
Anchor.persistAsync()가AnchorGuava에 추가되었습니다. (I4af1c, b/425984631) - Java 개발자가 사용할 수 있도록
Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)가EarthGuava에 추가되었습니다. (I66357, b/425992992) - Java 개발자는
GltfModel.kt에서GltfModel.createAsync의 확장 함수를 사용합니다.GltfModel의 비동기 함수가 삭제됩니다. (I0af60) - 이제 이 라이브러리에서 유형 사용인 JSpecify null 허용 여부 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 적용해야 합니다.
-Xjspecify-annotations=strict(Kotlin 컴파일러 버전 2.1.0부터 기본값임) (Ia8420, b/326456246) - Java 개발자가 사용할 수 있도록
subscribeAsFlowable확장 함수가:xr:arcore:arcore-rxjava3에 추가되었습니다. (Id3e49, b/427277298)
버전 1.0.0-alpha04
2025년 5월 7일
androidx.xr.arcore:arcore:1.0.0-alpha04이 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
API 변경사항
- Kotlin 2.0으로 출시된 프로젝트를 사용하려면 KGP 2.0.0 이상이 필요합니다. (Idb6b5)
TrackingState및HandJointType이 ARCore에서 런타임으로 이동되었습니다.Hand.State.isActive (boolean)가Hand.State.trackingState (androidx.xr.runtime.TrackingState)로 변경되었습니다.- UUID가 잘못된 경우
Anchor.load가Anchor.AnchorLoadInvalidUuid를 반환합니다.
버전 1.0.0-alpha03
2025년 2월 26일
androidx.xr.arcore:arcore:1.0.0-alpha03이 지난 알파 이후 눈에 띄는 변경사항 없이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
버전 1.0.0-alpha02
2025년 2월 12일
androidx.xr.arcore:arcore:1.0.0-alpha02이 출시되었습니다. 버전 1.0.0-alpha02에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
- 손 추적 지원이 추가되었습니다.
Hand.left및Hand.right를 사용하여 추적 정보에 액세스합니다. - 이제 앵커를 생성하는 API (
Anchor.create,Anchor.load,Plane.createAnchor)가 모두AnchorCreateResult를 반환하고AnchorCreateResourcesExhausted를 올바르게 구현합니다.
버그 수정
Anchor.detach가 더 이상 세션 업데이트 스레드와의 경합 상태로 인해 치명적인 비정상 종료를 일으키지 않습니다.- 에뮬레이터에서 실행할 때
Anchor.create가 더 안정적입니다.
버전 1.0.0-alpha01
2024년 12월 12일
androidx.xr.arcore:arcore-* 1.0.0-alpha01이 출시되었습니다.
초기 출시의 기능
기존 ARCore 라이브러리에서 영감을 받은 Jetpack XR용 ARCore 라이브러리는 디지털 콘텐츠를 실제 세계와 혼합하는 기능을 제공합니다. 이 라이브러리에는 모션 추적, 영구 앵커, 적중 테스트, 의미론적 라벨링 (예: 바닥, 벽, 테이블 상판)을 통한 평면 식별이 포함됩니다. 개발자 가이드 를 보고 Jetpack XR용 ARCore 사용에 관해 자세히 알아보세요.
Session: Jetpack XR용 ARCore는 Jetpack XR 런타임을 내부적으로 사용하여 기능을 지원합니다. 세션을 사용하여 대부분의 Jetpack XR용 ARCore API와 상호작용하므로 문서를 살펴보세요.Plane: 평면을 사용하여 주변 세계를 이해합니다. 각 평면에는Label평면을 의미론적으로 설명하는 가 있습니다.subscribe를 사용하여 감지된 최신 평면에 관한 알림을 받거나state를 사용하여 특정 평면의 변경사항에 관한 알림을 받을 수 있습니다.Anchor: 가상 객체와 실제 위치 간의 링크입니다. 앵커는 공간의 특정 위치 (create사용) 또는Trackable(createAnchor사용)에 연결할 수 있습니다.앵커는 세션 간에 재사용할 수 있습니다.
persist를 사용하여 앵커를 저장하고,getPersistedAnchorUuids를 사용하여 앵커를 열거하고,load를 사용하여 앵커를 가져올 수 있습니다. 더 이상 사용하지 않는 앵커는unpersist해야 합니다.앵커는 Jetpack XR용 ARCore와 Jetpack SceneCore 간에 상호 운용됩니다. 앵커를 사용하여
AnchorEntity를 만들거나 기존 AnchorEntity가 있는 경우getAnchor를 사용하여 지원 앵커를 가져올 수 있습니다.hitTest를 사용하여 자연스러운 사용자 상호작용을 제공합니다. hitTest는Ray를 사용하여 교차하는 콘텐츠를 확인하고 해당 위치에서Anchor를 만듭니다.InputEvent에서 hitTest를 실행하는 것이 좋습니다.
알려진 문제
unpersist호출과getPersistedAnchorUuids에서 반환된 결과에서 UUID가 삭제되기까지 지연이 있을 수 있습니다.create는 시스템에 새 앵커를 반환할 리소스가 충분한지 확인하지 않습니다. 앵커를 과도하게 만들면 비정상 종료가 발생할 수 있습니다.이전에 영구 저장되었다가 영구 저장되지 않은 앵커를 영구 저장하는 것은 현재 지원되지 않습니다.
에뮬레이터에서의 사용은 지원되지만 실제 기기에서 실행할 때만큼 동작이 안정적이지 않을 수 있습니다. 특히
create호출이 네이티브 코드 오류로 실패하고 활동이 즉시 종료될 수 있습니다.특정 상황에서는 '앵커가 영구 저장되지 않았습니다'라는 메시지와 함께
persist를 호출할 때RuntimeException이 잘못 발생할 수 있습니다. 이러한 상황에서도 함수는 계속 성공하고 앵커는 영구 저장됩니다. 해결 방법으로try블록으로persist호출을 래핑하는 것이 좋습니다.