Registro de llamadas de ARCore

Cuando solucionas problemas de rendimiento y comportamiento del tiempo de ejecución en tu dispositivo Android puedes registrar las llamadas a la API de ARCore Registro de dispositivos Android

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

Habilita el registro de llamadas a la API

Llamadas a la API de ARCore que no toman parámetros ArSession*, como *_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 esté instalado los Servicios de Google Play para RA (ARCore) 1.23 o una versión posterior:

    • 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 de ARCore activa en ejecución. La app debe estar en modo RA para recibir la transmisión que habilita de los datos. Las imágenes de vista previa de la cámara de RA deberían ser visibles en el dispositivo en la pantalla.

  3. Usa el siguiente comando de transmisión del administrador de actividades para habilitar el registro de llamadas: para 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 de ARCore activa en ejecución. La app debe estar en modo RA para recibir la transmisión que inhabilita de los datos. Las imágenes de vista previa de la cámara de RA deberían ser visibles en el dispositivo en la pantalla.

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

    # 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

La velocidad de ARCore limita la salida para reducir el spam de registros. Agrega el registro omitido mensajes 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)