Entorno de ejecución de XR

Inicia tu sesión personalizada de RA o 3D con nuestro tiempo de ejecución nativo.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
30 de julio de 2025 - - - 1.0.0-alpha05

Cómo declarar dependencias

Para agregar una dependencia en el tiempo de ejecución de XR, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.0

Versión 1.0.0-alpha05

30 de julio de 2025

Lanzamiento de androidx.xr.runtime:runtime-*:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Agrega HandJointType y TrackingState. (I55880, b/334645808)
  • Haz pública la implementación de Config. (I95860, b/334645808)
  • Se introdujeron nuevos tipos de SessionCreateResult y SessionConfigureResult. (Icb8cb, b/334645808)
  • Se agregó una nueva clase BoundingBox que representa una caja delimitadora alineada con el eje en el espacio 3D, definida por sus puntos de esquina mínimos y máximos. (Ic68c5, b/423073468)

Cambios en la API

  • Se cambió el nombre de androidx.xr.scenecore.PixelDimensions a androidx.xr.runtime.math.IntSize2d y se trasladó. Se cambió el nombre de androidx.xr.scenecore.Dimensions a androidx.xr.runtime.math.FloatSize3d y se trasladó. Se cambió el nombre de androidx.xr.scenecore.PlaneType a androidx.xr.scenecore.PlaneOrientation. Se cambió el nombre de androidx.xr.scenecore.PlaneSemantic a androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228)
  • Se quitó la clase androidx.xr.runtime.FoV. Usa androidx.xr.runtime.FieldOfView en su lugar. (I9ae27)
  • Se agregó una sobrecarga adicional para Session.create que puede proporcionar un LifecycleOwner para que se adjunte a la sesión. Ten en cuenta que aún se deberá proporcionar una actividad para la propiedad del recurso y que el LifecycleOwner debe estar dentro del alcance de la actividad. (I1690b)
  • Se cambió el nombre de FakeRuntimeAnchor.anchorsCreated a anchorsCreatedCount (I96df9, b/424441218).
  • Se cambiaron los nombres de los valores de Config *Mode para reflejar su comportamiento. (I6d247, b/414648065)
  • Los proyectos lanzados con Kotlin 2.0 requieren que se consuma KGP 2.0.0 o una versión posterior (Idb6b5, b/344563182).
  • Las APIs relacionadas con las cadenas de manifiesto se movieron de :xr:runtime:runtime a :xr:runtime:runtime-manifest. El nombre del paquete cambió de androidx.xr.runtime a androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Se quitaron Session.resume(), Session.pause() y Session.destroy() de la superficie de la API. La sesión ya no es un LifecycleOwner. El ciclo de vida de la sesión ahora se adjuntará al ciclo de vida de la actividad que se pasó en Session.create(). (I28a03)
  • Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deben usar el siguiente argumento del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict (este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin) (Ia8420, b/326456246)
  • El artefacto principal de Runtime (:xr:runtime:runtime) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de :xr:runtime:runtime-guava para acceder a las APIs compatibles. (I05d4a, b/426639315)
  • El artefacto principal de Runtime (:xr:runtime:runtime) solo contendrá APIs asíncronas de estilo Kotlin. Los desarrolladores de Java pueden depender de la biblioteca xr:runtime:runtime-rxjava3 para acceder a las APIs compatibles. (I64122, b/426639775)
  • Mueve las corrutinas a :xr:runtime:runtime-guava y los flujos a :xr:runtime:runtime-rxjava3. (I60ae9)
  • Ahora Session.create y Session.configure arrojan SecurityException cuando no se otorgaron los permisos suficientes, en lugar de devolver SessionCreatePermissionsNotGranted o SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Versión 1.0.0-alpha04

7 de mayo de 2025

Lanzamiento de androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 y androidx.xr.runtime:runtime-testing:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Ahora, Session implementa androidx.lifecycle.LifecycleOwner para una mayor interoperabilidad con los paradigmas existentes del ciclo de vida de Android.
  • Las cadenas de manifiesto para Android XR se especifican y documentan aquí.
  • Se agregaron métodos de extensión de devolución de llamada de visibilidad espacial para supervisar cuándo el contenido de la escena se mueve dentro o fuera del campo de visión del usuario.
  • Se agregó una versión de código auxiliar de JxrPlatformAdapter (y todas sus clases relacionadas).
  • La sesión se usará tanto en SceneCore como en el tiempo de ejecución, en lugar de la sesión en SceneCore.
  • Se agregó ActivityPose.hitTest, lo que permite un hitTest contra el contenido virtual.
  • Ahora se admite la especificación de varias implementaciones de Runtime en el tiempo de compilación. Solo se cargará uno en el tiempo de ejecución según el conjunto de funciones del dispositivo actual.
  • Se agregó un nuevo tipo de componente SpatialPointerComponent, que permite a los clientes especificar el ícono renderizado para el puntero o inhabilitar el ícono. Actualmente, este componente solo se puede adjuntar a instancias de PanelEntity.

Cambios en la API

  • Haz pública la implementación de Config. (I95860)
  • Agrega HandJointType y TrackingState. (I55880)
  • Los proyectos lanzados con Kotlin 2.0 requieren que se consuma KGP 2.0.0 o una versión posterior (Idb6b5).
  • Se cambió Hand.isActive (boolean) por Hand.trackingState. La implementación de OpenXR se modificó según corresponda.
  • El requisito de permiso de android.permission.SCENE_UNDERSTANDING en Session.configure se cambió a android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure se implementó y ahora pasa un objeto Config que contiene una propiedad para cada función de tiempo de ejecución configurable.
  • Ahora se puede llamar a Session.configure con un Config para configurar las funciones de tiempo de ejecución disponibles.
  • Session.create ahora admite el paso de un CoroutineContext en lugar de un CoroutineDispatcher.
  • Session.create admite la carga de ARCore para Jetpack XR o SceneCore. Se debe proporcionar al menos uno (hay versiones de prueba disponibles).
  • FakePerceptionManager arroja un AnchorInvalidUuidException cuando se pasa un UUID no válido a Anchor.load y Anchor.unpersist.
  • CoreState ya no es una clase de datos.

Correcciones de errores

  • Se corrigieron las configuraciones de ProGuard del entorno de ejecución.

Versión 1.0.0-alpha03

26 de febrero de 2025

Lanzamiento de androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 y androidx.xr.runtime:runtime-testing:1.0.0-alpha03 sin cambios notables desde la última versión alfa. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Versión 1.0.0-alpha02

12 de febrero de 2025

Lanzamiento de androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 y androidx.xr.runtime:runtime-testing:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios rotundos y de comportamiento

  • Las funciones de tiempo de ejecución de OpenXR que devuelven un Anchor ahora arrojan AnchorResourcesExhaustedException si encuentran un código de error que notifica que se alcanzó el límite de recursos de OpenXR.
  • Ahora se requiere el permiso android.permission.HAND_TRACKING para Session.create y Session.resume.

Nuevas funciones

  • Se agregó compatibilidad con el monitoreo de manos.

Correcciones de errores

  • La creación de anclajes es más estable cuando se ejecuta en un emulador.

Versión 1.0.0-alpha01

12 de diciembre de 2024

Lanzamiento de androidx.xr.runtime:runtime-* 1.0.0-alpha01.

Funciones de la versión inicial

Lanzamiento inicial de Jetpack XR Runtime. Esta biblioteca contiene elementos fundamentales de funcionalidad para el conjunto de bibliotecas de Jetpack XR. Esto incluye la detección de capacidades, la administración del ciclo de vida, la configuración y mucho más. La biblioteca de ejecución proporciona diferentes variaciones (p.ej., runtime-openxr o runtime-testing) según la plataforma de ejecución. Además, esta biblioteca ofrece abstracciones matemáticas fundamentales, como Vector3 y Matrix4, que se usan en toda la superficie de la API de Jetpack XR.

  • Session: Te proporciona controles detallados sobre el sistema de XR, lo que incluye decidir cuándo se ejecuta el procesamiento y cuándo no, y la configuración general. También es el identificador que usarás en todas las demás APIs para desbloquear las capacidades subyacentes del sistema.

  • Pose: Es una ubicación en un sistema de coordenadas arbitrario que tiene una posición y una orientación asociadas. Usarás esta clase para comunicar la ubicación de los objetos con ARCore para Jetpack XR y Jetpack SceneCore.

Errores conocidos

  • Actualmente, configure no realiza ninguna operación. En versiones futuras, se agregarán nuevos parámetros de configuración que podrás usar para controlar el comportamiento de Session.