XR 런타임

네이티브 런타임으로 맞춤 AR 또는 3D 세션을 시작하세요.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2025년 7월 30일 - - - 1.0.0-alpha05

종속 항목 선언

XR 런타임의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 참고하세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.xr.runtime:runtime:1.0.0-alpha05"

    // Use in environments that do not support OpenXR
    testImplementation "androidx.xr.runtime:runtime-testing:1.0.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.xr.runtime:runtime:1.0.0-alpha05")

    // Use in environments that do not support OpenXR
    testImplementation("androidx.xr.runtime:runtime-testing:1.0.0-alpha05")
}

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.0

버전 1.0.0-alpha05

2025년 7월 30일

androidx.xr.runtime:runtime-*:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • HandJointTypeTrackingState 추가 (I55880, b/334645808)
  • 구성 구현을 공개로 설정 (I95860, b/334645808)
  • 새로운 SessionCreateResultSessionConfigureResult 유형이 도입되었습니다. (Icb8cb, b/334645808)
  • 최소 및 최대 모서리 점으로 정의된 3D 공간의 축 정렬 경계 상자를 나타내는 새 BoundingBox 클래스를 추가합니다. (Ic68c5, b/423073468)

API 변경사항

  • androidx.xr.scenecore.PixelDimensions의 이름을 androidx.xr.runtime.math.IntSize2d로 변경하고 이동했습니다. androidx.xr.scenecore.Dimensions의 이름을 androidx.xr.runtime.math.FloatSize3d로 변경하고 이동했습니다. androidx.xr.scenecore.PlaneType의 이름을 androidx.xr.scenecore.PlaneOrientation로 바꿨습니다. androidx.xr.scenecore.PlaneSemantic의 이름을 androidx.xr.scenecore.PlaneSemanticType로 바꿨습니다. (Ifd405, b/416456228)
  • androidx.xr.runtime.FoV 클래스를 삭제했습니다. 대신 androidx.xr.runtime.FieldOfView를 사용합니다. (I9ae27)
  • 세션에 연결할 LifecycleOwner을 제공할 수 있는 Session.create의 추가 오버로드를 추가했습니다. 리소스 소유권을 위해 활동을 제공해야 하며 LifecycleOwner은 활동 내에서 범위가 지정되어야 합니다. (I1690b)
  • FakeRuntimeAnchor.anchorsCreated의 이름을 anchorsCreatedCount로 바꿨습니다. (I96df9, b/424441218)
  • *Mode 값의 이름이 동작을 반영하도록 변경되었습니다. (I6d247, b/414648065)
  • Kotlin 2.0으로 출시된 프로젝트는 KGP 2.0.0 이상을 사용하여 소비해야 합니다. (Idb6b5, b/344563182)
  • 매니페스트 문자열과 관련된 API가 :xr:runtime:runtime에서 :xr:runtime:runtime-manifest로 이동되었습니다. 패키지 이름이 androidx.xr.runtime에서 androidx.xr.runtime.manifest으로 변경되었습니다. (I610ad, b/418800249)
  • Session.resume(), Session.pause(), Session.destroy()이 API 노출 영역에서 삭제되었습니다. 세션이 더 이상 LifecycleOwner이 아닙니다. 이제 세션의 수명 주기가 Session.create()에 전달된 활동의 수명 주기에 연결됩니다. (I28a03)
  • 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 강제해야 합니다. -Xjspecify-annotations=strict (Kotlin 컴파일러 버전 2.1.0부터 기본값임) (Ia8420, b/326456246)
  • 기본 런타임 아티팩트 (:xr:runtime:runtime)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 :xr:runtime:runtime-guava를 사용하여 호환되는 API에 액세스할 수 있습니다. (I05d4a, b/426639315)
  • 기본 런타임 아티팩트 (:xr:runtime:runtime)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 xr:runtime:runtime-rxjava3 라이브러리를 사용하여 호환되는 API에 액세스할 수 있습니다. (I64122, b/426639775)
  • 코루틴을 :xr:runtime:runtime-guava로, 흐름을 :xr:runtime:runtime-rxjava3로 이동 (I60ae9)
  • 이제 Session.createSession.configure은 충분한 권한이 부여되지 않은 경우 SessionCreatePermissionsNotGranted 또는 SessionConfigurePermissionsNotGranted를 반환하는 대신 SecurityException를 발생시킵니다. (I7c488, b/430651879)

버전 1.0.0-alpha04

2025년 5월 7일

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04androidx.xr.runtime:runtime-testing:1.0.0-alpha04이 출시되었습니다. 버전 1.0.0-alpha04에는 이러한 커밋이 포함되어 있습니다.

새로운 기능

  • 이제 세션이 기존 Android 수명 주기 패러다임과의 상호 운용성을 높이기 위해 androidx.lifecycle.LifecycleOwner를 구현합니다.
  • Android XR의 매니페스트 문자열은 여기에 지정되고 문서화되어 있습니다.
  • 사용자의 시야 내 또는 외부로 장면 콘텐츠가 이동하는 시점을 모니터링하기 위해 공간 가시성 콜백 확장 프로그램 메서드가 추가되었습니다.
  • JxrPlatformAdapter (및 모든 관련 클래스)의 스텁 버전을 추가했습니다.
  • 세션은 SceneCore의 세션 대신 SceneCore 및 런타임 모두에서 사용됩니다.
  • ActivityPose.hitTest가 추가되어 가상 콘텐츠에 대한 hitTest가 사용 설정되었습니다.
  • 이제 컴파일 시간에 여러 런타임 구현을 지정할 수 있습니다. 현재 기기의 기능 세트에 따라 실행 시간에 하나만 로드됩니다.
  • 클라이언트가 포인터에 렌더링된 아이콘을 지정하거나 아이콘을 사용 중지할 수 있는 새로운 구성요소 유형 SpatialPointerComponent이 추가되었습니다. 이 구성요소는 현재 PanelEntity 인스턴스에만 연결할 수 있습니다.

API 변경사항

  • 구성 구현을 공개로 설정 (I95860)
  • HandJointTypeTrackingState 추가 (I55880)
  • Kotlin 2.0으로 출시된 프로젝트를 사용하려면 KGP 2.0.0 이상이 필요합니다 (Idb6b5).
  • Hand.isActive (boolean)Hand.trackingState로 변경되었습니다. 이에 따라 OpenXR 구현이 수정되었습니다.
  • Session.configureandroid.permission.SCENE_UNDERSTANDING 권한 요구사항이 android.permission.SCENE_UNDERSTANDING_COARSE로 변경되었습니다.
  • LifecycleManager.configure가 구현되었으며 이제 구성 가능한 각 런타임 기능의 속성이 포함된 Config 객체가 전달됩니다.
  • 이제 Session.configureConfig와 함께 호출하여 사용 가능한 런타임 기능을 구성할 수 있습니다.
  • 이제 Session.createCoroutineDispatcher 대신 CoroutineContext 전달을 지원합니다.
  • Session.create는 Jetpack XR 및/또는 SceneCoreARCore 로드를 지원합니다. 하나 이상 제공해야 합니다 (테스트 버전 사용 가능).
  • 잘못된 UUID가 Anchor.loadAnchor.unpersist에 전달되면 FakePerceptionManager에서 AnchorInvalidUuidException이 발생합니다.
  • CoreState이 더 이상 데이터 클래스가 아닙니다.

버그 수정

  • 고정 런타임 Proguard 구성

버전 1.0.0-alpha03

2025년 2월 26일

androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03, androidx.xr.runtime:runtime-testing:1.0.0-alpha03은 마지막 알파 이후 변경사항 없이 출시되었습니다. 버전 1.0.0-alpha03에는 이 커밋이 포함되어 있습니다.

버전 1.0.0-alpha02

2025년 2월 12일

androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02androidx.xr.runtime:runtime-testing:1.0.0-alpha02이 출시되었습니다. 버전 1.0.0-alpha02에는 이 커밋이 포함되어 있습니다.

브레이킹 및 동작 변경사항

  • 이제 앵커를 반환하는 OpenXR 런타임 함수는 OpenXR 리소스 한도에 도달했음을 알리는 오류 코드가 발생하면 AnchorResourcesExhaustedException를 발생시킵니다.
  • 이제 Session.createSession.resumeandroid.permission.HAND_TRACKING 권한이 필요합니다.

새로운 기능

  • 손 추적 지원이 추가되었습니다.

버그 수정

  • 에뮬레이터에서 실행할 때 앵커 생성이 더 안정적임

버전 1.0.0-alpha01

2024년 12월 12일

androidx.xr.runtime:runtime-* 1.0.0-alpha01이 출시되었습니다.

초기 출시의 기능

Jetpack XR 런타임의 초기 출시 이 라이브러리에는 Jetpack XR 라이브러리 모음의 기본 기능이 포함되어 있습니다. 여기에는 기능 검색, 수명 주기 관리, 구성 등이 포함됩니다. 런타임 라이브러리는 실행 플랫폼에 따라 다양한 변형 (예: runtime-openxr 또는 runtime-testing)을 제공합니다. 또한 이 라이브러리는 전체 Jetpack XR API 노출 영역에서 사용되는 Vector3Matrix4와 같은 기본 수학 추상화를 제공합니다.

  • Session: 처리 실행 여부와 전체 구성을 결정하는 등 XR 시스템을 세부적으로 제어할 수 있습니다. 또한 기본 시스템 기능을 잠금 해제하기 위해 다른 모든 API에서 사용할 핸들입니다.

  • Pose: 위치와 방향이 연결된 임의의 좌표 시스템의 위치입니다. 이 클래스를 사용하여 Jetpack XR 및 Jetpack SceneCore용 ARCore와 객체의 위치를 통신합니다.

알려진 문제

  • configure은 현재 아무 작업도 하지 않습니다. 향후 출시에서는 Session의 동작을 제어하는 데 사용할 수 있는 새로운 설정이 추가될 예정입니다.