Logging panggilan ARCore

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.

  1. 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:.
  2. 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.

  3. 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.

  1. 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.

  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 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)