XR 런타임
최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
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에는 이 커밋이 포함되어 있습니다.
새로운 기능
HandJointType
및TrackingState
추가 (I55880, b/334645808)- 구성 구현을 공개로 설정 (I95860, b/334645808)
- 새로운
SessionCreateResult
및SessionConfigureResult
유형이 도입되었습니다. (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.create
및Session.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 변경사항
- 구성 구현을 공개로 설정 (I95860)
HandJointType
및TrackingState
추가 (I55880)- Kotlin 2.0으로 출시된 프로젝트를 사용하려면 KGP 2.0.0 이상이 필요합니다 (Idb6b5).
Hand.isActive (boolean)
가Hand.trackingState
로 변경되었습니다. 이에 따라OpenXR
구현이 수정되었습니다.Session.configure
의android.permission.SCENE_UNDERSTANDING
권한 요구사항이android.permission.SCENE_UNDERSTANDING_COARSE
로 변경되었습니다.LifecycleManager.configure
가 구현되었으며 이제 구성 가능한 각 런타임 기능의 속성이 포함된Config
객체가 전달됩니다.- 이제
Session.configure
를Config
와 함께 호출하여 사용 가능한 런타임 기능을 구성할 수 있습니다. - 이제
Session.create
는CoroutineDispatcher
대신CoroutineContext
전달을 지원합니다. Session.create
는 Jetpack XR 및/또는SceneCore
용ARCore
로드를 지원합니다. 하나 이상 제공해야 합니다 (테스트 버전 사용 가능).- 잘못된 UUID가
Anchor.load
및Anchor.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-alpha02
및 androidx.xr.runtime:runtime-testing:1.0.0-alpha02
이 출시되었습니다. 버전 1.0.0-alpha02에는 이 커밋이 포함되어 있습니다.
브레이킹 및 동작 변경사항
- 이제 앵커를 반환하는
OpenXR
런타임 함수는OpenXR
리소스 한도에 도달했음을 알리는 오류 코드가 발생하면AnchorResourcesExhaustedException
를 발생시킵니다. - 이제
Session.create
및Session.resume
에android.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 노출 영역에서 사용되는 Vector3
및 Matrix4
와 같은 기본 수학 추상화를 제공합니다.
Session
: 처리 실행 여부와 전체 구성을 결정하는 등 XR 시스템을 세부적으로 제어할 수 있습니다. 또한 기본 시스템 기능을 잠금 해제하기 위해 다른 모든 API에서 사용할 핸들입니다.Pose
: 위치와 방향이 연결된 임의의 좌표 시스템의 위치입니다. 이 클래스를 사용하여 Jetpack XR 및 Jetpack SceneCore용 ARCore와 객체의 위치를 통신합니다.
알려진 문제