सरफ़ेसफ्लिंगर

SurfaceFlinger के डंप, किसी खास समय पर SurfaceFlinger का स्नैपशॉट देते हैं. SurfaceFlinger ट्रैस में, समय के हिसाब से स्टेटस का क्रम होता है. इससे, यह अहम जानकारी मिलती है कि स्क्रीन पर विंडो कैसे दिखती है. साथ ही, यह भी तय होता है कि किसी खास जगह पर टच रिस्पॉन्स किस विंडो को मिलता है. यह जानकारी, ऐप्लिकेशन मेरे टच का जवाब नहीं दे रहा है या वीडियो देखते समय मुझे फ़्लिकरिंग की समस्या आ रही है जैसी समस्याओं को हल करने के लिए ज़रूरी है.

Winscope का SurfaceFlinger व्यूअर, ऐक्टिव मोड का इस्तेमाल करके इकट्ठा किए गए ट्रेस के लिए यह जानकारी दिखाता है. इसके अलावा, गड़बड़ी की रिपोर्ट (डिफ़ॉल्ट रूप से, Droidfood कॉन्फ़िगरेशन) लेने के दौरान, लेन-देन के ट्रेस से जनरेट किए गए ट्रेस के लिए भी यह जानकारी दिखती है. साथ ही, डंप के लिए भी यह जानकारी दिखती है.

ट्रेस इकट्ठा करने के बारे में ज़्यादा जानकारी के लिए, SurfaceFlinger (लेयर) देखें.

SurfaceFlinger ट्रैक का विश्लेषण

पहली इमेज. SurfaceFlinger ट्रैक का विश्लेषण.

स्क्रीन की बाईं ओर, लेयर का 3D व्यू दिखता है. रेक्ट व्यू में, लेयर के बॉर्डर, z-क्रम, ओपैसिटी, रिलेटिव Z, और गोल कोने शामिल होते हैं.

हैरारकी चिप

टैब के सेंट्रल सेगमेंट में, लेयर के क्रम को चिप के साथ दिखाया जाता है. इससे आपको ज़्यादा जानकारी मिलती है. जैसे, लेयर के बीच पैरंट-चाइल्ड रिलेशनशिप. इसे इस तरह दिखाया जाता है:

  • V: दिख रही लेयर की पहचान करता है.
  • RelZParent: RelZ चाइल्ड वाली लेयर की पहचान करता है.
  • RelZ: RelZParent की मदद से लेयर की पहचान करता है और उन्हें उनकी हैरारकी के हिसाब से z-क्रम में दिखाता है.
  • HWC: इससे हार्डवेयर कंपोजर से बनाई गई लेयर की पहचान होती है.
  • जीपीयू: जीपीयू से बनाई गई लेयर की पहचान करता है.

स्क्रीन की दाईं ओर, चुनी गई प्रॉपर्टी की सूची दिखती है. साथ ही, सभी उपलब्ध लेयर प्रॉपर्टी का प्रोटो डंप भी दिखता है. प्रोटो डंप सेक्शन की सुविधाओं के बारे में ज़्यादा जानकारी के लिए, प्रॉपर्टी देखें.

चुनी गई प्रॉपर्टी

डीबग करने की प्रोसेस को आसान बनाने के लिए, SurfaceFlinger व्यूअर में प्रॉपर्टी की एक सूची दी जाती है. इसमें, सबसे ज़्यादा इस्तेमाल की जाने वाली जानकारी को बेहतर तरीके से व्यवस्थित किया जाता है:

SurfaceFlinger प्रॉपर्टी

दूसरी इमेज. SurfaceFlinger प्रॉपर्टी.

इस सूची में ये कैटगरी शामिल हैं.

किसको दिखे

इस ब्लॉक में, लेयर के दिखने के बारे में जानकारी होती है. साथ ही, यह भी बताया जाता है कि वह क्यों नहीं दिख रही है. इसमें ये चीज़ें शामिल हैं:

फ़्लैग: ये विज़िबिलिटी को कंट्रोल करते हैं. उदाहरण के लिए, HIDDEN और OPAQUE.

न दिखने की वजह: अगर लागू हो, तो इस बारे में जानकारी दें कि लेयर या प्लैटफ़ॉर्म स्क्रीन पर क्यों नहीं दिख रहा है. उदाहरण के लिए, वह खुद या अपने पैरंट की वजह से छिपा हुआ है या उसे ड्रॉ करने के लिए कोई बफ़र नहीं है.

छिपा हुआ, कुछ हद तक छिपा हुआ या ढका हुआ:

  • छिपी हुई: मौजूदा लेयर को दिखने वाली लेयर के तौर पर कैलकुलेट किया जाता है. हालांकि, इसके ऊपर एक और अपारदर्शी लेयर खींची जाती है, जिससे मौजूदा लेयर नहीं दिखती. ओकुलेड लेयर के ऊपर मौजूद लेयर अपारदर्शी होती है. इसका मतलब है कि उसका OPAQUEफ़्लैग सेट है या पिक्सल फ़ॉर्मैट में अल्फा नहीं है या लेयर पर कोई अल्फा सेट नहीं है.
  • कुछ हद तक छिपी हुई: मौजूदा लेयर कुछ हद तक दिख रही है, क्योंकि उसके ऊपर खींची गई अपारदर्शी लेयर, उसे पूरी तरह से नहीं छिपा रही है. कुछ हद तक छिपी हुई लेयर के ऊपर मौजूद लेयर अपारदर्शी है. इसका मतलब है कि OPAQUE फ़्लैग सेट है या पिक्सल फ़ॉर्मैट में अल्फा नहीं है या लेयर पर कोई अल्फा सेट नहीं है.
  • ढकी हुई: मौजूदा लेयर को पूरी तरह या कुछ हद तक, किसी ऐसी लेयर से ढका गया है जो पारदर्शी है. हालांकि, यह लेयर अब भी स्क्रीन पर दिख सकती है. कवर की गई लेयर के ऊपर मौजूद लेयर, अपारदर्शी नहीं है. इसका मतलब है कि OPAQUE फ़्लैग सेट नहीं है या पिक्सल फ़ॉर्मैट में अल्फा है या लेयर पर अल्फा सेट है. हालांकि, SurfaceFlinger ट्रैस के लिए, कवर की गई लेयर को दिखने वाली लेयर के तौर पर दिखाया जाता है. यह लेयर, SurfaceFlinger के नीचे की लेयर के लिए होती है:

    SurfaceFlinger पर कवर की गई लेयर

    तीसरी इमेज. SurfaceFlinger पर कवर की गई लेयर.

जियोमेट्री और इफ़ेक्ट

इस सेक्शन में, मौजूदा लेयर के लिए अनुरोध की गई और कैलकुलेट की गई ज्यामिति और असर के बारे में बताया गया है.

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

दूसरी इमेज में, लेयर कोने का रेडियस को 0 पिक्सल पर सेट करने का अनुरोध करती है. हालांकि, इसकी एक पैरंट लेयर, कोने की त्रिज्या को 97.419 पिक्सल पर सेट करती है. यह वैल्यू लागू होती है:

बफ़र

नीचे दी गई प्रॉपर्टी से यह जानकारी मिलती है कि लेयर में बफ़र है या नहीं, उसका साइज़ क्या है, और उसे ट्रांसफ़ॉर्म किया गया है या नहीं.

  • फ़्रेम नंबर: ऐप्लिकेशन बनाने के बाद से बढ़ने वाला नंबर.
  • डेस्टिनेशन फ़्रेम: इसका इस्तेमाल, डेस्टिनेशन फ़्रेम से तय किए गए बाउंड के हिसाब से बफ़र को स्केल करने के लिए किया जाता है.

हैरारकी

यहां दी गई प्रॉपर्टी से पता चलता है कि लेयर की हैरारकी कैसे तय की जाती है:

  • z-क्रम: लेयर की हैरारकी में, z-क्रम से यह तय होता है कि किसी लेयर की पोज़िशन, उसके भाई-बहनों की तुलना में कैसी है. z-value 0 वाली लेयर, अपने पैरंट लेयर के ऊपर होती है. अगर एक से ज़्यादा लेयर एक ही z-value शेयर करती हैं, तो सबसे ज़्यादा लेयर आईडी वाली लेयर को सबसे ऊपर रखा जाता है.
  • रिलेटिव पैरंट: z-क्रम में रिलेटिव पैरंट लेयर दिखाता है. चाइल्ड प्रॉपर्टी, अपने रिलेटिव पैरंट से 'छिपाया गया' फ़्लैग के अलावा कोई भी प्रॉपर्टी इनहेरिट नहीं करती.

टेक्स्ट लिखो

इन प्रॉपर्टी में, टच किए जा सकने वाले हिस्से और फ़ोकस के बारे में जानकारी होती है:

  • आइटम के साथ टच किए जा सकने वाले हिस्से को काटना: टच किए जा सकने वाले हिस्से को काटने के लिए, लेयर के बाउंड का इस्तेमाल करें.
  • टच किए जा सकने वाले हिस्से को क्रॉप से बदलना: मौजूदा लेयर के क्रॉप को टच किए जा सकने वाले हिस्से के तौर पर इस्तेमाल करें.