शेल ट्रांज़िशन की मदद से, सिस्टम में ऐनिमेशन चलाने के तरीके को एक साथ और कोड में बदला गया. इससे, लागू किए जाने वाले ऐनिमेशन के बारे में एक जगह पर मौजूद जानकारी को वापस पाने की अनुमति मिलती है.
ट्रांज़िशन ट्रेस में, सिस्टम सर्वर और शेल, दोनों से WindowManager (WM) शेल में होने वाले हर ट्रांज़िशन का डेटा शामिल होता है. Droidfood इस ट्रेस को हमेशा के लिए चालू कर देता है. साथ ही, इसे गड़बड़ी की रिपोर्ट में अपने-आप शामिल कर देता है.
ट्रेस कलेक्शन के बारे में ज़्यादा जानने के लिए, शेल ट्रांज़िशन देखें.
Winscope का ट्रांज़िशन व्यूअर, ट्रांज़िशन ट्रेस के लिए यह जानकारी दिखाता है. इन ट्रांज़िशन ट्रेस में सर्वर और क्लाइंट-साइड, दोनों की जानकारी शामिल होती है. व्यूअर में बाईं ओर टेबल लॉग व्यू होता है. इसमें ट्रांज़िशन की खास जानकारी दिखती है. साथ ही, दाईं ओर हर ट्रांज़िशन की ज़्यादा जानकारी दिखती है:
पहली इमेज. शेल ट्रांज़िशन ट्रेस का विश्लेषण.
टेबल व्यू
टेबल व्यू में यह जानकारी होती है:
- Id: ट्रांज़िशन आईडी, जिसे सिर्फ़ डीबग करने के लिए जनरेट किया जाता है.
- टाइप: ट्रांज़िशन टाइप, जैसा कि
Transitions.javaमें बताया गया है. - भेजने का समय: यह टाइमस्टैंप, सर्वर से शेल में भेजे गए ट्रांज़िशन का होता है, ताकि उसे हैंडल किया जा सके.
- डिस्पैच करने का समय: टाइमस्टैंप, जब ट्रांज़िशन को चलाने के लिए हैंडलर को डिस्पैच किया जाता है.
- अवधि: ट्रांज़िशन शुरू होने से लेकर खत्म होने तक का समय.
- स्थिति: अगर बदलाव:
- PLAYED:: Played.
- ABORTED: खेलने से पहले ही रद्द कर दिया गया. शेल या WM की ओर से ट्रांज़िशन को रोका जा सकता है.
- MERGED: ट्रांज़िशन हैंडलर ने इसे पहले से चल रहे किसी दूसरे ट्रांज़िशन में मर्ज कर दिया है. हैंडलर तय करता है कि इसे कैसे हैंडल किया जाए.
ज़्यादा जानकारी वाला व्यू
टेबल व्यू में मौजूद जानकारी के अलावा, चुने गए ट्रांज़िशन सेक्शन में मौजूद ट्रांज़िशन के बारे में ज़्यादा जानकारी वाले व्यू में यह जानकारी भी शामिल होती है:
handler: यह ट्रांज़िशन हैंडलर है, जिसने इस ऐनिमेशन को हैंडल किया है.createTimeNs: WM सर्वर साइड पर ट्रांज़िशन बनाए जाने का टाइमस्टैंप.finishTimeNs: यह वह टाइमस्टैंप है, जब WM सर्वर साइड को सूचना मिलती है कि शेल साइड पर ट्रांज़िशन पूरा हो गया है.endTransactionId: इस ट्रांज़िशन में, फ़ाइनल SurfaceFlinger ट्रांज़ैक्शन शामिल है.startTransactionId: इस ट्रांज़िशन में, शुरुआती SurfaceFlinger ट्रांज़ैक्शन शामिल है.targets: ट्रांज़िशन में हिस्सा लेने वाले लोगों की सूची.type: ट्रांज़िशन का टाइप, जैसा किTransitions.javaमें बताया गया है.
लक्ष्य
टारगेट वे एलिमेंट होते हैं जो ट्रांज़िशन में शामिल होते हैं. आम तौर पर, ये गतिविधियां या टास्क होते हैं. हर टारगेट के लिए, यह जानकारी रिकॉर्ड की जाती है:
layerId: ऐनिमेट की जा रही लेयर (SurfaceFlinger के क्रम से).mode: इस लेयर पर किए गए ऐनिमेशन का टाइप.windowId: WindowManager के क्रम में मौजूद वह विंडो जिसे ऐनिमेट किया जा रहा है.flags: लेयर पर फ़्लैग का नया सेट लागू किया जा रहा है.