ARCore कॉल लॉगिंग

अपने Android ऐप्लिकेशन में रनटाइम के व्यवहार और परफ़ॉर्मेंस की समस्याओं को हल करने के दौरान, आप ARCore API कॉल को Android डिवाइस लॉग में लॉग कर सकते हैं.

कॉल लॉग करने की सुविधा चालू करने पर, ARCore सभी एपीआई कॉल को अपने C API नाम के साथ लॉग करेगा. इससे कोई फ़र्क़ नहीं पड़ता कि ऐप्लिकेशन को किसी भी SDK टूल की मदद से बनाया गया है. सभी सी एपीआई नामों को C API रेफ़रंस दस्तावेज़ में, उनके पैरामीटर और रिटर्न वैल्यू के साथ देखा जा सकता है.

एपीआई कॉल लॉग करने की सुविधा चालू करें

ऐसे ARCore API कॉल लॉग नहीं किए जाते हैं जो ArSession* पैरामीटर नहीं लेते हैं, जैसे कि *_destroy और *_release फ़ंक्शन.

ARCore API कॉल लॉग करने की सुविधा चालू करने के लिए, यह तरीका अपनाएं.

  1. पक्का करें कि Google Play Services for 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. अपने ऐप्लिकेशन में एआर (ऑगमेंटेड रिएलिटी) अनुभव खोलें, ताकि उसमें एक चालू 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-Api टैग का इस्तेमाल करता है. सिर्फ़ उन कॉल को फ़िल्टर करने के लिए, नीचे दिए गए कमांड का इस्तेमाल करें.

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