تسجيل مكالمات ARCore

عند تحديد المشاكل في سلوك وأدائك أثناء وقت التشغيل وحلّها في تطبيق Android، يمكنك تسجيل طلبات ARCore API في سجلّ جهاز Android.

عند تفعيل تسجيل المكالمات، ستسجّل ARCore جميع طلبات البيانات من واجهة برمجة التطبيقات باستخدام اسمها الخاص بواجهة برمجة التطبيقات C، بغض النظر عن حزمة تطوير البرامج (SDK) التي تم إنشاء التطبيق باستخدامها. يمكن العثور على جميع أسماء C API في المستندات المرجعية لـ C API، بالإضافة إلى المعلَمات والقيم المعروضة.

تفعيل تسجيل طلبات البيانات من واجهة برمجة التطبيقات

ولا يتم تسجيل طلبات البيانات من واجهة برمجة التطبيقات ARCore التي لا تستخدم معلَمات ArSession*، مثل الدالتَين *_destroy و*_release.

يمكنك اتّباع الخطوات التالية لتفعيل تسجيل مكالمات ARCore API.

  1. يُرجى التأكُّد من تثبيت الإصدار 1.23 من "خدمات Google Play للواقع المعزّز" (ARCore) أو إصدار أحدث:

    • على نظام التشغيل 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. افتح تجربة الواقع المعزّز في تطبيقك لكي يكون هناك جلسة ARCore نشطة. يجب أن يكون التطبيق في وضع الواقع المعزّز لاستقبال البث الذي يمكِّن التسجيل. يجب أن تكون صور معاينة كاميرا الواقع المعزّز مرئية على شاشة الجهاز.

  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
    

إيقاف تسجيل طلبات البيانات من واجهة برمجة التطبيقات

يمكنك اتّباع الخطوات التالية لإيقاف تسجيل مكالمات ARCore API.

  1. افتح تجربة الواقع المعزّز في تطبيقك لكي يكون هناك جلسة ARCore نشطة. يجب أن يكون التطبيق في وضع "الواقع المعزّز" لتلقّي البث الذي يوقف التسجيل. يجب أن تكون صور معاينة كاميرا الواقع المعزّز مرئية على شاشة الجهاز.

  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 لجميع مخرجات تسجيل واجهة برمجة تطبيقات 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)