XR 런타임

기본 런타임으로 맞춤 AR 또는 3D 세션을 시작하세요.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2026년 3월 25일 - - - 1.0.0-alpha12

종속 항목 선언

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

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

Groovy

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

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.runtime:runtime-guava:1.0.0-alpha12"
    implementation "androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha12"

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

Kotlin

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

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.runtime:runtime-guava:1.0.0-alpha12")
    implementation("androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha12")

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

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

의견

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

새로운 문제 제출하기

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

버전 1.0

버전 1.0.0-alpha12

2026년 3월 25일

androidx.xr.runtime:runtime-*:1.0.0-alpha12이 출시되었습니다. 버전 1.0.0-alpha12에 포함된 커밋을 확인하세요.

API 변경사항

  • Config.augmentedObjectCategories를 목록에서 세트로 변경했습니다. (I25a64, b/487376359)
  • Session.create에서 unscaledGravityAlignedActivitySpace 플래그를 삭제했습니다. 이제 ActivitySpace는 항상 크기가 조정되지 않고 중력에 맞춰 정렬됩니다. (If6f11, b/458173423)
  • 리소스 범위 지정을 위해 Android 컨텍스트를 전달할 수 있도록 Session.create 오버로드를 추가했습니다. (I7d3fe, b/415805990, b/477386334)
  • FloatSize2d.to3d, Matrix3.copy, Matrix4.copyJvmOverloads를 추가했습니다. (I69586, b/481371562)
  • Config에서 AugmentedObject 추적의 카테고리를 설정하는 기능을 추가했습니다. (I1f6e4, b/480220930)
  • xr:runtime:runtime-interfaces 모듈을 추가했습니다. (I52ac6, b/461561664)

버전 1.0.0-alpha11

2026년 2월 25일

androidx.xr.runtime:runtime-*:1.0.0-alpha11이 출시되었습니다. 버전 1.0.0-alpha11에 포함된 커밋을 확인하세요.

API 변경사항

  • ConfigMode 인터페이스를 내부 사용으로 제한했습니다. (Ibfb87)
  • androidx.xr.runtime.Config.GeospatialMode를 패키지 수준으로 이동했습니다. (Ibe682)
  • androidx.xr.runtime.Config.FaceTrackingMode를 패키지 수준으로 이동했습니다. (Iac501)
  • androidx.xr.runtime.Config.AnchorPersistenceMode를 패키지 수준으로 이동했습니다. (I0360f)
  • androidx.xr.runtime.Config.DepthEstimationMode를 패키지 수준으로 이동했습니다. (I7e3e9)
  • androidx.xr.runtime.Config.DeviceTrackingMode를 패키지 수준으로 이동했습니다. (I3aacd)
  • androidx.xr.runtime.Config.HandTrackingMode를 패키지 수준으로 이동했습니다. (I658f3)
  • androidx.xr.runtime.Config.PlaneTrackingMode를 패키지 수준으로 이동했습니다. (Ia251b)
  • androidx.xr.runtime.XrDevice.DisplayBlendMode를 패키지 수준으로 이동했습니다. (I6f333)
  • 컨텍스트, 세션, CoroutineContext를 사용하여 XrDevice를 만드는 팩토리 메서드를 추가했습니다. (I139c5)
  • 플랫폼에서 사용할 수 있는 Android XR의 런타임 버전을 쿼리하는 데 도움이 되는 SpatialApiVersionHelper를 추가했습니다. (I7c53c)
  • xr:runtime:runtime-openxr 모듈을 추가했습니다. (Ib42ea)

버전 1.0.0-alpha10

2026년 1월 28일

androidx.xr.runtime:runtime-*:1.0.0-alpha10이 출시되었습니다. 버전 1.0.0-alpha10에 포함된 커밋을 확인하세요.

API 변경사항

  • ConfigMode.HeadTrackingModeConfigMode.DeviceTrackingMode로 대체되었습니다. (le273e, b/467150206)
  • Quaternion의 toNormalized, times(float), div(float) 메서드를 삭제했습니다. 이러한 메서드는 모든 Quaternion이 생성 시 정규화되고 클래스가 변경 불가능하다는 점을 고려할 때 중복됩니다. (l558fc, b/460210457)

버그 수정

  • 애플리케이션의 기본 스레드에서 세션을 만들지 않는 방법을 보여주는 Session.create에 문서를 추가했습니다. (le5554, b/463687170)
  • 애플리케이션이 NaN 값으로 BoundingBox를 만들지 못하도록 했습니다. (l58c14, b/464025895)

버전 1.0.0-alpha09

2025년 12월 3일

androidx.xr.runtime:runtime-*:1.0.0-alpha09이 출시되었습니다. 버전 1.0.0-alpha09에 포함된 커밋을 확인하세요.

버전 1.0.0-alpha08

2025년 11월 19일

androidx.xr.runtime:runtime-*:1.0.0-alpha08이 출시되었습니다. 버전 1.0.0-alpha08에 포함된 커밋을 확인하세요.

새로운 기능

  • 기기 기능에 관한 정보를 제공하기 위해 XrDevice를 추가했습니다. (Ic9d1f)
  • 세션 기능을 쿼리하기 위한 새로운 ConfigMode.isSupported API를 추가했습니다. (Iff7af)
  • XrDisplay.BlendMode API를 추가했습니다. (I484e4)

API 변경사항

  • [XrDevice.getPreferredBlendMode] 의 이름을 [XrDevice.getPreferredDisplayBlendMode]로 변경했습니다. (I7e48f)

버전 1.0.0-alpha07

2025년 10월 22일

androidx.xr.runtime:runtime-*:1.0.0-alpha07이 출시되었습니다. 버전 1.0.0-alpha07에 포함된 커밋을 확인하세요.

API 변경사항

  • SessionConfigureConfigureNotSupported를 삭제하고 UnsupportedOperationException으로 대체합니다. (I7680f)

버전 1.0.0-alpha06

2025년 9월 24일

androidx.xr.runtime:runtime-*:1.0.0-alpha06이 출시되었습니다. 버전 1.0.0-alpha06에 포함된 커밋을 확인하세요.

API 변경사항

  • HandJointTypexr:runtime:runtime에서 xr:arcore:arcore로 이동되었습니다. (Iadb9c, b/409058039)
  • Vector2, Vector3, Vector4componentWiseMultiplication의 times 연산자를 확장하고 다른 수학 라이브러리와 일관성을 유지하기 위해 연산자 기호를 삭제합니다. 또한 Vector.scale(otherVector.inverse())를 사용하는 대신 벡터 클래스에서 componentWiseDivision을 삭제합니다. (I8e1f6, b/399146447)
  • 크기가 1인 행렬을 반환하도록 [unscaled] 를 추가합니다. (I6381d, b/434928658)
  • Coroutines.ktSuspendtoFutureAdapter로 대체되었으므로 :xr:runtime:runtime-guava가 삭제됩니다. (I0cd3c, b/406597902)

버전 1.0.0-alpha05

2025년 7월 30일

androidx.xr.runtime:runtime-*:1.0.0-alpha05이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.

새로운 기능

  • HandJointTypeTrackingState를 추가합니다. (I55880, b/334645808)
  • Config 구현을 공개합니다. (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)
  • Config *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 null 허용 여부 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 적용해야 합니다. -Xjspecify-annotations=strict (Kotlin 컴파일러 버전 2.1.0부터 기본값) (Ia8420, b/326456246)
  • 기본 런타임 아티팩트 (:xr:runtime:runtime)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 호환되는 API에 액세스하기 위해 :xr:runtime:runtime-guava에 종속될 수 있습니다. (I05d4a, b/426639315)
  • 기본 런타임 아티팩트 (:xr:runtime:runtime)에는 Kotlin 스타일 비동기 API만 포함됩니다. Java 개발자는 호환되는 API에 액세스하기 위해 xr:runtime:runtime-rxjava3 라이브러리에 종속될 수 있습니다. (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-alpha04, androidx.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 변경사항

  • Config 구현을 공개합니다. (I95860)
  • HandJointTypeTrackingState를 추가합니다. (I55880)
  • Kotlin 2.0으로 출시된 프로젝트는 KGP 2.0.0 이상을 사용해야 합니다. Idb6b5
  • Hand.isActive (boolean)Hand.trackingState로 변경되었습니다. 이에 따라 OpenXR 구현이 수정되었습니다.
  • android.permission.SCENE_UNDERSTANDING 권한 요구사항이 Session.configure에서 android.permission.SCENE_UNDERSTANDING_COARSE로 변경되었습니다.
  • LifecycleManager.configure가 구현되었으며 이제 구성 가능한 각 런타임 기능의 속성을 포함하는 Config 객체를 전달합니다.
  • 이제 사용 가능한 런타임 기능을 구성하기 위해 ConfigSession.configure를 호출할 수 있습니다.
  • 이제 Session.createCoroutineDispatcher 대신 CoroutineContext 전달을 지원합니다.
  • Session.create는 Jetpack XR 및/또는 SceneCoreARCore 로드를 지원합니다. 최소 하나를 제공해야 합니다 (테스트 버전 사용 가능).
  • 잘못된 UUID가 Anchor.loadAnchor.unpersist에 전달되면 FakePerceptionManagerAnchorInvalidUuidException을 발생시킵니다.
  • 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-alpha02, androidx.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는 현재 no-op입니다. 향후 출시에서는 Session의 동작을 제어하는 데 사용할 수 있는 새로운 설정이 추가될 예정입니다.