SurfaceFlinger

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

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

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

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

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

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

हैरारकी चिप

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

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

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

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

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

SurfaceFlinger प्रॉपर्टी

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

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

खोज नतीजों में ब्रैंड का दिखना

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

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

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

  • Occluded, Partially Occluded या Covered:

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

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

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

ज्यामिति और इफ़ेक्ट

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

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

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

बफ़र

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

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

हैरारकी

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

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

इनपुट

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

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