Consideraciones de rendimiento

Para crear experiencias del usuario atractivas y con RA, es importante que tu app habilitada con RA tenga un buen rendimiento.

Asegúrate de que tu app cumpla con lo siguiente:

  • Se siente responsiva a las entradas del usuario, lo que incluye gestos táctiles y movimientos del dispositivo.
  • Se procesa a una velocidad de fotogramas razonable y coherente. En general, los usuarios prefieren velocidades de fotogramas coherentes y más bajas en comparación con las que son variables y superiores.
  • Minimiza el consumo de batería, lo que permite que el usuario use el dispositivo para otras tareas durante el día o participe más tiempo en la experiencia de RA.
  • Construye una experiencia atractiva en la que el contenido generado por esta tecnología parece estable en relación con el entorno y se integra de forma realista con él.

Prácticas recomendadas para mejorar el rendimiento

Para crear experiencias de RA más atractivas, ten en cuenta las siguientes prácticas recomendadas al diseñar.

Usa anuncios fijos para mejorar el rendimiento del seguimiento

Si bien es posible colocar el contenido 3D con coordenadas de espacio mundial, siempre usa un anclaje siempre que sea posible. ARCore garantiza que los anclas parezcan estables en relación con el mundo, aunque las coordenadas del espacio mundial subyacentes cambien y puedan saltar con el tiempo cada vez que ARCore actualice su comprensión del mundo.

En ocasiones, los objetos virtuales que no están adjuntos a un ancla parecerán saltar y no parecerán estables en relación con el entorno. Esto puede hacer que la experiencia de RA sea menos atractiva para los usuarios.

Considera las características de rendimiento específicas del dispositivo

Los dispositivos compatibles con ARCore abarcan una amplia gama de características de hardware y rendimiento. El rendimiento del dispositivo puede variar por los siguientes motivos:

  • CPU/GPU del dispositivo, velocidad de reloj
  • Memoria y ancho de banda disponibles
  • Calidad del sensor de la cámara o IMU
  • Otras diferencias de hardware
  • Controladores de dispositivos y sistemas operativos

Te recomendamos que pruebes tu app en diferentes clases de dispositivos que representen los dispositivos que usarán los usuarios.

Inhabilita las funciones con uso intensivo de CPU cuando no esté en uso

Algunas funciones de ARCore aumentan el uso de CPU mientras están habilitadas. Procura inhabilitar estas funciones cuando la experiencia de RA no las requiera. Esto hará que los ciclos de CPU adicionales estén disponibles para tu app y mejorará el rendimiento térmico y la duración de batería.

Actualmente, el uso de CPU de ARCore aumenta cuando Instant Placement o Augmented Images están habilitados para la sesión actual. Sigue estos lineamientos para aumentar la eficiencia del uso de CPU:

  • Se debe inhabilitar Instant Placement una vez que se establezca el seguimiento completo. La función se puede inhabilitar en la configuración de la sesión.

  • Debes inhabilitar Augmented Images siempre que la función no sea necesaria para la experiencia de RA. Para inhabilitar las imágenes aumentadas, configura una base de datos null o vacía de imágenes aumentadas en la configuración de la sesión.

Supervisa la temperatura del dispositivo

Durante el desarrollo y las pruebas de control de calidad, puedes usar las APIs térmicas de Android para supervisar y realizar un seguimiento del rendimiento de la app en el dispositivo.

Asegúrate de usar una compilación de producción de tu app (y no una compilación de desarrollo o qa de tu app que pueda tener diferentes características de rendimiento del tiempo de ejecución.

Identifica la falta de CPU de ARCore

Cuando una sesión de ARCore está activa, tu app debe compartir recursos limitados de CPU y GPU para dispositivos móviles con ARCore. Las apps vinculadas a la CPU pueden competir con los recursos de CPU necesarios para el seguimiento de movimiento.

Para comprobar que la localización y asignación simultánea (SLAM) de ARCore se pueda ejecutar normalmente, comprueba que el mensaje "VIOfrequency low" no aparezca en los registros del dispositivo Android:

adb logcat | grep 'VIO frequency low'

Evita la falta de CPU de ARCore

Cuando una sesión de ARCore está activa, tu app debe compartir un dispositivo de recursos limitados de CPU y GPU del dispositivo móvil con ARCore. Las apps vinculadas a la CPU pueden competir con los recursos de CPU necesarios para el seguimiento de movimiento.

Crea previamente las bases de datos de imágenes aumentadas

Cuando sea posible, crea previamente tus bases de datos de imágenes aumentadas en el momento del desarrollo. Si es necesario crear bases de datos de imágenes aumentadas en el tiempo de ejecución o agregar imágenes de forma dinámica a una base de datos existente, asegúrate de agregar imágenes en un subproceso en segundo plano para evitar bloquear el subproceso de IU principal.

Limita la cantidad de transmisiones de la cámara solicitadas

Cuando se usa la cámara compartida de Java, las apps pueden solicitar transmisiones de imágenes de CPU o GPU adicionales.