Considerações sobre desempenho

Para criar experiências do usuário envolventes, é importante que seu app compatível com RA tenha um bom desempenho.

Confira se o app:

  • Parece responsiva à entrada do usuário, o que inclui gestos de toque e movimentos do dispositivo.
  • Renderiza a um frame rate razoável e consistente. Os usuários geralmente preferem frame rates consistentes e menores do que os variáveis e mais altos.
  • Minimiza o consumo de bateria, permitindo que o usuário use o dispositivo para outras tarefas ao longo do dia ou interaja por mais tempo com sua experiência de RA.
  • Cria uma experiência de RA atraente, em que o conteúdo gerado parece estável em relação ao ambiente e se integra de maneira realista a ele.

Práticas recomendadas de desempenho

Para criar experiências de RA mais atraentes, projete com as seguintes práticas recomendadas.

Use âncoras para melhorar o desempenho de acompanhamento

Embora seja possível posicionar seu conteúdo 3D usando coordenadas de espaço mundial, sempre use uma âncora sempre que possível. O ARCore garante que as âncoras pareçam estáveis em relação ao mundo, mesmo que as coordenadas espaciais subjacentes mudem e possam mudar com o tempo sempre que o ARCore atualizar sua compreensão do mundo.

Às vezes, objetos virtuais que não estão anexados a uma âncora podem pular e não parecer estáveis em relação ao ambiente. Isso pode tornar a experiência de RA menos atraente para os usuários.

Considerar as características de desempenho específicas do dispositivo

Os dispositivos com suporte ao ARCore abrangem uma ampla variedade de características de hardware e desempenho. O desempenho do dispositivo pode variar devido a:

  • CPU/GPU do dispositivo, velocidade do clock
  • Memória e largura de banda disponíveis
  • Qualidade do sensor de câmera/IMU
  • Outras diferenças de hardware
  • Drivers de dispositivos e sistema operacional

Recomendamos testar seu app em diferentes classes de dispositivos que representam os dispositivos que os usuários vão usar.

Desativar recursos de uso intensivo da CPU quando ela não estiver em uso

Quando ativados, alguns recursos do ARCore aumentam o uso da CPU. Desative esses recursos quando a experiência de RA não exigir eles. Isso vai disponibilizar mais ciclos de CPU para o app e melhorar o desempenho térmico e a duração da bateria.

Atualmente, a utilização da CPU do ARCore aumenta quando Instant Placement e/ou Augmented Images estão ativados para a sessão atual. Siga estas diretrizes para aumentar a eficiência da utilização da CPU:

  • Instant Placement precisa ser desativado depois que o rastreamento completo for estabelecido. O recurso pode ser desativado na configuração da sessão.

  • O Augmented Images precisa ser desativado sempre que o recurso não for necessário para sua experiência de RA. Para desativar as imagens aumentadas, configure um banco de dados de imagens aumentadas null ou vazio na configuração da sessão.

Monitorar a temperatura do dispositivo

Durante o desenvolvimento e os testes de controle de qualidade, é possível usar as APIs térmicas do Android para monitorar e acompanhar o desempenho do app no dispositivo.

Use um build de produção do app, e não um build de desenvolvimento ou qa, que possa ter características diferentes de desempenho no tempo de execução.

Identificar a insuficiência da CPU no ARCore

Quando uma sessão do ARCore está ativa, seu app precisa compartilhar recursos limitados de CPU e GPU de dispositivos móveis com o ARCore. Os apps vinculados à CPU podem competir com os recursos necessários para o rastreamento de movimento.

Para verificar se a localização e mapeamento simultâneos (SLAM, na sigla em inglês) do ARCore podem ser executadas normalmente, confira se a mensagem "Frequência baixa do VIO" não aparece nos registros do dispositivo Android:

adb logcat | grep 'VIO frequency low'

Evitar a privação da CPU do ARCore

Quando uma sessão do ARCore está ativa, seu app precisa compartilhar um dispositivo móvel limitado de recursos de GPU e CPU para dispositivos móveis com o ARCore. Os apps vinculados à CPU podem competir com os recursos necessários para o rastreamento de movimento.

Criar previamente os bancos de dados de imagens aumentadas

Quando possível, crie previamente seus bancos de dados de imagens aumentadas no momento do desenvolvimento. Se for necessário criar bancos de dados de imagens aumentadas no momento da execução ou adicionar imagens dinamicamente a um banco de dados já existente, adicione imagens em uma linha de execução em segundo plano para evitar o bloqueio da linha de execução de interface principal.

Limitar o número de streams de câmera solicitados

Ao usar a câmera compartilhada Java, os apps podem solicitar streams adicionais de imagem da CPU ou GPU.