Journalisation des appels ARCore

Lors de la résolution des problèmes de comportement et de performances de l'environnement d'exécution dans votre vous pouvez enregistrer les appels d'API ARCore dans Journal d'un appareil Android

Lorsque vous activez la journalisation des appels, ARCore consigne tous les appels d'API avec son API C quel que soit le SDK avec lequel l'application a été créée. Tous les noms d'API C peuvent consultez la documentation de référence de l'API C, ainsi que leurs paramètres et les valeurs renvoyées.

Activer la journalisation des appels d'API

Appels d'API ARCore qui n'acceptent pas les paramètres ArSession* tels que *_destroy et *_release ne sont pas consignées.

Suivez ces étapes pour activer la journalisation des appels de l'API ARCore.

  1. Assurez-vous que la version 1.23 ou ultérieure des Services Google Play pour la RA (ARCore) est installée:

    • Sous Windows, exécutez adb shell pm dump com.google.ar.core | findstr /i "packages: versionName".
    • Sous macOS, exécutez adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:.
  2. Ouvrez l'expérience de RA dans votre application pour qu'une session ARCore soit active. en cours d'exécution. Votre application doit être en mode RA pour recevoir la diffusion qui active Logging. Les images d'aperçu de la caméra en RA doivent être visibles sur l'appareil l'écran.

  3. Utilisez la commande de diffusion suivante du gestionnaire d'activités pour activer la journalisation des appels: pour votre application.

    # 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
    

Désactiver la journalisation des appels d'API

Pour désactiver la journalisation des appels de l'API ARCore, procédez comme suit :

  1. Ouvrez l'expérience de RA dans votre application pour qu'une session ARCore soit active. en cours d'exécution. Votre appli doit être en mode RA pour recevoir la diffusion qui désactive Logging. Les images d'aperçu de la caméra en RA doivent être visibles sur l'appareil l'écran.

  2. Utilisez la commande de diffusion suivante du gestionnaire d'activités pour désactiver la journalisation des appels. pour votre application:

    # 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
    

Afficher le résultat

ARCore utilise le tag ARCore-Api pour toute la sortie de journalisation de l'API ARCore. Utilisez les pour filtrer uniquement ces appels.

# 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 limite le débit des résultats pour réduire le spam dans les journaux. Il regroupe les journaux ignorés dans un seul message de journal.

Exemple de sortie de messages de journal ignorés:

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)