Winscope की मदद से ट्रेस कैप्चर करना

Winscope को स्थानीय तौर पर चलाएं या इसे वेब सर्वर से ऐक्सेस करें.

स्थानीय डेवलपमेंट और डीबग करने के लिए, Winscope का इस्तेमाल करके ट्रेस कैप्चर किए जा सकते हैं. Winscope, adb का इस्तेमाल करता है. यह यूएसबी या वाई-फ़ाई के ज़रिए डिवाइस को कनेक्ट करने की सुविधा देता है.

Winscope लॉन्च करने पर, Collect Traces स्क्रीन दिखती है.

डिवाइस कनेक्शन

Winscope में डिवाइसों को कनेक्ट करने के लिए, Winscope Proxy या Web Device Proxy का इस्तेमाल किया जा सकता है. डिफ़ॉल्ट रूप से, Winscope के होम पेज पर Winscope Proxy कनेक्शन सेटअप करने का यूज़र इंटरफ़ेस (यूआई) दिखता है.

ट्रेस कैप्चर करना शुरू करने के लिए, डिवाइस कनेक्शन के इन तरीकों में से कोई एक चुनें.

Winscope प्रॉक्सी सेटअप

Winscope Proxy सेट अप करने के लिए, यह तरीका अपनाएं:

  1. होम पेज के Collect Traces सेक्शन में, Select connection type मेन्यू से Winscope Proxy चुनें:

    Winscope Proxy का इस्तेमाल करके ट्रेस कैप्चर करना

    पहली इमेज. Winscope Proxy का इस्तेमाल करके ट्रेस कैप्चर करें.

  2. अपने ब्राउज़र से सीधे तौर पर ट्रेस कैप्चर करने के लिए, Winscope ADB Connect प्रॉक्सी लॉन्च करें. इसके लिए, यह निर्देश चलाएं:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. एक्ज़ीक्यूशन के बाद, टर्मिनल पर दिखने वाले Winscope प्रॉक्सी टोकन को नोट करें.

  4. Winscope ADB Connect प्रॉक्सी लॉन्च करने के बाद, स्क्रीन इस तरह बदल जाती है. प्रॉक्सी से शुरुआती कनेक्शन बनाने के लिए, तीसरे चरण में मिला Winscope प्रॉक्सी टोकन डालें. इसके बाद, कनेक्ट करें पर क्लिक करें.

    Winscope Proxy से कनेक्ट करना

    दूसरी इमेज. Winscope Proxy से कनेक्ट करें.

वेब डिवाइस प्रॉक्सी सेटअप करना

वेब डिवाइस प्रॉक्सी सेट अप करने के लिए, यह तरीका अपनाएं:

  1. होम पेज के कलेक्ट ट्रेस सेक्शन में, कनेक्शन टाइप चुनें मेन्यू से वेब डिवाइस प्रॉक्सी को चुनें:

    वेब डिवाइस प्रॉक्सी का इस्तेमाल करके ट्रेस कैप्चर करना

    तीसरी इमेज. वेब डिवाइस प्रॉक्सी का इस्तेमाल करके ट्रेस कैप्चर करें.

  2. अगर आपकी मशीन पर Web Device Proxy daemon नहीं है, तो Install पर क्लिक करें या installer चलाएं.

  3. डायलॉग बॉक्स के ज़रिए, Web Device Proxy को ऑरिजिन का ऐक्सेस दें.

    ऑरिजिन को WDP ऐक्सेस करने की अनुमति देना

    चौथी इमेज. ऑरिजिन को अनुमति दें.

  4. डिवाइस से पहली बार कनेक्ट करने पर, हर नए डिवाइस के लिए ऐक्सेस को अनुमति दें. अगर डायलॉग अपने-आप नहीं दिखता है, तो डिवाइस के बगल में मौजूद lock_open आइकॉन पर क्लिक करें:

    wdp_unauth_device

    पांचवीं इमेज. डिवाइस को अनुमति दें.

ट्रेस

ट्रेस इकट्ठा करने के लिए, यह तरीका अपनाएं:

  1. कनेक्ट होने के बाद, कैप्चर करने की प्रोसेस शुरू करने के लिए, टारगेट चुनें और सेटिंग कॉन्फ़िगर करें. इसके बाद, कैप्चर शुरू करने के लिए ट्रेस शुरू करें पर क्लिक करें:

    Winscope में ट्रेस इकट्ठा करना

    छठी इमेज. Winscope में ट्रेस इकट्ठा करें.

  2. कैप्चर करना बंद करने के लिए, ट्रेस बंद करें पर क्लिक करें:

    Winscope में ट्रेस बंद करें

    सातवीं इमेज. Winscope में ट्रेस करना बंद करें.

ट्रेस करने के विकल्प

इस सेक्शन में, हर ट्रेस टाइप के विकल्पों के बारे में बताया गया है.

स्क्रीन रिकॉर्डिंग

Winscope की मदद से, एक से ज़्यादा डिसप्ले की स्क्रीन रिकॉर्ड की जा सकती है. स्क्रीन रिकॉर्ड करने के लिए, मेन्यू से कोई डिसप्ले चुनें. अगर आपने कोई विकल्प नहीं चुना है, तो Winscope डिफ़ॉल्ट रूप से चालू डिसप्ले को रिकॉर्ड करता है.

SurfaceFlinger

  • बफ़र का साइज़: इससे SurfaceFlinger ट्रेस के लिए, मेमोरी में मौजूद रिंग बफ़र का साइज़ बदला जाता है. बड़ा बफ़र होने पर, ज़्यादा डेटा इकट्ठा किया जा सकता है. हालांकि, इससे मेमोरी का इस्तेमाल बढ़ जाता है.

  • इनपुट: अगर सर्फ़ेस में इनपुट डेटा मौजूद है, तो यह कुकी इनपुट विंडो की खास जानकारी को ट्रैक करती है.

  • कंपोज़िशन: यह कंपोज़िशन के टाइप और दिखने वाले क्षेत्र को ट्रैक करता है.

  • मेटाडेटा: यह अतिरिक्त सरफेस मेटाडेटा को ट्रैक करता है. इसमें ऑफ़स्क्रीन लेयर भी शामिल हैं.

  • HWC: यह हार्डवेयर कंपोज़र के अतिरिक्त अनस्ट्रक्चर्ड मेटाडेटा को ट्रैक करता है.

  • ट्रेस बफ़र: यह SurfaceFlinger को कॉन्फ़िगर करता है, ताकि वह सरफेस पर बफ़र में हुए सभी बदलावों को ट्रैक कर सके. डिफ़ॉल्ट रूप से, SurfaceFlinger सिर्फ़ तब नई स्थिति का पता लगाता है, जब ज्यामिति में बदलाव होता है.

  • वर्चुअल डिसप्ले: इसमें ट्रेस में वर्चुअल डिसप्ले लेयर शामिल होती हैं.

WindowManager

  • बफ़र का साइज़: यह WindowManager ट्रेस के लिए, मेमोरी में मौजूद रिंग बफ़र के साइज़ को अडजस्ट करता है. बड़ा बफ़र, ज़्यादा डेटा इकट्ठा करने की सुविधा देता है. हालांकि, इससे मेमोरी का इस्तेमाल बढ़ जाता है.
  • ट्रेसिंग टाइप: इससे, स्टेटस इकट्ठा करने की फ़्रीक्वेंसी के विकल्प तय किए जाते हैं:

    • frame: इस मोड में, WindowManager हर फ़्रेम के लिए एक ही स्थिति डंप करता है. इससे यह पक्का होता है कि सिर्फ़ WindowManager की मान्य स्थितियां कैप्चर की गई हैं. इस मोड में परफ़ॉर्मेंस ओवरहेड सबसे कम होता है.
    • transaction: यह मोड, WindowManager की स्थिति को तब रिकॉर्ड करता है, जब कोई लेन-देन पूरा हो जाता है. किसी फ़्रेम में कई लेन-देन किए जा सकते हैं. इसलिए, इससे फ़्रेम के दौरान WindowManager की इंटरमीडिएट स्थितियों को डीबग किया जा सकता है. हालांकि, इस मोड में फ़्रेम मोड की तुलना में परफ़ॉर्मेंस ओवरहेड ज़्यादा होता है.
  • ट्रेसिंग लेवल: इससे WindowManager के ट्रेस की वर्बोसिटी तय होती है:

    • ज़्यादा जानकारी: इसमें हर विंडो के लिए सभी विंडो और कॉन्फ़िगरेशन की जानकारी शामिल होती है. इस मोड में, मेमोरी और परफ़ॉर्मेंस ओवरहेड सबसे ज़्यादा होता है.
    • debug: इसमें सभी विंडो के बारे में जानकारी शामिल होती है. हालांकि, अगर इसमें अनुरोध किया गया ओवरराइड कॉन्फ़िगरेशन शामिल है, तो यह सिर्फ़ विंडो कॉन्फ़िगरेशन को लॉग करता है.
    • गंभीर: इसमें डीबग मोड वाली जानकारी शामिल होती है. हालांकि, इसमें सिर्फ़ दिखने वाली विंडो शामिल होती हैं. इस मोड में, मेमोरी और परफ़ॉर्मेंस ओवरहेड सबसे कम होता है.

डंप

Winscope का इस्तेमाल करके, स्टेट डंप लेने के लिए होम पेज पर, कलेक्ट ट्रेस में जाकर, डंप टैब चुनें. इसके बाद, डंप स्टेट पर क्लिक करें:

Winscope में डंप की स्थिति

आठवीं इमेज. Winscope में डंप की स्थिति.

स्क्रीनशॉट कॉन्फ़िगरेशन

Winscope की मदद से, एक से ज़्यादा डिसप्ले का स्क्रीनशॉट लिया जा सकता है. स्क्रीनशॉट लेने के लिए, मेन्यू से कोई डिसप्ले चुनें. अगर कोई विकल्प नहीं चुना जाता है, तो चालू डिसप्ले का स्क्रीनशॉट इकट्ठा किया जाता है.