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.
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:
.
- W systemie Windows użyj polecenia
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.
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.
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.
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)