Entorno de ejecución de XR
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.
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
yTrackingState
. (I55880, b/334645808) - Haz pública la implementación de Config. (I95860, b/334645808)
- Se introdujeron nuevos tipos de
SessionCreateResult
ySessionConfigureResult
. (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
aandroidx.xr.runtime.math.IntSize2d
y se trasladó. Se cambió el nombre deandroidx.xr.scenecore.Dimensions
aandroidx.xr.runtime.math.FloatSize3d
y se trasladó. Se cambió el nombre deandroidx.xr.scenecore.PlaneType
aandroidx.xr.scenecore.PlaneOrientation
. Se cambió el nombre deandroidx.xr.scenecore.PlaneSemantic
aandroidx.xr.scenecore.PlaneSemanticType
. (Ifd405, b/416456228) - Se quitó la clase
androidx.xr.runtime.FoV
. Usaandroidx.xr.runtime.FieldOfView
en su lugar. (I9ae27) - Se agregó una sobrecarga adicional para
Session.create
que puede proporcionar unLifecycleOwner
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 elLifecycleOwner
debe estar dentro del alcance de la actividad. (I1690b) - Se cambió el nombre de
FakeRuntimeAnchor.anchorsCreated
aanchorsCreatedCount
(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ó deandroidx.xr.runtime
aandroidx.xr.runtime.manifest
. (I610ad, b/418800249) - Se quitaron
Session.resume()
,Session.pause()
ySession.destroy()
de la superficie de la API. La sesión ya no es unLifecycleOwner
. El ciclo de vida de la sesión ahora se adjuntará al ciclo de vida de la actividad que se pasó enSession.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 bibliotecaxr: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
ySession.configure
arrojanSecurityException
cuando no se otorgaron los permisos suficientes, en lugar de devolverSessionCreatePermissionsNotGranted
oSessionConfigurePermissionsNotGranted
. (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 enSceneCore
. - Se agregó
ActivityPose.hitTest
, lo que permite unhitTest
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 dePanelEntity
.
Cambios en la API
- Haz pública la implementación de Config. (I95860)
- Agrega
HandJointType
yTrackingState
. (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)
porHand.trackingState
. La implementación deOpenXR
se modificó según corresponda. - El requisito de permiso de
android.permission.SCENE_UNDERSTANDING
enSession.configure
se cambió aandroid.permission.SCENE_UNDERSTANDING_COARSE
. LifecycleManager.configure
se implementó y ahora pasa un objetoConfig
que contiene una propiedad para cada función de tiempo de ejecución configurable.- Ahora se puede llamar a
Session.configure
con unConfig
para configurar las funciones de tiempo de ejecución disponibles. Session.create
ahora admite el paso de unCoroutineContext
en lugar de unCoroutineDispatcher
.Session.create
admite la carga deARCore
para Jetpack XR oSceneCore
. Se debe proporcionar al menos uno (hay versiones de prueba disponibles).FakePerceptionManager
arroja unAnchorInvalidUuidException
cuando se pasa un UUID no válido aAnchor.load
yAnchor.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 arrojanAnchorResourcesExhaustedException
si encuentran un código de error que notifica que se alcanzó el límite de recursos deOpenXR
. - Ahora se requiere el permiso
android.permission.HAND_TRACKING
paraSession.create
ySession.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 deSession
.