Journalisation des appels ARCore

Lorsque vous corrigez des problèmes de comportement et de performances lors de l'exécution de votre application Android, vous pouvez enregistrer les appels d'API ARCore dans le journal des appareils Android.

Lorsque vous activez la journalisation des appels, ARCore consigne tous les appels d'API avec leur nom d'API C, quel que soit le SDK avec lequel l'application a été créée. Vous trouverez tous les noms d'API C dans la documentation de référence de l'API C, avec leurs paramètres et leurs valeurs de retour.

Activer la journalisation des appels d'API

Les appels d'API ARCore qui n'acceptent pas de paramètres ArSession* tels que les fonctions *_destroy et *_release ne sont pas consignés.

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

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

    • 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 active soit en cours d'exécution. Votre application doit être en mode RA pour recevoir la diffusion qui active la journalisation. Les images d'aperçu de la caméra RA doivent être visibles sur l'écran de l'appareil.

  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 active soit en cours d'exécution. Votre application doit être en mode RA pour recevoir l'annonce qui désactive la journalisation. Les images d'aperçu de la caméra RA doivent être visibles sur l'écran de l'appareil.

  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 la sortie

ARCore utilise le tag ARCore-Api pour toutes les sorties de journalisation de l'API ARCore. Utilisez la commande suivante pour ne filtrer que 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 de la sortie pour réduire le spam dans les journaux. Elle agrège les messages de journal ignorés en 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)