Runtime XR

Mulai sesi AR atau 3D kustom Anda dengan runtime native kami.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
30 Juli 2025 - - - 1.0.0-alpha05

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada runtime XR, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

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")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.0

Versi 1.0.0-alpha05

30 Juli 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Fitur Baru

  • Menambahkan HandJointType dan TrackingState. (I55880, b/334645808)
  • Menjadikan implementasi Config publik. (I95860, b/334645808)
  • Memperkenalkan jenis SessionCreateResult dan SessionConfigureResult baru. (Icb8cb, b/334645808)
  • Tambahkan class BoundingBox baru yang merepresentasikan kotak pembatas yang sejajar dengan sumbu dalam ruang 3D, yang ditentukan oleh titik sudut minimum dan maksimumnya. (Ic68c5, b/423073468)

Perubahan API

  • Mengganti nama dan memindahkan androidx.xr.scenecore.PixelDimensions ke androidx.xr.runtime.math.IntSize2d. Mengganti nama dan memindahkan androidx.xr.scenecore.Dimensions ke androidx.xr.runtime.math.FloatSize3d. Mengganti nama androidx.xr.scenecore.PlaneType menjadi androidx.xr.scenecore.PlaneOrientation. Mengganti nama androidx.xr.scenecore.PlaneSemantic menjadi androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228)
  • Menghapus class androidx.xr.runtime.FoV. Sebagai gantinya, gunakan androidx.xr.runtime.FieldOfView. (I9ae27)
  • Menambahkan overload tambahan untuk Session.create yang dapat memberikan LifecycleOwner untuk dilampirkan ke Sesi. Perhatikan bahwa Aktivitas masih perlu disediakan untuk kepemilikan resource dan LifecycleOwner harus dicakup dalam Aktivitas. (I1690b)
  • Mengganti nama FakeRuntimeAnchor.anchorsCreated menjadi anchorsCreatedCount (I96df9, b/424441218)
  • Nilai Config *Mode telah diganti namanya untuk mencerminkan perilakunya. (I6d247, b/414648065)
  • Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan (Idb6b5, b/344563182)
  • API yang terkait dengan string manifes telah dipindahkan dari :xr:runtime:runtime ke :xr:runtime:runtime-manifest. Nama paket telah berubah dari androidx.xr.runtime menjadi androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Session.resume(), Session.pause(), dan Session.destroy() telah dihapus dari platform API. Sesi bukan lagi LifecycleOwner. Siklus proses Sesi kini akan dilampirkan ke siklus proses Aktivitas yang diteruskan di Session.create(). (I28a03)
  • Library ini kini menggunakan anotasi nullability JSpecify, yang merupakan penggunaan jenis. Developer Kotlin harus menggunakan argumen compiler berikut untuk menerapkan penggunaan yang benar: -Xjspecify-annotations=strict (ini adalah setelan default mulai dari compiler Kotlin versi 2.1.0) (Ia8420, b/326456246)
  • Artefak Runtime utama (:xr:runtime:runtime) hanya akan berisi API asinkron gaya Kolin. Developer Java dapat mengandalkan :xr:runtime:runtime-guava untuk mengakses API yang kompatibel. (I05d4a, b/426639315)
  • Artefak Runtime utama (:xr:runtime:runtime) hanya akan berisi API asinkron gaya Kotlin. Developer Java dapat mengandalkan library xr:runtime:runtime-rxjava3 untuk mengakses API yang kompatibel. (I64122, b/426639775)
  • Pindahkan Coroutine ke :xr:runtime:runtime-guava dan Flow ke :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create dan Session.configure kini menampilkan SecurityException jika izin yang memadai belum diberikan, bukan menampilkan SessionCreatePermissionsNotGranted atau SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Versi 1.0.0-alpha04

7 Mei 2025

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04, dan androidx.xr.runtime:runtime-testing:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.

Fitur Baru

  • Session kini menerapkan androidx.lifecycle.LifecycleOwner untuk interoperabilitas yang lebih baik dengan paradigma siklus proses Android yang ada.
  • String manifes untuk Android XR ditentukan dan didokumentasikan di sini.
  • Metode ekstensi Spatial Visibility Callback ditambahkan untuk memantau saat konten adegan bergerak di dalam atau di luar bidang pandang pengguna.
  • Menambahkan versi stub JxrPlatformAdapter (dan semua class terkaitnya).
  • Sesi akan digunakan di SceneCore dan Runtime, bukan Sesi di SceneCore.
  • ActivityPose.hitTest telah ditambahkan, sehingga memungkinkan hitTest terhadap konten virtual.
  • Menentukan beberapa implementasi Runtime pada waktu kompilasi kini didukung. Hanya satu yang akan dimuat pada waktu eksekusi berdasarkan set fitur perangkat saat ini.
  • Menambahkan jenis Komponen baru SpatialPointerComponent, yang memungkinkan klien menentukan ikon yang dirender untuk penunjuk, atau menonaktifkan ikon. Saat ini, Komponen ini hanya dapat dilampirkan ke instance PanelEntity.

Perubahan API

  • Menjadikan implementasi Config publik. (I95860)
  • Menambahkan HandJointType dan TrackingState. (I55880)
  • Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan (Idb6b5)
  • Hand.isActive (boolean) telah diganti menjadi Hand.trackingState. Implementasi OpenXR telah diubah sebagaimana mestinya.
  • Persyaratan izin android.permission.SCENE_UNDERSTANDING di Session.configure telah diubah menjadi android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure diimplementasikan dan kini meneruskan objek Config yang berisi properti untuk setiap fitur runtime yang dapat dikonfigurasi.
  • Session.configure kini dapat dipanggil dengan Config untuk mengonfigurasi fitur runtime yang tersedia.
  • Session.create kini mendukung penerusan CoroutineContext, bukan CoroutineDispatcher.
  • Session.create mendukung pemuatan ARCore untuk Jetpack XR dan/atau SceneCore. Setidaknya satu harus diberikan (tersedia versi pengujian).
  • FakePerceptionManager menampilkan AnchorInvalidUuidException saat UUID yang tidak valid diteruskan ke Anchor.load dan Anchor.unpersist.
  • CoreState bukan lagi class data.

Perbaikan Bug

  • Konfigurasi proguard Runtime tetap.

Versi 1.0.0-alpha03

26 Februari 2025

androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03, dan androidx.xr.runtime:runtime-testing:1.0.0-alpha03 dirilis tanpa perubahan penting sejak versi alfa terakhir. Versi 1.0.0-alpha03 berisi commit ini.

Versi 1.0.0-alpha02

12 Februari 2025

androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02, dan androidx.xr.runtime:runtime-testing:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Perubahan yang dapat menyebabkan gangguan & perubahan perilaku

  • Fungsi runtime OpenXR yang menampilkan Anchor kini akan memunculkan AnchorResourcesExhaustedException jika menemukan kode error yang memberi tahu bahwa batas resource OpenXR telah tercapai.
  • Izin android.permission.HAND_TRACKING kini diperlukan untuk Session.create dan Session.resume.

Fitur baru

  • Menambahkan dukungan pelacakan tangan.

Perbaikan bug

  • Membuat penanda lebih stabil saat dijalankan di emulator

Versi 1.0.0-alpha01

12 Desember 2024

androidx.xr.runtime:runtime-* 1.0.0-alpha01 dirilis.

Fitur Rilis Awal

Rilis awal Jetpack XR Runtime. Library ini berisi bagian-bagian fungsi mendasar untuk rangkaian library Jetpack XR. Hal ini mencakup penemuan kemampuan, pengelolaan siklus proses, konfigurasi, dan lainnya. Library Runtime menyediakan berbagai variasi (misalnya, runtime-openxr atau runtime-testing) bergantung pada platform eksekusi. Selain itu, library ini menawarkan abstraksi matematika mendasar seperti Vector3 dan Matrix4 yang digunakan di seluruh permukaan API Jetpack XR.

  • Session: Memberi Anda kontrol mendetail atas sistem XR, termasuk memutuskan kapan pemrosesan sedang dan tidak sedang dieksekusi serta konfigurasi keseluruhan. Objek ini juga merupakan handle yang akan Anda gunakan di semua API lainnya untuk membuka kemampuan sistem yang mendasarinya.

  • Pose: Lokasi dalam sistem koordinat arbitrer yang memiliki posisi dan orientasi terkait. Anda akan menggunakan class ini untuk mengomunikasikan lokasi objek dengan ARCore untuk Jetpack XR dan Jetpack SceneCore.

Masalah Umum

  • configure saat ini tidak melakukan apa pun. Rilis mendatang akan menambahkan setelan baru yang dapat Anda gunakan untuk mengontrol perilaku Session.