शेल ट्रांज़िशन

शेल ट्रांज़िशन की मदद से, सिस्टम में ऐनिमेशन चलाने के तरीके को एक साथ और कोड में बदला गया. इससे, ऐनिमेशन से जुड़ी जानकारी को एक जगह से ऐक्सेस किया जा सकता है.

ट्रांज़िशन ट्रेस में, सिस्टम सर्वर और शेल, दोनों से WindowManager (WM) शेल में होने वाले हर ट्रांज़िशन का डेटा शामिल होता है. Droidfood इस ट्रेस को हमेशा के लिए चालू कर देता है. साथ ही, इसे गड़बड़ी की रिपोर्ट में अपने-आप शामिल कर देता है.

ट्रेस कलेक्शन के बारे में ज़्यादा जानने के लिए, शेल ट्रांज़िशन लेख पढ़ें.

Winscope का ट्रांज़िशन व्यूअर, ट्रांज़िशन ट्रेस के लिए यह जानकारी दिखाता है. इन ट्रेस में सर्वर और क्लाइंट-साइड, दोनों की जानकारी होती है. व्यूअर में बाईं ओर एक टेबल लॉग व्यू होता है. इसमें ट्रांज़िशन की खास जानकारी दिखती है. साथ ही, दाईं ओर हर ट्रांज़िशन की ज़्यादा जानकारी दिखती है:

शेल ट्रांज़िशन ट्रेस का विश्लेषण

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

टेबल के रूप में देखें

टेबल व्यू में यह जानकारी होती है:

  • आईडी: ट्रांज़िशन आईडी, जिसे सिर्फ़ डीबग करने के लिए जनरेट किया जाता है.
  • टाइप: ट्रांज़िशन का टाइप, जैसा कि 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: लेयर पर फ़्लैग का नया सेट लागू किया जा रहा है.