Registro de llamadas de ARCore

Cuando solucionas problemas de rendimiento y comportamiento del tiempo de ejecución en tu app para Android, puedes registrar las llamadas a la API de ARCore en el registro de dispositivos Android.

Cuando habilites el registro de llamadas, ARCore registrará todas las llamadas a la API con su nombre de API en C, independientemente del SDK con el que se compiló la app. Todos los nombres de la API de C se pueden encontrar en la documentación de referencia de la API de C, junto con sus parámetros y valores que se muestran.

Habilita el registro de llamadas a la API

Las llamadas a la API de ARCore que no aceptan parámetros ArSession*, como las funciones *_destroy y *_release, no se registran.

Sigue estos pasos para habilitar el registro de llamadas a la API de ARCore.

  1. Asegúrate de que los Servicios de Google Play para RA (ARCore) 1.23 o una versión posterior estén instalados:

    • En Windows, ejecuta adb shell pm dump com.google.ar.core | findstr /i "packages: versionName".
    • En macOS, ejecuta adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:.
  2. Abre la experiencia de RA en tu app para que haya una sesión activa de ARCore en ejecución. Tu app debe estar en modo de RA para recibir la transmisión que habilita el registro. Las imágenes de vista previa de la cámara de RA deben estar visibles en la pantalla del dispositivo.

  3. Usa el siguiente comando de emisión del administrador de actividades para habilitar el registro de llamadas de tu app.

    # Enables ARCore call logging and saves a setting to your app's
    # Android Shared Preferences, so that call logging remains enabled in
    # subsequent ARCore sessions.
    
    # Your app must have an actively running ARCore session to receive the broadcast.
    adb shell am broadcast -a com.google.ar.core.ENABLE_API_CALL_LOGGING
    

Inhabilitar el registro de llamadas a la API

Sigue estos pasos para inhabilitar el registro de llamadas a la API de ARCore.

  1. Abre la experiencia de RA en tu app para que haya una sesión activa de ARCore en ejecución. Tu app debe estar en modo de RA para recibir la transmisión que inhabilita el registro. Las imágenes de vista previa de la cámara de RA deben estar visibles en la pantalla del dispositivo.

  2. Usa el siguiente comando de emisión del administrador de actividades para inhabilitar el registro de llamadas de tu app:

    # Disables ARCore call logging and saves a setting to your app's
    # Android Shared Preferences, so that call logging remains disabled in
    # subsequent ARCore sessions.
    
    # Your app must have an actively running ARCore session to receive the broadcast.
    adb shell am broadcast -a com.google.ar.core.DISABLE_API_CALL_LOGGING
    

Visualiza el resultado

ARCore usa la etiqueta ARCore-Api para todos los resultados de registro de la API de ARCore. Usa el siguiente comando para filtrar solo esas llamadas.

# Currently, ARCore only logs API calls that take an `ArSession*` argument.
# Functions that do not take session parameters such as `*_destroy` and `*_release` are not logged.
# -s is equivalent to the filter expression '*:S', which sets priority for all tags to silent.

adb logcat -s ARCore-Api

ARCore limita la frecuencia de salida para reducir el spam en los registros. Agrega los mensajes de registro omitidos en un solo mensaje de registro.

Resultado de ejemplo de mensajes de registro omitidos:

D ARCore-Api: ArFrame_create(<ptr>)
D ARCore-Api: ArSession_update(<ptr>) -> AR_SUCCESS
D ARCore-Api: ArFrame_acquireCamera(<ptr>, <ptr>)
D ARCore-Api: ArFrame_getDisplayGeometryChanged(<ptr>, <ptr>)
D ARCore-Api: ArCamera_getTrackingFailureReason(<ptr>, <ptr>)
D ARCore-Api: ArFrame_getTimestamp(<ptr>, <ptr>)
D ARCore-Api: ArSession_setDisplayGeometry(0, 1080, 2195)
D ARCore-Api: ArFrame_create(<ptr>) (suppressing for 10s)
D ARCore-Api: ArSession_update(<ptr>) -> AR_SUCCESS (suppressing for 10s)
D ARCore-Api: ArFrame_acquireCamera(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArFrame_getDisplayGeometryChanged(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArCamera_getTrackingFailureReason(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArFrame_getTimestamp(<ptr>, <ptr>) (suppressing for 10s)
D ARCore-Api: ArSession_setDisplayGeometry(0, 1080, 2195) (suppressing for 10s)