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

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

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

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

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

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

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

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

टेबल व्यू में ये शामिल हैं:

  • आईडी: ट्रांज़िशन आईडी, सिर्फ़ डीबग करने के लिए जनरेट किया जाता है.
  • टाइप: ट्रांज़िशन का टाइप, जैसा कि Transitions.java में बताया गया है
  • भेजने का समय: ट्रांज़िशन को मैनेज करने के लिए, सर्वर से शेल पर भेजे जाने का टाइमस्टैंप.
  • डिस्पैच करने का समय: ट्रांज़िशन को चलाने के लिए, हैंडलर को डिस्पैच करने का टाइमस्टैंप.
  • अवधि: वीडियो चलाने के लिए ट्रांज़िशन होने में लगने वाला समय.
  • स्थिति: अगर ट्रांज़िशन:
    • PLAYED:: चलाया गया.
    • रद्द किया गया: वीडियो चलाने से पहले ही रद्द कर दिया गया. ट्रांज़िशन को शेल या WM साइड से रोका जा सकता है.
    • मर्ज किया गया: ट्रांज़िशन हैंडलर की मदद से, पहले से चल रहे किसी ट्रांज़िशन में मर्ज किया गया (हैंडलर यह तय करता है कि इसे कैसे मैनेज किया जाए).

ज़्यादा जानकारी वाला व्यू

टेबल व्यू में दी गई जानकारी के अलावा, चुने गए ट्रांज़िशन सेक्शन में, ट्रांज़िशन के बारे में ज़्यादा जानकारी वाले व्यू में ये चीज़ें शामिल होती हैं:

  • handler: ट्रांज़िशन हैंडलर, जिसने इस ऐनिमेशन को मैनेज किया.
  • createTimeNs: WM सर्वर साइड पर ट्रांज़िशन बनाने का टाइमस्टैंप.
  • finishTimeNs: वह टाइमस्टैंप जब WM सर्वर साइड को सूचना मिलती है कि ट्रांज़िशन, शेल साइड पर चलना बंद हो गया है.
  • endTransactionId: इस ट्रांज़िशन में शामिल फ़ाइनल SurfaceFlinger लेन-देन.
  • startTransactionId: इस ट्रांज़िशन में शामिल, SurfaceFlinger का शुरुआती लेन-देन.
  • targets: ट्रांज़िशन में हिस्सा लेने वाले लोगों की सूची.
  • type: ट्रांज़िशन का टाइप, जैसा कि Transitions.java में बताया गया है

टारगेट

टारगेट, ट्रांज़िशन में शामिल एलिमेंट होते हैं. आम तौर पर, ये टारगेट गतिविधियां या टास्क होते हैं. हम हर टारगेट के लिए यह जानकारी रिकॉर्ड करते हैं:

  • layerId: ऐनिमेशन वाली लेयर (SurfaceFlinger हैरारकी से).
  • mode: इस लेयर पर किया गया ऐनिमेशन टाइप.
  • windowId: ऐनिमेशन वाली विंडो (WindowManager हैरारकी से).
  • flags: लेयर पर फ़्लैग का नया सेट लागू किया जा रहा है.