Environnement d'exécution XR

Démarrez votre session de RA ou 3D personnalisée avec notre environnement d'exécution natif.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
6 mai 2026 - - - 1.0.0-alpha13

Déclarer des dépendances

Pour ajouter une dépendance à l'environnement d'exécution XR, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez le 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-alpha13"

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

Kotlin

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

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

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-alpha13

6 mai 2026

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha13. Liste des commits de la version 1.0.0-alpha13 these commits.

Modifications apportées à l'API

  • TrackingState et VpsAvailabilityResult ont été déplacés vers le androidx.xr.arcore package, et les types dans androidx.xr.runtime sont désormais obsolètes. (Ic7930, b/480462213)
  • Session.getNativeData() est désormais défini dans le module xr:runtime:runtime et fournit [nativeFunctionTablePointer] pour les environnements d'exécution compatibles avec OpenXR. (Ifa862)
  • Déplacement de l'API NativeData vers la bibliothèque xr:runtime:runtime. (I87954, b/494251500)
  • Session.create et Session.configure ne sont plus exhaustifs et nécessitent des clauses else dans les instructions when. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView est maintenant obsolète. Utilisez androidx.xr.runtime.math.FieldOfView à la place. (Ia01a0, b/480233045)
  • Matrix4.pose a été renommé Matrix4.toPose(). La propriété pose est désormais obsolète. (I329b4, b/493383490)
  • Ajout de l'API XrServiceAvailability (If379e, b/493558010)
  • Ajout de l'annotation ExperimentalXrServiceAvailabilityApi (Icab49, b/491069725)
  • Suppression du suffixe pour @PreviewSpatialApi (If5242, b/491939311)
  • Remplacement de DeviceTrackingMode.LAST_KNOWN par SPATIAL_LAST_KNOWN (avec un remplacement obsolète), ajout de INERTIAL_LAST_KNOWN pour le suivi 3DoF et ajout de TRACKING_DEGRADED à TrackingState. (Ie661c, b/445466590)
  • Ajout de l'API XrLog. Définissez XrLog.isEnabled sur true pour activer la journalisation dans JetpackXR, puis utilisez [XrLog.Level] pour définir le niveau de journalisation. (I76a1f, b/463460895, b/487378441)
  • Ajout de DISPLAY_CATEGORY_XR_PROJECTED. Cette constante est utilisée dans le fichier manifeste pour indiquer que l'activité est destinée à un écran projeté XR (I26d8b).

Version 1.0.0-alpha12

25 mars 2026

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha12. Liste des commits de la version 1.0.0-alpha12 .

Modifications apportées à l'API

  • Modification de Config.augmentedObjectCategories d'une liste à un ensemble (I25a64, b/487376359)
  • Suppression de l'indicateur unscaledGravityAlignedActivitySpace de Session.create. ActivitySpace est désormais toujours non mis à l'échelle et aligné sur la gravité. (If6f11, b/458173423)
  • Ajout d'une surcharge Session.create pour autoriser la transmission d'un contexte Android pour la délimitation des ressources. (I7d3fe, b/415805990, b/477386334)
  • Ajout de JvmOverloads à FloatSize2d.to3d, Matrix3.copy et Matrix4.copy (I69586, b/481371562)
  • Possibilité de définir des catégories pour le suivi AugmentedObject dans la configuration (I1f6e4, b/480220930)
  • Ajout du module xr:runtime:runtime-interfaces. (I52ac6, b/461561664)

Version 1.0.0-alpha11

25 février 2026

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha11. Liste des commits de la version 1.0.0-alpha11 .

Modifications apportées à l'API

  • Restriction de l'interface ConfigMode à un usage interne (Ibfb87)
  • Déplacement de androidx.xr.runtime.Config.GeospatialMode au niveau du package (Ibe682)
  • Déplacement de androidx.xr.runtime.Config.FaceTrackingMode au niveau du package (Iac501)
  • Déplacement de androidx.xr.runtime.Config.AnchorPersistenceMode au niveau du package (I0360f)
  • Déplacement de androidx.xr.runtime.Config.DepthEstimationMode au niveau du package (I7e3e9)
  • Déplacement de androidx.xr.runtime.Config.DeviceTrackingMode au niveau du package (I3aacd)
  • Déplacement de androidx.xr.runtime.Config.HandTrackingMode au niveau du package (I658f3)
  • Déplacement de androidx.xr.runtime.Config.PlaneTrackingMode au niveau du package (Ia251b)
  • Déplacement de androidx.xr.runtime.XrDevice.DisplayBlendMode au niveau du package (I6f333)
  • Ajout d'une méthode de fabrique pour créer un XrDevice à l'aide d'un contexte, d'une session et d'un CoroutineContext. (I139c5)
  • Ajout de SpatialApiVersionHelper pour faciliter l'interrogation de la version d'Android XR disponible sur la plate-forme. (I7c53c)
  • Ajout du xr:runtime:runtime-openxr module (Ib42ea)

Version 1.0.0-alpha10

28 janvier 2026

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10

Modifications apportées à l'API

  • ConfigMode.HeadTrackingMode est remplacé par ConfigMode.DeviceTrackingMode. (le273e, b/467150206)
  • Suppression des méthodes toNormalized, times(float) et div(float) de Quaternion. Ces méthodes sont redondantes, car tous les Quaternions sont normalisés au moment de la construction et la classe est immuable. (l558fc, b/460210457)

Correction de bugs

  • Ajout d'une documentation à Session.create qui explique comment éviter de créer une session sur le thread principal de l'application. (le5554, b/463687170)
  • Empêche les applications de créer un BoundingBox avec une valeur NaN. (l58c14, b/464025895)

Version 1.0.0-alpha09

3 décembre 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09 : ces commits.

Version 1.0.0-alpha08

19 novembre 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08

Nouvelles fonctionnalités

  • Ajout de XrDevice pour fournir des informations sur les fonctionnalités de l'appareil. (Ic9d1f)
  • Ajout d'une nouvelle API ConfigMode.isSupported pour interroger les fonctionnalités de la session. (Iff7af)
  • Ajout de l'API XrDisplay.BlendMode. (I484e4)

Modifications apportées à l'API

  • Remplacement du nom [XrDevice.getPreferredBlendMode] par [XrDevice.getPreferredDisplayBlendMode]. (I7e48f)

Version 1.0.0-alpha07

22 octobre 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07

Modifications apportées à l'API

  • Suppression de SessionConfigureConfigureNotSupported et remplacement par UnsupportedOperationException. (I7680f)

Version 1.0.0-alpha06

24 septembre 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06

Modifications apportées à l'API

  • HandJointType a été déplacé de xr:runtime:runtime vers xr:arcore:arcore. (Iadb9c, b/409058039)
  • Modification de l'opérateur de multiplication pour componentWiseMultiplication pour Vector2, Vector3 et Vector4 afin de mettre à l'échelle et de supprimer le symbole de l'opérateur pour assurer la cohérence avec les autres bibliothèques mathématiques. Suppression également de componentWiseDivision des classes Vector au lieu d'utiliser Vector.scale(otherVector.inverse()). (I8e1f6, b/399146447)
  • Ajout de [unscaled] pour renvoyer une matrice avec une échelle de 1. (I6381d, b/434928658)
  • :xr:runtime:runtime-guava sera supprimé, car Coroutines.kt a été remplacé par SuspendtoFutureAdapter. (I0cd3c, b/406597902)

Version 1.0.0-alpha05

30 juillet 2025

Publication d'androidx.xr.runtime:runtime-*:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05.

Nouvelles fonctionnalités

  • Ajout de HandJointType et TrackingState. (I55880, b/334645808)
  • Rendre publique l'implémentation de la configuration. (I95860, b/334645808)
  • Introduction de nouveaux types SessionCreateResult et SessionConfigureResult. (Icb8cb, b/334645808)
  • Ajout d'une nouvelle classe BoundingBox qui représente un cadre de délimitation aligné sur les axes dans un espace 3D, défini par ses points d'angle minimal et maximal. (Ic68c5, b/423073468)

Modifications apportées à l'API

  • Renommage et déplacement de androidx.xr.scenecore.PixelDimensions vers androidx.xr.runtime.math.IntSize2d. Renommage et déplacement de androidx.xr.scenecore.Dimensions vers androidx.xr.runtime.math.FloatSize3d. Remplacement du nom androidx.xr.scenecore.PlaneType par androidx.xr.scenecore.PlaneOrientation. Remplacement du nom androidx.xr.scenecore.PlaneSemantic par 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 supplémentaire pour Session.create, qui peut fournir un LifecycleOwner auquel la session peut être associée. Notez qu'une activité devra toujours être fournie pour la propriété de la ressource et que le LifecycleOwner doit être délimité dans l'activité. (I1690b)
  • Remplacement du nom FakeRuntimeAnchor.anchorsCreated par 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 l'utilisation de KGP 2.0.0 ou version ultérieure (Idb6b5, b/344563182)
  • Les API liées aux chaînes de caractères du 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 un LifecycleOwner. Le cycle de vie de la session sera désormais associé au cycle de vie de l'activité transmise dans Session.create(). (I28a03)
  • Cette bibliothèque utilise désormais des annotations de possibilité de valeur nulle JSpecify, qui sont de type "use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour appliquer 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 d'environnement d'exécution principal (:xr:runtime:runtime) ne contiendra que des API asynchrones de style Kolin. Les développeurs Java peuvent dépendre de :xr:runtime:runtime-guava pour accéder aux API compatibles. (I05d4a, b/426639315)
  • L'artefact d'environnement d'exécution principal (:xr:runtime:runtime) ne contiendra que des API asynchrones de style Kotlin. Les développeurs Java peuvent dépendre de la bibliothèque xr:runtime:runtime-rxjava3 pour accéder aux API compatibles. (I64122, b/426639775)
  • Déplacement des coroutines vers :xr:runtime:runtime-guava et des flux vers :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create et Session.configure génèrent désormais SecurityException lorsque des 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. Liste des commits de la version 1.0.0-alpha04 .

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 caractères du fichier manifeste pour Android XR sont spécifiées et documentées ici.
  • Ajout de méthodes d'extension de rappel de visibilité spatiale pour surveiller le moment où le contenu de la scène se déplace à l'intérieur ou à l'extérieur du champ de vision de l'utilisateur.
  • Ajout d'une version stub de JxrPlatformAdapter (et de toutes ses classes associées).
  • La session sera utilisée à la fois dans SceneCore et dans l'environnement d'exécution au lieu de la session dans SceneCore.
  • ActivityPose.hitTest a été ajouté, ce qui permet d'effectuer un hitTest sur le contenu virtuel.
  • La spécification de plusieurs implémentations d'environnement d'exécution au temps de compilation est désormais prise en charge. Une seule sera chargée au moment de l'exécution en fonction de l'ensemble de caractéristiques de l'appareil actuel.
  • Ajout du nouveau type de composant SpatialPointerComponent, qui permet 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'aux instances PanelEntity.

Modifications apportées à l'API

  • Rendre publique l'implémentation de la configuration. (I95860)
  • Ajout de HandJointType et TrackingState. (I55880)
  • Les projets publiés avec Kotlin 2.0 nécessitent l'utilisation de KGP 2.0.0 ou version ultérieure (Idb6b5)
  • Hand.isActive (boolean) a été remplacé par Hand.trackingState. L'implémentation OpenXR a été modifiée en conséquence.
  • L'exigence d'autorisation android.permission.SCENE_UNDERSTANDING dans Session.configure a été remplacée par 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'environnement d'exécution configurable.
  • Session.configure peut désormais être appelé avec une Config afin de configurer les fonctionnalités d'environnement d'exécution disponibles.
  • Session.create accepte désormais la transmission d'un CoroutineContext au lieu d'un CoroutineDispatcher.
  • Session.create est compatible avec le chargement d'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

  • Correction des configurations ProGuard de l'environnement d'exécution.

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 depuis la dernière version alpha. Liste des commits de la version 1.0.0-alpha03 these 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. Liste des commits de la version 1.0.0-alpha02 these commits.

Modifications destructives et comportementales

  • Les fonctions d'environnement 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 prise en charge du suivi des mains.

Corrections de bugs

  • La création d'ancres est plus stable lors de l'exécution 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 fonctionnalités, la gestion du cycle de vie, la configuration, etc. La bibliothèque Runtime fournit différentes variantes (par exemple, runtime-openxr ou runtime-testing) en fonction de la plate-forme d'exécution. En outre, cette bibliothèque offre 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 des contrôles précis sur le système XR, y compris pour décider quand le traitement est exécuté et quand il ne l'est pas, ainsi que sur la configuration globale. Il s'agit également du handle que vous utiliserez dans toutes les autres API pour déverrouiller les fonctionnalités du système sous-jacent.

  • 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 futures versions ajouteront de nouveaux paramètres que vous pourrez utiliser pour contrôler le comportement de la Session.