רישום שיחות ב-ARCore

במהלך פתרון בעיות בהתנהגות ובביצועים בסביבת זמן הריצה ב-Android אפשר לרשום קריאות ל-ARCore API יומן מכשיר Android.

כשמפעילים רישום ביומן של שיחות, ARCore רושם את כל הקריאות ל-API באמצעות ה-C API שלו ללא קשר ל-SDK שבעזרתו האפליקציה נוצרה. כל השמות של C API יכולים במאמרי העזרה של C API, וגם את הפרמטרים שלהם ולהחזיר ערכים.

הפעלת הרישום ביומן הקריאות ל-API

קריאות ל-ARCore API שלא משתמשות בפרמטרים של ArSession* כמו *_destroy והפונקציות *_release לא נרשמות ביומן.

כדי להפעיל רישום ביומן של קריאות ב-ARCore API, צריך לפעול לפי השלבים הבאים.

  1. מוודאים ש-Google Play Services ל-AR (ARCore) מגרסה 1.23 ואילך מותקנת:

    • ב-Windows, מריצים את adb shell pm dump com.google.ar.core | findstr /i "packages: versionName".
    • ב-macOS, מריצים את הפקודה adb shell pm dump com.google.ar.core | egrep -i versionName\|packages:.
  2. צריך לפתוח את חוויית ה-AR באפליקציה כדי שיהיה סשן ARCore פעיל ריצה. האפליקציה חייבת להיות במצב AR כדי לקבל שידור שמאפשר רישום ביומן. תמונות התצוגה המקדימה של מצלמת ה-AR צריכות להיות גלויות במכשיר. מסך.

  3. כדי להפעיל רישום ביומן של שיחות, משתמשים בפקודת השידור הבאה של מנהל הפעילות: לאפליקציה.

    # 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
    

השבתת הרישום של קריאות ל-API ביומן

כדי להשבית את הרישום ביומן הקריאות של ה-API של ARCore, צריך לפעול לפי השלבים הבאים.

  1. צריך לפתוח את חוויית ה-AR באפליקציה כדי שיהיה סשן ARCore פעיל ריצה. האפליקציה חייבת להיות במצב AR כדי לקבל את השידור שמשבית את השידור רישום ביומן. תמונות התצוגה המקדימה של מצלמת ה-AR צריכות להיות גלויות במכשיר. מסך.

  2. כדי להשבית רישום ביומן של שיחות, משתמשים בפקודת השידור הבאה של מנהל הפעילות עבור האפליקציה:

    # 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
    

צפייה בפלט

ב-ARCore נעשה שימוש בתג ARCore-Api בכל פלט הרישום של ה-API ב-ARCore. משתמשים ב את הפקודות הבאות כדי לסנן רק את הקריאות האלה.

# 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

קצב ARCore מגביל את הפלט כדי לצמצם את הספאם ביומן. הוא צובר יומן שדילגת עליו הודעות בהודעת יומן אחת.

פלט לדוגמה של הודעות יומן שדילגת עליהן:

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)