Environnement d'exécution XR

Démarrez votre session AR ou 3D personnalisée avec notre moteur d'exécution natif.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
30 juillet 2025 - - - 1.0.0-alpha05

Déclarer des dépendances

Pour ajouter une dépendance sur le runtime XR, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

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

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.0

Version 1.0.0-alpha05

30 juillet 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha05. La version 1.0.0-alpha05 contient ces commits.

Nouvelles fonctionnalités

  • Ajoutez HandJointType et TrackingState. (I55880, b/334645808)
  • Rendez l'implémentation de la configuration publique. (I95860, b/334645808)
  • Ajout de nouveaux types SessionCreateResult et SessionConfigureResult. (Icb8cb, b/334645808)
  • Ajoutez une classe BoundingBox qui représente une boîte englobante alignée sur les axes dans l'espace 3D, définie par ses points d'angle minimum et maximum. (Ic68c5, b/423073468)

Modifications apportées à l'API

  • androidx.xr.scenecore.PixelDimensions a été renommé androidx.xr.runtime.math.IntSize2d et déplacé. androidx.xr.scenecore.Dimensions a été renommé androidx.xr.runtime.math.FloatSize3d et déplacé. androidx.xr.scenecore.PlaneType a été renommé androidx.xr.scenecore.PlaneOrientation. androidx.xr.scenecore.PlaneSemantic a été renommé androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228)
  • Suppression de la classe androidx.xr.runtime.FoV. Utilisez androidx.xr.runtime.FieldOfView à la place. (I9ae27)
  • Ajout d'une surcharge pour Session.create, qui peut fournir un LifecycleOwner auquel la session doit être associée. Notez qu'une activité devra toujours être fournie pour la propriété des ressources et que LifecycleOwner doit être limité à l'activité. (I1690b)
  • Changement de nom : FakeRuntimeAnchor.anchorsCreated devient anchorsCreatedCount. (I96df9, b/424441218)
  • Les valeurs de configuration *Mode ont été renommées pour refléter leur comportement. (I6d247, b/414648065)
  • Les projets publiés avec Kotlin 2.0 nécessitent KGP 2.0.0 ou version ultérieure pour être utilisés (Idb6b5, b/344563182).
  • Les API liées aux chaînes de fichier manifeste ont été déplacées de :xr:runtime:runtime vers :xr:runtime:runtime-manifest. Le nom du package est passé de androidx.xr.runtime à androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Session.resume(), Session.pause() et Session.destroy() ont été supprimés de la surface de l'API. La session n'est plus une LifecycleOwner. Le cycle de vie de la session sera désormais associé à celui de l'activité transmise dans Session.create(). (I28a03)
  • Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte : -Xjspecify-annotations=strict (il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin) (Ia8420, b/326456246).
  • L'artefact Runtime principal (:xr:runtime:runtime) ne contiendra que des API asynchrones de style Kotlin. Les développeurs Java peuvent s'appuyer sur :xr:runtime:runtime-guava pour accéder aux API compatibles. (I05d4a, b/426639315)
  • L'artefact Runtime principal (:xr:runtime:runtime) ne contiendra que des API asynchrones de style Kotlin. Les développeurs Java peuvent s'appuyer sur la bibliothèque xr:runtime:runtime-rxjava3 pour accéder aux API compatibles. (I64122, b/426639775)
  • Déplacez les coroutines vers :xr:runtime:runtime-guava et les flux vers :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create et Session.configure génèrent désormais une SecurityException lorsque les autorisations suffisantes n'ont pas été accordées, au lieu de renvoyer SessionCreatePermissionsNotGranted ou SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Version 1.0.0-alpha04

7 mai 2025

Publication d'androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 et androidx.xr.runtime:runtime-testing:1.0.0-alpha04. La version 1.0.0-alpha04 contient ces commits.

Nouvelles fonctionnalités

  • La session implémente désormais androidx.lifecycle.LifecycleOwner pour une meilleure interopérabilité avec les paradigmes de cycle de vie Android existants.
  • Les chaînes de fichier manifeste pour Android XR sont spécifiées et documentées ici.
  • Des méthodes d'extension de rappel de visibilité spatiale ont été ajoutées pour surveiller le déplacement du contenu de la scène à l'intérieur ou à l'extérieur du champ de vision de l'utilisateur.
  • Ajout d'une version stub de JxrPlatformAdapter (et de toutes les classes associées).
  • La session sera utilisée à la fois dans SceneCore et dans le runtime au lieu de la session dans SceneCore.
  • ActivityPose.hitTest a été ajouté, ce qui permet de hitTest le contenu virtuel.
  • Il est désormais possible de spécifier plusieurs implémentations de l'environnement d'exécution au moment de la compilation. Un seul sera chargé au moment de l'exécution, en fonction de l'ensemble des fonctionnalités de l'appareil actuel.
  • Ajout du nouveau type de composant SpatialPointerComponent, permettant aux clients de spécifier l'icône affichée pour le pointeur ou de la désactiver. Ce composant ne peut actuellement être associé qu'à des instances PanelEntity.

Modifications apportées à l'API

  • Rendez l'implémentation de la configuration publique. (I95860)
  • Ajoutez HandJointType et TrackingState. (I55880)
  • Les projets publiés avec Kotlin 2.0 nécessitent KGP 2.0.0 ou version ultérieure pour être utilisés (Idb6b5).
  • Hand.isActive (boolean) a été remplacé par Hand.trackingState. L'implémentation de OpenXR a été modifiée en conséquence.
  • L'autorisation android.permission.SCENE_UNDERSTANDING requise dans Session.configure est désormais android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure est implémenté et transmet désormais un objet Config qui contient une propriété pour chaque fonctionnalité d'exécution configurable.
  • Session.configure peut désormais être appelé avec un Config afin de configurer les fonctionnalités d'exécution disponibles.
  • Session.create accepte désormais le transfert d'un CoroutineContext au lieu d'un CoroutineDispatcher.
  • Session.create est compatible avec le chargement de ARCore pour Jetpack XR et/ou SceneCore. Au moins un doit être fourni (des versions de test sont disponibles).
  • FakePerceptionManager génère une AnchorInvalidUuidException lorsqu'un UUID non valide est transmis à Anchor.load et Anchor.unpersist.
  • CoreState n'est plus une classe de données.

Correction de bugs

  • Configurations ProGuard de l'environnement d'exécution corrigées.

Version 1.0.0-alpha03

26 février 2025

Publication d'androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 et androidx.xr.runtime:runtime-testing:1.0.0-alpha03 sans modification notable par rapport à la dernière version alpha. La version 1.0.0-alpha03 contient ces commits.

Version 1.0.0-alpha02

12 février 2025

Publication d'androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 et androidx.xr.runtime:runtime-testing:1.0.0-alpha02. La version 1.0.0-alpha02 contient ces commits.

Modifications destructives et de comportement

  • Les fonctions d'exécution OpenXR qui renvoient une ancre génèrent désormais AnchorResourcesExhaustedException si elles rencontrent un code d'erreur indiquant que la limite de ressources OpenXR a été atteinte.
  • L'autorisation android.permission.HAND_TRACKING est désormais requise pour Session.create et Session.resume.

Nouvelles fonctionnalités

  • Ajout de la compatibilité avec le suivi des mains.

Corrections de bugs

  • La création d'ancres est plus stable lorsqu'elle est exécutée sur un émulateur.

Version 1.0.0-alpha01

12 décembre 2024

Publication d'androidx.xr.runtime:runtime-* 1.0.0-alpha01.

Fonctionnalités de la version initiale

Version initiale de Jetpack XR Runtime. Cette bibliothèque contient des éléments de fonctionnalité fondamentaux pour la suite de bibliothèques Jetpack XR. Cela inclut la découverte des capacités, la gestion du cycle de vie, la configuration, etc. La bibliothèque d'exécution fournit différentes variantes (par exemple, runtime-openxr ou runtime-testing) en fonction de la plate-forme d'exécution. De plus, cette bibliothèque propose des abstractions mathématiques fondamentales telles que Vector3 et Matrix4, qui sont utilisées sur l'ensemble de la surface de l'API Jetpack XR.

  • Session : vous offre un contrôle précis sur le système XR, y compris pour déterminer quand le traitement est exécuté et la configuration globale. Il s'agit également du handle que vous utiliserez dans toutes les autres API pour déverrouiller les fonctionnalités système sous-jacentes.

  • Pose : emplacement dans un système de coordonnées arbitraire auquel sont associés une position et une orientation. Vous utiliserez cette classe pour communiquer l'emplacement des objets avec ARCore pour Jetpack XR et Jetpack SceneCore.

Problèmes connus

  • configure est actuellement une opération sans effet. Les prochaines versions ajouteront de nouveaux paramètres que vous pourrez utiliser pour contrôler le comportement de Session.