Ambiente de execução do XR

Inicie sua sessão personalizada de RA ou 3D com nosso ambiente de execução nativo.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
6 de maio de 2026 - - - 1.0.0-alpha13

Declarar dependências

Para adicionar uma dependência ao ambiente de execução do XR, é preciso incluir o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.runtime:runtime-guava:1.0.0-alpha13"
    implementation "androidx.xr.runtime:runtime-rxjava3: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")

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.runtime:runtime-guava:1.0.0-alpha13")
    implementation("androidx.xr.runtime:runtime-rxjava3:1.0.0-alpha13")

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

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.0

Versão 1.0.0-alpha13

6 de maio de 2026

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha13. A versão 1.0.0-alpha13 contém estas confirmações.

Mudanças na API

  • TrackingState e VpsAvailabilityResult foram movidos para o androidx.xr.arcore package, e os tipos em androidx.xr.runtime foram descontinuados. (Ic7930, b/480462213)
  • Session.getNativeData() agora é definido no módulo xr:runtime:runtime e fornece [nativeFunctionTablePointer] para ambientes de execução com suporte do OpenXR. (Ifa862)
  • A API NativeData foi movida para a biblioteca xr:runtime:runtime. (I87954, b/494251500)
  • Session.create e Session.configure agora não são exaustivos e exigem outras cláusulas em instruções when. (I9885e, b/495805998, b/495805998)
  • O uso de androidx.xr.runtime.FieldOfView foi descontinuado. Use androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Matrix4.pose foi renomeado como Matrix4.toPose(). A propriedade de pose foi descontinuada. (I329b4, b/493383490)
  • Adição da XrServiceAvailability API (If379e, b/493558010)
  • Adição da anotação ExperimentalXrServiceAvailabilityApi (Icab49, b/491069725)
  • Remoção do sufixo para @PreviewSpatialApi (If5242, b/491939311)
  • DeviceTrackingMode.LAST_KNOWN foi renomeado como SPATIAL_LAST_KNOWN (com um fallback descontinuado), INERTIAL_LAST_KNOWN foi adicionado para o acompanhamento de 3DoF e TRACKING_DEGRADED foi adicionado a TrackingState. (Ie661c, b/445466590)
  • Adição da API XrLog. Defina XrLog.isEnabled como true para ativar a geração de registros no JetpackXR e use [XrLog.Level] para definir o nível de registro. (I76a1f, b/463460895, b/487378441)
  • Adição de DISPLAY_CATEGORY_XR_PROJECTED. Essa constante é usada no arquivo de manifesto para indicar que a atividade é destinada a uma tela projetada em XR (I26d8b).

Versão 1.0.0-alpha12

25 de março de 2026

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Mudanças na API

  • Mudança de Config.augmentedObjectCategories de uma lista para um conjunto (I25a64, b/487376359).
  • Remoção da flag unscaledGravityAlignedActivitySpace de Session.create. ActivitySpace agora é sempre não escalonado e alinhado à gravidade. (If6f11, b/458173423)
  • Adição de uma sobrecarga de Session.create para permitir a transmissão de um contexto do Android para o escopo de recursos. (I7d3fe, b/415805990, b/477386334)
  • Adição de JvmOverloads a FloatSize2d.to3d, Matrix3.copy, e Matrix4.copy (I69586, b/481371562).
  • Adição da capacidade de definir categorias para o acompanhamento de AugmentedObject na configuração (I1f6e4, b/480220930).
  • Adição do módulo xr:runtime:runtime-interfaces. (I52ac6, b/461561664)

Versão 1.0.0-alpha11

25 de fevereiro de 2026

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Mudanças na API

  • Restrição da interface ConfigMode para uso interno (Ibfb87).
  • Movimentação de androidx.xr.runtime.Config.GeospatialMode para o nível do pacote (Ibe682).
  • Movimentação de androidx.xr.runtime.Config.FaceTrackingMode para o nível do pacote (Iac501).
  • Movimentação de androidx.xr.runtime.Config.AnchorPersistenceMode para o nível do pacote (I0360f).
  • Movimentação de androidx.xr.runtime.Config.DepthEstimationMode para o nível do pacote (I7e3e9).
  • Movimentação de androidx.xr.runtime.Config.DeviceTrackingMode para o nível do pacote (I3aacd).
  • Movimentação de androidx.xr.runtime.Config.HandTrackingMode para o nível do pacote (I658f3).
  • Movimentação de androidx.xr.runtime.Config.PlaneTrackingMode para o nível do pacote (Ia251b)
  • Movimentação de androidx.xr.runtime.XrDevice.DisplayBlendMode para o nível do pacote (I6f333).
  • Adição de um método de fábrica para criar um XrDevice usando um contexto, uma sessão e um CoroutineContext. (I139c5)
  • Adição de SpatialApiVersionHelper para ajudar a consultar a versão do Android XR disponível na plataforma. (I7c53c)
  • Adição do xr:runtime:runtime-openxr módulo (Ib42ea).

Versão 1.0.0-alpha10

28 de janeiro de 2026

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Mudanças na API

  • ConfigMode.HeadTrackingMode foi substituído por ConfigMode.DeviceTrackingMode. (le273e, b/467150206)
  • Remoção dos métodos toNormalized, times(float) e div(float) do Quaternion. Esses métodos são redundantes, já que todos os Quaternions são normalizados no momento da construção e a classe é imutável. (l558fc, b/460210457)

Correções de bugs

  • Adição de documentação a Session.create que ilustra como evitar a criação de uma sessão na linha de execução principal do aplicativo. (le5554, b/463687170)
  • Impedimento de que os aplicativos criem uma BoundingBox com um valor NaN. (l58c14, b/464025895)

Versão 1.0.0-alpha09

3 de dezembro de 2025

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Versão 1.0.0-alpha08

19 de novembro de 2025

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Novos recursos

  • XrDevice foi adicionado para fornecer informações sobre os recursos do dispositivo. (Ic9d1f)
  • Adição da nova API ConfigMode.isSupported para consultar os recursos da sessão. (Iff7af)
  • Adição da API XrDisplay.BlendMode. (I484e4)

Mudanças na API

  • [XrDevice.getPreferredBlendMode] foi renomeado como [XrDevice.getPreferredDisplayBlendMode]. (I7e48f)

Versão 1.0.0-alpha07

22 de outubro de 2025

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Mudanças na API

  • Remoção de SessionConfigureConfigureNotSupported e substituição por UnsupportedOperationException. (I7680f)

Versão 1.0.0-alpha06

24 de setembro de 2025

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Mudanças na API

  • HandJointType foi movido de xr:runtime:runtime para xr:arcore:arcore. (Iadb9c, b/409058039)
  • Mudança do operador de vezes para componentWiseMultiplication para Vector2, Vector3, Vector4 para escalonar e remoção do símbolo do operador para consistência com outras bibliotecas matemáticas. Também foi removido componentWiseDivision das classes de vetor em vez de usar Vector.scale(otherVector.inverse()). (I8e1f6, b/399146447)
  • Adição de [unscaled] para retornar uma matriz com uma escala de um. (I6381d, b/434928658)
  • :xr:runtime:runtime-guava será removido, já que Coroutines.kt foi substituído por SuspendtoFutureAdapter. (I0cd3c, b/406597902)

Versão 1.0.0-alpha05

30 de julho de 2025

Lançamento de androidx.xr.runtime:runtime-*:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Novos recursos

  • Adição de HandJointType e TrackingState. (I55880, b/334645808)
  • Implementação pública da configuração. (I95860, b/334645808)
  • Introdução de novos tipos SessionCreateResult e SessionConfigureResult. (Icb8cb, b/334645808)
  • Adição de uma nova classe BoundingBox que representa uma caixa delimitadora alinhada ao eixo no espaço 3D, definida pelos pontos de canto mínimo e máximo. (Ic68c5, b/423073468)

Mudanças na API

  • androidx.xr.scenecore.PixelDimensions foi renomeado e movido para androidx.xr.runtime.math.IntSize2d. androidx.xr.scenecore.Dimensions foi renomeado e movido para androidx.xr.runtime.math.FloatSize3d. androidx.xr.scenecore.PlaneType foi renomeado como androidx.xr.scenecore.PlaneOrientation. Renomeado androidx.xr.scenecore.PlaneSemantic para androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228)
  • Remoção da classe androidx.xr.runtime.FoV. Use androidx.xr.runtime.FieldOfView. (I9ae27)
  • Adição de uma sobrecarga para Session.create, que pode fornecer um LifecycleOwner para a sessão anexar. Uma atividade ainda precisará ser fornecida para a propriedade do recurso, e o LifecycleOwner precisa ter escopo na atividade. (I1690b)
  • FakeRuntimeAnchor.anchorsCreated foi renomeado como anchorsCreatedCount (I96df9, b/424441218).
  • Os valores de configuração *Mode foram renomeados para refletir o comportamento deles. (I6d247, b/414648065)
  • Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5, b/344563182).
  • As APIs relacionadas a strings de manifesto foram movidas de :xr:runtime:runtime para :xr:runtime:runtime-manifest. O nome do pacote mudou de androidx.xr.runtime para androidx.xr.runtime.manifest. (I610ad, b/418800249)
  • Session.resume(), Session.pause() e Session.destroy() foram removidos da superfície da API. A sessão não é mais um LifecycleOwner. O ciclo de vida da sessão agora será anexado ao ciclo de vida da atividade transmitida em Session.create(). (I28a03)
  • Essa biblioteca agora usa anotações de nulidade JSpecify, que são de uso de tipo. Os desenvolvedores do Kotlin precisam usar o seguinte argumento do compilador para aplicar o uso correto: -Xjspecify-annotations=strict (esse é o padrão a partir da versão 2.1.0 do compilador Kotlin) (Ia8420, b/326456246)
  • O artefato principal do ambiente de execução (:xr:runtime:runtime) só vai conter APIs assíncronas no estilo Kolin. Os desenvolvedores Java podem depender de :xr:runtime:runtime-guava para acessar APIs compatíveis. (I05d4a, b/426639315)
  • O artefato principal do ambiente de execução (:xr:runtime:runtime) só vai conter APIs assíncronas no estilo Kotlin. Os desenvolvedores Java podem depender da biblioteca xr:runtime:runtime-rxjava3 para acessar APIs compatíveis. (I64122, b/426639775)
  • Movimentação de corrotinas para :xr:runtime:runtime-guava e fluxos para :xr:runtime:runtime-rxjava3. (I60ae9)
  • Session.create e Session.configure agora geram SecurityException quando permissões suficientes não foram concedidas, em vez de retornar SessionCreatePermissionsNotGranted ou SessionConfigurePermissionsNotGranted. (I7c488, b/430651879)

Versão 1.0.0-alpha04

7 de maio de 2025

Lançamento de androidx.xr.runtime:runtime:1.0.0-alpha04, androidx.xr.runtime:runtime-openxr:1.0.0-alpha04 e androidx.xr.runtime:runtime-testing:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações (link em inglês).

Novos recursos

  • A sessão agora implementa androidx.lifecycle.LifecycleOwner para mais interoperabilidade com os paradigmas de ciclo de vida do Android.
  • As strings de manifesto para o Android XR são especificadas e documentadas aqui.
  • Métodos de extensão de callback de visibilidade espacial adicionados para monitorar quando o conteúdo da cena se move para dentro ou para fora do campo de visão do usuário.
  • Adição de uma versão de stub do JxrPlatformAdapter (e todas as classes relacionadas).
  • A sessão será usada em SceneCore e no ambiente de execução, em vez da sessão em SceneCore.
  • ActivityPose.hitTest foi adicionado, permitindo um hitTest em conteúdo virtual.
  • Agora é possível especificar várias implementações de ambiente de execução no tempo de compilação. Apenas uma será carregada no momento da execução com base no conjunto de atributos do dispositivo atual.
  • Adição do novo tipo de componente SpatialPointerComponent, permitindo que os clientes especifiquem o ícone renderizado para o ponteiro ou desativem o ícone. No momento, esse componente só pode ser anexado a instâncias PanelEntity.

Mudanças na API

  • Implementação pública da configuração. (I95860)
  • Adição de HandJointType e TrackingState. (I55880)
  • Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5).
  • Hand.isActive (boolean) foi alterado para Hand.trackingState. A implementação do OpenXR foi modificada de acordo.
  • O requisito de permissão android.permission.SCENE_UNDERSTANDING em Session.configure foi alterado para android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure é implementado e agora transmite um objeto Config que contém uma propriedade para cada recurso configurável do ambiente de execução.
  • Session.configure agora pode ser chamado com uma Config para configurar os recursos disponíveis do ambiente de execução.
  • Session.create agora oferece suporte à transmissão de um CoroutineContext em vez de um CoroutineDispatcher.
  • Session.create oferece suporte ao carregamento de ARCore para Jetpack XR e/ou SceneCore. É necessário fornecer pelo menos um (versões de teste disponíveis).
  • FakePerceptionManager gera uma AnchorInvalidUuidException quando um UUID inválido é transmitido para Anchor.load e Anchor.unpersist.
  • CoreState não é mais uma classe de dados.

Correções de bugs

  • Configurações do ProGuard do ambiente de execução corrigidas.

Versão 1.0.0-alpha03

26 de fevereiro de 2025

Lançamento de androidx.xr.runtime:runtime:1.0.0-alpha03, androidx.xr.runtime:runtime-openxr:1.0.0-alpha03 e androidx.xr.runtime:runtime-testing:1.0.0-alpha03 sem mudanças notáveis desde a última versão Alfa. A versão 1.0.0-alpha03 contém estas confirmações.

Versão 1.0.0-alpha02

12 de fevereiro de 2025

Lançamento de androidx.xr.runtime:runtime:1.0.0-alpha02, androidx.xr.runtime:runtime-openxr:1.0.0-alpha02 e androidx.xr.runtime:runtime-testing:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças interruptivas e de comportamento

  • As funções de ambiente de execução do OpenXR que retornam uma âncora agora geram AnchorResourcesExhaustedException se encontrarem um código de erro notificando que o limite de recursos do OpenXR foi atingido.
  • A permissão android.permission.HAND_TRACKING agora é necessária para Session.create e Session.resume.

Novos recursos

  • Adição de suporte à captura de movimentos das mãos.

Correções de bugs

  • A criação de âncoras é mais estável ao ser executada em um emulador.

Versão 1.0.0-alpha01

12 de dezembro de 2024

Lançamento de androidx.xr.runtime:runtime-* 1.0.0-alpha01.

Recursos da versão inicial

Versão inicial do ambiente de execução do Jetpack XR. Essa biblioteca contém partes fundamentais da funcionalidade para o conjunto de bibliotecas do Jetpack XR. Isso inclui descoberta de recursos, gerenciamento de ciclo de vida, configuração e muito mais. A biblioteca do ambiente de execução oferece diferentes variações (por exemplo, runtime-openxr ou runtime-testing), dependendo da plataforma de execução. Além disso, essa biblioteca oferece abstrações matemáticas fundamentais, como Vector3 e Matrix4, que são usadas em toda a superfície da API do Jetpack XR.

  • Session: oferece controles refinados sobre o sistema XR, incluindo a decisão de quando o processamento está e não está sendo executado e a configuração geral. Ele também é o identificador que você usará em todas as outras APIs para desbloquear os recursos do sistema subjacente.

  • Pose: um local em um sistema de coordenadas arbitrário que tem uma posição e orientação associadas a ele. Você usará essa classe para comunicar a localização de objetos com o ARCore para Jetpack XR e Jetpack SceneCore.

Problemas conhecidos

  • configure é atualmente uma operação nula. As versões futuras vão adicionar novas configurações que podem ser usadas para controlar o comportamento da Session.