Saat memecahkan masalah perilaku runtime dan performa di Android Anda dapat mencatat panggilan API ARCore ke Log perangkat Android.
Jika Anda mengaktifkan logging panggilan, ARCore akan mencatat semua panggilan API dengan C API-nya. terlepas dari SDK yang digunakan untuk membuat aplikasi tersebut. Semua nama API C dapat dapat ditemukan di dokumentasi referensi API C, beserta parameternya dan nilai yang ditampilkan.
Mengaktifkan logging panggilan API
Panggilan API ARCore yang tidak menggunakan parameter ArSession*
seperti *_destroy
dan fungsi *_release
tidak dicatat.
Ikuti langkah-langkah berikut untuk mengaktifkan logging panggilan API ARCore.
Pastikan Layanan Google Play untuk AR (ARCore) 1.23 atau yang lebih baru telah diinstal:
- Di Windows, jalankan
adb shell pm dump com.google.ar.core | findstr /i "packages: versionName"
. - Di macOS, jalankan
adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:
.
- Di Windows, jalankan
Buka pengalaman AR di aplikasi Anda agar ada sesi ARCore yang aktif sedang berjalan. Aplikasi Anda harus berada dalam mode AR agar dapat menerima siaran yang memungkinkan . Gambar pratinjau kamera AR harus terlihat di perangkat layar.
Gunakan perintah siaran pengelola aktivitas berikut untuk mengaktifkan logging panggilan: untuk aplikasi Anda.
# 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
Menonaktifkan logging panggilan API
Ikuti langkah-langkah ini untuk menonaktifkan logging panggilan API ARCore.
Buka pengalaman AR di aplikasi Anda agar ada sesi ARCore yang aktif sedang berjalan. Aplikasi Anda harus berada dalam mode AR untuk menerima siaran yang dinonaktifkan . Gambar pratinjau kamera AR harus terlihat di perangkat layar.
Gunakan perintah siaran pengelola aktivitas berikut untuk menonaktifkan logging panggilan untuk aplikasi Anda:
# 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
Melihat output
ARCore menggunakan tag ARCore-Api
untuk semua output logging ARCore API. Gunakan
perintah berikut untuk memfilter hanya panggilan tersebut.
# 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
Kapasitas ARCore membatasi output untuk mengurangi spam log. Ini menggabungkan log yang dilewati menjadi satu pesan log.
Contoh output pesan log yang dilewati:
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)