Risoluzione dei problemi di prestazioni e comportamento di runtime sul tuo dispositivo Android puoi registrare le chiamate API ARCore nell'app Log del dispositivo Android.
Quando abiliti il logging delle chiamate, ARCore registrerà tutte le chiamate API con la propria API C. a prescindere dall'SDK con cui è stata creata l'app. Tutti i nomi delle API C possono sono disponibili nella documentazione di riferimento dell'API C, oltre i relativi parametri e restituiscono i valori.
Attiva il logging delle chiamate API
Chiamate API ARCore che non accettano parametri ArSession*
come *_destroy
e le funzioni *_release
non vengono registrate.
Segui questi passaggi per abilitare il logging delle chiamate API ARCore.
Assicurati che sia installato Google Play Services per AR (ARCore) 1.23 o versioni successive:
- Su Windows, esegui
adb shell pm dump com.google.ar.core | findstr /i "packages: versionName"
. - Su macOS, esegui
adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:
.
- Su Windows, esegui
Apri l'esperienza AR nella tua app in modo che ci sia una sessione ARCore attiva in esecuzione. L'app deve essere in modalità AR per ricevere la trasmissione che consente logging. Le immagini di anteprima della fotocamera AR devono essere visibili sul dispositivo schermo.
Utilizza il seguente comando di broadcast di Activity Manager per abilitare il logging delle chiamate: per la tua 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
Disattiva il logging delle chiamate API
Segui questi passaggi per disattivare il logging delle chiamate API di ARCore.
Apri l'esperienza AR nella tua app in modo che ci sia una sessione ARCore attiva in esecuzione. La tua app deve essere in modalità AR per ricevere la trasmissione che disattiva logging. Le immagini di anteprima della fotocamera AR devono essere visibili sul dispositivo schermo.
Utilizza il seguente comando di broadcast di Activity Manager per disabilitare il logging delle chiamate per la tua 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
Visualizzazione dell'output
ARCore utilizza il tag ARCore-Api
per tutti gli output di log dell'API ARCore. Utilizza la
successivo per filtrare solo quelle chiamate.
# 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 frequenza dell'output per ridurre lo spam nei log. Aggrega i log ignorati in un unico messaggio di log.
Output di esempio dei messaggi di log ignorati:
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)