Logging panggilan ARCore

Saat memecahkan masalah perilaku dan performa runtime di aplikasi Android, Anda dapat mencatat panggilan ARCore API ke dalam log perangkat Android.

Saat Anda mengaktifkan logging panggilan, ARCore akan mencatat semua panggilan API dengan nama C API-nya, terlepas dari SDK yang digunakan untuk mem-build aplikasi. Semua nama C API dapat ditemukan di dokumentasi referensi C API, beserta parameter dan nilai yang ditampilkan.

Aktifkan logging panggilan API

Panggilan ARCore API yang tidak menggunakan parameter ArSession* seperti fungsi *_destroy dan *_release tidak akan dicatat ke dalam log.

Ikuti langkah-langkah berikut untuk mengaktifkan logging panggilan ARCore API.

  1. Pastikan Layanan Google Play untuk AR (ARCore) 1.23 atau yang lebih baru 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:.
  2. Buka pengalaman AR di aplikasi Anda sehingga ada sesi ARCore aktif yang sedang berjalan. Aplikasi Anda harus berada dalam mode AR untuk menerima siaran yang memungkinkan logging. Gambar pratinjau kamera AR akan terlihat di layar perangkat.

  3. Gunakan perintah broadcast manager 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
    

Nonaktifkan logging panggilan API

Ikuti langkah-langkah berikut untuk menonaktifkan logging panggilan ARCore API.

  1. Buka pengalaman AR di aplikasi Anda sehingga ada sesi ARCore aktif yang sedang berjalan. Aplikasi Anda harus berada dalam mode AR untuk menerima siaran yang menonaktifkan logging. Gambar pratinjau kamera AR akan terlihat di layar perangkat.

  2. 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 panggilan tersebut saja.

# 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

Kecepatan ARCore membatasi output untuk mengurangi spam log. Menggabungkan pesan log yang dilewati ke dalam 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)