XR-Laufzeit

Starten Sie Ihre benutzerdefinierte AR‑ oder 3D‑Sitzung mit unserer nativen Laufzeitumgebung.
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
30. Juli 2025 - - 1.0.0-alpha05

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von der XR-Laufzeit hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.

Fügen Sie der Datei build.gradle für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:

Cool

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

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.0

Version 1.0.0-alpha05

30. Juli 2025

androidx.xr.runtime:runtime-*:1.0.0-alpha05 wird veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.

Neue Funktionen

  • Fügen Sie HandJointType und TrackingState hinzu. (I55880, b/334645808)
  • Konfigurationsimplementierung öffentlich machen (I95860, b/334645808)
  • Neue Typen SessionCreateResult und SessionConfigureResult eingeführt. (Icb8cb, b/334645808)
  • Fügen Sie eine neue BoundingBox-Klasse hinzu, die einen achsenparallelen Begrenzungsrahmen im 3D-Raum darstellt, der durch seine minimalen und maximalen Eckpunkte definiert wird. (Ic68c5, b/423073468)

API-Änderungen

  • androidx.xr.scenecore.PixelDimensions wurde in androidx.xr.runtime.math.IntSize2d umbenannt und verschoben. androidx.xr.scenecore.Dimensions wurde in androidx.xr.runtime.math.FloatSize3d umbenannt und verschoben. androidx.xr.scenecore.PlaneType wurde in androidx.xr.scenecore.PlaneOrientation umbenannt. androidx.xr.scenecore.PlaneSemantic wurde in androidx.xr.scenecore.PlaneSemanticType umbenannt. (Ifd405, b/416456228)
  • Die Klasse androidx.xr.runtime.FoV wurde entfernt. Verwenden Sie stattdessen androidx.xr.runtime.FieldOfView. (I9ae27)
  • Es wurde eine zusätzliche Überladung für Session.create hinzugefügt, die eine LifecycleOwner für die anzuhängende Sitzung bereitstellen kann. Für die Inhaberschaft von Ressourcen muss weiterhin eine Aktivität angegeben werden und LifecycleOwner muss auf die Aktivität beschränkt sein. (I1690b)
  • FakeRuntimeAnchor.anchorsCreated wurde in anchorsCreatedCount umbenannt (I96df9, b/424441218)
  • Die Konfigurationswerte für *Mode wurden umbenannt, um ihr Verhalten besser widerzuspiegeln. (I6d247, b/414648065)
  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5, b/344563182).
  • APIs für Manifest-Strings wurden von :xr:runtime:runtime nach :xr:runtime:runtime-manifest verschoben. Der Paketname wurde von androidx.xr.runtime zu androidx.xr.runtime.manifest geändert. (I610ad, b/418800249)
  • Session.resume(), Session.pause() und Session.destroy() wurden aus der API-Oberfläche entfernt. Die Sitzung ist kein LifecycleOwner mehr. Der Lebenszyklus der Sitzung ist jetzt an den Lebenszyklus der in Session.create() übergebenen Aktivität gebunden. (I28a03)
  • In dieser Bibliothek werden jetzt JSpecify-Nullable-Annotationen verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen: -Xjspecify-annotations=strict (dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers) (Ia8420, b/326456246)
  • Das Haupt-Laufzeitartefakt (:xr:runtime:runtime) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können :xr:runtime:runtime-guava verwenden, um auf kompatible APIs zuzugreifen. (I05d4a, b/426639315)
  • Das Hauptartefakt für die Laufzeit (:xr:runtime:runtime) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können die xr:runtime:runtime-rxjava3-Bibliothek verwenden, um auf kompatible APIs zuzugreifen. (I64122, b/426639775)
  • Verschieben Sie Coroutines nach :xr:runtime:runtime-guava und Flows nach :xr:runtime:runtime-rxjava3. (I60ae9)
  • Bei Session.create und Session.configure wird jetzt SecurityException ausgegeben, wenn nicht genügend Berechtigungen erteilt wurden, anstatt SessionCreatePermissionsNotGranted oder SessionConfigurePermissionsNotGranted zurückzugeben. (I7c488, b/430651879)

Version 1.0.0-alpha04

7. Mai 2025

androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 und androidx.xr.runtime:runtime-testing:1.0.0-alpha04 sind veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.

Neue Funktionen

  • In der Sitzung wird jetzt androidx.lifecycle.LifecycleOwner für eine bessere Interoperabilität mit bestehenden Android-Lebenszyklusparadigmen implementiert.
  • Manifest-Strings für Android XR werden hier angegeben und dokumentiert.
  • Es wurden Erweiterungsmethoden für den Callback für die räumliche Sichtbarkeit hinzugefügt, um zu überwachen, wann sich der Inhalt der Szene innerhalb oder außerhalb des Sichtfelds des Nutzers bewegt.
  • Es wurde eine Stub-Version von JxrPlatformAdapter (und allen zugehörigen Klassen) hinzugefügt.
  • Die Sitzung wird sowohl in SceneCore als auch in Runtime anstelle der Sitzung in SceneCore verwendet.
  • ActivityPose.hitTest wurde hinzugefügt, wodurch eine hitTest für virtuelle Inhalte möglich ist.
  • Die Angabe mehrerer Laufzeitimplementierungen zur Kompilierzeit wird jetzt unterstützt. Zur Laufzeit wird nur eine geladen, basierend auf den Funktionen des aktuellen Geräts.
  • Der neue Komponententyp SpatialPointerComponent wurde hinzugefügt. Damit können Kunden das Symbol für den Zeiger angeben oder das Symbol deaktivieren. Diese Komponente kann derzeit nur an PanelEntity-Instanzen angehängt werden.

API-Änderungen

  • Konfigurationsimplementierung öffentlich machen (I95860)
  • Fügen Sie HandJointType und TrackingState hinzu. (I55880)
  • Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich (Idb6b5).
  • Hand.isActive (boolean) wurde in Hand.trackingState geändert. Die Implementierung von OpenXR wurde entsprechend geändert.
  • Die Berechtigungsvoraussetzung für android.permission.SCENE_UNDERSTANDING in Session.configure wurde zu android.permission.SCENE_UNDERSTANDING_COARSE geändert.
  • LifecycleManager.configure wurde implementiert und übergibt jetzt ein Config-Objekt, das eine Property für jede konfigurierbare Laufzeitfunktion enthält.
  • Session.configure kann jetzt mit einem Config aufgerufen werden, um die verfügbaren Laufzeitfunktionen zu konfigurieren.
  • Session.create unterstützt jetzt die Übergabe einer CoroutineContext anstelle einer CoroutineDispatcher.
  • Session.create unterstützt das Laden von ARCore für Jetpack XR und/oder SceneCore. Es muss mindestens eine angegeben werden (Testversionen sind verfügbar).
  • FakePerceptionManager löst eine AnchorInvalidUuidException aus, wenn eine ungültige UUID an Anchor.load und Anchor.unpersist übergeben wird.
  • CoreState ist keine Datenklasse mehr.

Fehlerkorrekturen

  • Die ProGuard-Konfigurationen für die Laufzeit wurden korrigiert.

Version 1.0.0-alpha03

26. Februar 2025

androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 und androidx.xr.runtime:runtime-testing:1.0.0-alpha03 werden ohne nennenswerte Änderungen seit der letzten Alphaversion veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Version 1.0.0-alpha02

12. Februar 2025

androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 und androidx.xr.runtime:runtime-testing:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

Nicht abwärtskompatible Änderungen und Verhaltensänderungen

  • OpenXR-Laufzeitfunktionen, die einen Anker zurückgeben, lösen jetzt AnchorResourcesExhaustedException aus, wenn ein Fehlercode auftritt, der darauf hinweist, dass das OpenXR-Ressourcenlimit erreicht wurde.
  • Die Berechtigung android.permission.HAND_TRACKING ist jetzt für Session.create und Session.resume erforderlich.

Neue Funktionen

  • Unterstützung für Handtracking hinzugefügt.

Fehlerkorrekturen

  • Das Erstellen von Ankern ist stabiler, wenn die App auf einem Emulator ausgeführt wird.

Version 1.0.0-alpha01

12. Dezember 2024

androidx.xr.runtime:runtime-* 1.0.0-alpha01 wird veröffentlicht.

Funktionen der Erstversion

Erste Version der Jetpack XR-Laufzeit. Diese Bibliothek enthält grundlegende Funktionen für die Jetpack XR-Bibliotheken. Dazu gehören die Erkennung von Funktionen, die Lebenszyklusverwaltung und die Konfiguration. Die Laufzeitbibliothek bietet je nach Ausführungsplattform verschiedene Varianten (z.B. runtime-openxr oder runtime-testing). Außerdem bietet diese Bibliothek grundlegende mathematische Abstraktionen wie Vector3 und Matrix4, die in der gesamten Jetpack XR API verwendet werden.

  • Session: Bietet Ihnen detaillierte Steuerungsmöglichkeiten für das XR-System, einschließlich der Entscheidung, wann die Verarbeitung ausgeführt wird und wann nicht, sowie der Gesamtkonfiguration. Außerdem ist es der Handle, den Sie in allen anderen APIs verwenden, um die zugrunde liegenden Systemfunktionen freizuschalten.

  • Pose: Ein Ort in einem beliebigen Koordinatensystem, dem eine Position und Ausrichtung zugeordnet sind. Mit dieser Klasse wird die Position von Objekten an ARCore für Jetpack XR und Jetpack SceneCore übermittelt.

Bekannte Probleme

  • configure ist derzeit ein No-Op. In zukünftigen Versionen werden neue Einstellungen hinzugefügt, mit denen Sie das Verhalten von Session steuern können.