Ambiente de execução de XR

Inicie sua sessão personalizada de RA ou 3D com nosso tempo de execução nativo.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
30 de julho de 2025 - - - 1.0.0-alpha05

Declarar dependências

Para adicionar uma dependência ao tempo de execução de XR, adicione 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-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 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-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

  • Adicione HandJointType e TrackingState. (I55880, b/334645808)
  • Torne a implementação da configuração pública. (I95860, b/334645808).
  • Foram introduzidos novos tipos SessionCreateResult e SessionConfigureResult. (Icb8cb, b/334645808)
  • Adicione 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. androidx.xr.scenecore.PlaneSemantic foi renomeado como androidx.xr.scenecore.PlaneSemanticType. (Ifd405, b/416456228).
  • Classe androidx.xr.runtime.FoV removida. Use androidx.xr.runtime.FieldOfView. (I9ae27).
  • Adicionamos uma sobrecarga extra para Session.create, que pode fornecer um LifecycleOwner para a sessão ser anexada. Uma atividade ainda precisa ser fornecida para a propriedade do recurso, e o LifecycleOwner precisa estar no escopo da 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).
  • Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir 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 Runtime (:xr:runtime:runtime) vai conter apenas APIs assíncronas no estilo Kotlin. Os desenvolvedores Java podem depender do :xr:runtime:runtime-guava para acessar APIs compatíveis. (I05d4a, b/426639315)
  • O artefato principal do Runtime (:xr:runtime:runtime) vai conter apenas 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).
  • Mova as corrotinas para :xr:runtime:runtime-guava e os fluxos para :xr:runtime:runtime-rxjava3. (I60ae9).
  • Session.create e Session.configure agora geram SecurityException quando não há permissões suficientes, 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.

Novos recursos

  • Agora, a sessão implementa androidx.lifecycle.LifecycleOwner para mais interoperabilidade com os paradigmas de ciclo de vida do Android.
  • As strings de manifesto para 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 dentro ou fora do campo de visão do usuário.
  • Adicionada uma versão stub do JxrPlatformAdapter (e todas as classes relacionadas).
  • A sessão será usada em SceneCore e no tempo de execução, em vez da sessão em SceneCore.
  • O ActivityPose.hitTest foi adicionado, permitindo um hitTest contra conteúdo virtual.
  • Agora é possível especificar várias implementações de ambiente de execução no momento da compilação. Apenas um será carregado no momento da execução com base no conjunto de recursos 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

  • Torne a implementação da configuração pública. (I95860)
  • Adicione 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) mudou para Hand.trackingState. A implementação de OpenXR foi modificada de acordo.
  • O requisito de permissão de android.permission.SCENE_UNDERSTANDING em Session.configure foi alterado para android.permission.SCENE_UNDERSTANDING_COARSE.
  • LifecycleManager.configure foi implementado e agora transmite um objeto Config que contém uma propriedade para cada recurso configurável de tempo de execução.
  • Agora, Session.configure pode ser chamado com um Config para configurar os recursos de tempo de execução disponíveis.
  • Agora, o Session.create aceita a transmissão de um CoroutineContext em vez de um CoroutineDispatcher.
  • O Session.create oferece suporte ao carregamento de ARCore para Jetpack XR e/ou SceneCore. É necessário fornecer pelo menos um (versões de teste estão 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

  • Correção das configurações do ProGuard do ambiente de execução.

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 importantes 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 tempo de execução OpenXR que retornam uma âncora agora geram AnchorResourcesExhaustedException se encontrarem um código de erro informando que o limite de recursos OpenXR foi atingido.
  • A permissão android.permission.HAND_TRACKING agora é obrigatória para Session.create e Session.resume.

Novos recursos

  • Adicionamos suporte ao rastreamento de mãos.

Correções de bugs

  • A criação de âncoras é mais estável quando 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

Lançamento inicial do Jetpack XR Runtime. Essa biblioteca contém funcionalidades fundamentais para o conjunto de bibliotecas Jetpack XR. Isso inclui descoberta de recursos, gerenciamento do ciclo de vida, configuração e muito mais. A biblioteca de tempo 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 Jetpack XR.

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

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

Problemas conhecidos

  • No momento, configure não faz nada. As próximas versões vão adicionar novas configurações que podem ser usadas para controlar o comportamento do Session.