Rejestrowanie połączeń ARCore

Podczas rozwiązywania problemów z działaniem i wydajnością środowiska wykonawczego w Androidzie możesz rejestrować wywołania interfejsu ARCore API w Dziennik urządzenia z Androidem

Gdy włączysz logowanie połączeń, ARCore będzie rejestrować wszystkie wywołania interfejsu API za pomocą interfejsu C API niezależnie od pakietu SDK, za pomocą którego aplikacja została utworzona. Wszystkie nazwy interfejsów API C znajdziesz w dokumentacji referencyjnej interfejsu C API, wraz z ich parametry i zwracane wartości.

Włącz logowanie wywołań interfejsu API

Wywołania interfejsu ARCore API, które nie przyjmują parametrów ArSession*, takich jak *_destroy i *_release nie są logowane.

Aby włączyć logowanie wywołań interfejsu ARCore API, wykonaj te czynności.

  1. Upewnij się, że są zainstalowane Usługi Google Play dla AR (ARCore) w wersji 1.23 lub nowszej:

    • W systemie Windows użyj polecenia adb shell pm dump com.google.ar.core | findstr /i "packages: versionName".
    • W systemie macOS uruchom adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:.
  2. Otwórz środowisko AR w aplikacji, aby była aktywna sesja ARCore w domu. Aplikacja musi działać w trybie AR, aby odebrać komunikat, który umożliwia Obrazy podglądu z aparatu AR powinny być widoczne na urządzeniu ekranu.

  3. Aby włączyć rejestrowanie połączeń, użyj tego polecenia transmisji menedżera aktywności: dla Twojej aplikacji.

    # 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
    

Wyłącz logowanie wywołań interfejsu API

Aby wyłączyć logowanie wywołań interfejsu ARCore API, wykonaj te czynności.

  1. Otwórz środowisko AR w aplikacji, aby była aktywna sesja ARCore w domu. Aplikacja musi działać w trybie AR, aby odebrać komunikat, który wyłącza się Obrazy podglądu z aparatu AR powinny być widoczne na urządzeniu ekranu.

  2. Aby wyłączyć rejestrowanie połączeń, użyj tego polecenia transmisji menedżera aktywności dla Twojej aplikacji:

    # 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
    

Wyświetlanie danych wyjściowych

ARCore używa tagu ARCore-Api na potrzeby logowania w interfejsie ARCore API. Użyj to polecenie, aby odfiltrować tylko te wywołania.

# 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

Szybkość ARCore ogranicza dane wyjściowe, aby zmniejszyć ilość spamu w logach. Agreguje pominięte logi wiadomości w jednym komunikacie dziennika.

Przykładowe dane wyjściowe pominiętych komunikatów logu:

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)