2012-02-26 14 views
53

एंड्रॉइड में Window क्या है?एंड्रॉइड विंडो क्या है?

मैंने सोचा कि एंड्रॉइड में शीर्ष-स्तर को Activity कहा जाता है, जो स्क्रीन आप देखते हैं।

क्या कोई मुझे बता सकता है कि एंड्रॉइड में एक विंडो क्या है? क्या हमारे पास उनमें से एक या एकाधिक है।

उत्तर

8

गतिविधि वह है जिसे आप एक विंडो कहते हैं।

तकनीकी रूप से बोलते हुए, गतिविधि आपके लिए विंडो बनाती है।

आप उनमें से कई हो सकते हैं, लेकिन आमतौर पर सिंक्रनाइज़ नहीं होते हैं। अतिरिक्त जानकारी मांगने के लिए आप एक संवाद को कॉल कर सकते हैं, या किसी अन्य गतिविधि के इरादे को आग लगा सकते हैं।

अधिक जानकारी के लिए visit this link

+0

) activity.getWindow (नहीं है, इसलिए खिड़की गतिविधि का एक हिस्सा है। – Zon

134

[अद्यतन]

एक वाक्य में (मुझे का हिस्सा है कि मैं क्या Window के बारे में मूल जवाब के बाद आइए अब सीखे), एकWindowएक आयताकार क्षेत्र एक दृश्य है जो है पदानुक्रम। नीचे छवि में रंगीन आयताकार खिड़कियां हैं।

enter image description here

जैसा कि आप देख सकते हैं, वहाँ एक स्क्रीन में एकाधिक विंडो हो सकता है, और WindowManager उन्हें प्रबंधन करता है। वर्तमान स्क्रीन में विंडो सूची Hierarchy Viewer, या adb shell dumpsys window के माध्यम से प्राप्त की जा सकती है। पदानुक्रम व्यूअर उदाहरण में

विंडो सूची: enter image description here

(नीचे मूल जवाब है)


मैं एक ही सवाल था, और मुझे आशा है कि यह आप लोग मदद कर सकता है।

Android Developer Documentation के अनुसार,

"प्रत्येक गतिविधि जिसमें अपने यूजर इंटरफेस आकर्षित करने के लिए एक खिड़की दिया जाता है।"

और, Dianne Hackborn, जो एक Android ढांचे इंजीनियर है, कुछ परिभाषाओं here दे दी है। उसने कहा, जैसे आप डेस्कटॉप पर एक खिड़की के बारे में सोच

एक विंडो मूल रूप से है। यह में एक ही सतह है जिसमें विंडो की सामग्री प्रदान की जाती है।खिड़कियां बनाने के लिए एक विंडो विंडो प्रबंधक के साथ एक इंटरैक्ट करता है; विंडो प्रबंधक प्रत्येक विंडो के लिए एक सतह बनाता है और इसे ड्राइंग के लिए आवेदन देता है। आवेदन सतह में जो कुछ भी चाहता है उसे आकर्षित कर सकता है; विंडो प्रबंधक के लिए यह सिर्फ एक अपारदर्शी आयताकार है।

एक सतह एक वस्तु पिक्सल है कि स्क्रीन को सम्मिश्रित किया जा रहा है पकड़े है। स्क्रीन पर दिखाई देने वाली प्रत्येक विंडो (एक संवाद, आपकी पूर्ण-स्क्रीन गतिविधि, स्टेटस बार) की अपनी सतह होती है जो इसे आकर्षित करती है, और सतह फ़्लिंगर इन्हें अंतिम प्रदर्शन में अंतिम प्रदर्शन में प्रस्तुत करता है। एक सतह में आमतौर पर डबल-बफर प्रस्तुत करने के लिए एक से अधिक बफर (आमतौर पर दो) होते हैं: एप्लिकेशन अपना अगला यूआई स्टेटस खींचा जा सकता है, जबकि सतह फ़्लिंगर अंतिम बफर का उपयोग करके स्क्रीन को कंपोजिट कर रहा है, बिना एप्लिकेशन को समाप्त करने की प्रतीक्षा किए बिना चि त्र का री।

ए व्यू एक विंडो के अंदर एक इंटरैक्टिव यूआई तत्व है। एक विंडो में एक दृश्य दृश्य पदानुक्रम है, जो खिड़की के सभी व्यवहार प्रदान करता है। जब भी खिड़की को (जैसे कि दृश्य स्वयं को अमान्य कर दिया गया है) को रीडायरेन करने की आवश्यकता है, यह विंडो की सतह में किया जाता है। सतह लॉक है, जो एक कैनवास लौटाती है जिसका उपयोग इसे आकर्षित करने के लिए किया जा सकता है। एक ड्रॉ ट्रैवर्सल पदानुक्रम के नीचे किया जाता है, जिससे यूआई के हिस्से को आकर्षित करने के लिए प्रत्येक दृश्य के लिए कैनवास को नीचे सौंप दिया जाता है। एक बार पूरा होने पर, सतह को अनलॉक किया जाता है और पोस्ट किया जाता है ताकि बस खींचे गए बफर को अग्रभूमि में बदल दिया जाए ताकि फिर सतह फ़्लिंगर द्वारा स्क्रीन पर मिश्रित किया जा सके।

इसके अलावा, मैं Romain Guy की प्रस्तुति (आप here सैन फ्रांसिस्को Android उपयोगकर्ता समूह में उनकी बात को देख सकते हैं, और here से पूर्ण स्लाइड डाउनलोड)

enter image description here

से कुछ अन्य जानकारी पाया तो, संक्षेप में:

  • एक Activity,
  • एक Window एक भी Surface और एक ही दृश्य पदानुक्रम इसे से जुड़ी है,
  • एक Surface शामिल ViewGroup किए जाने वाले दृश्य रखती है एक खिड़की (जिसमें यह अपने यूजर इंटरफेस खींचता है) है।
+0

शानदार उत्तर और लिंक के लिए धन्यवाद। क्या कोई मुझे बता सकता है कि इस स्पष्टीकरण में सजावट किस प्रकार फिट है? – abhiank

+0

क्या आप मुझे बता सकते हैं क्यों देखें .getLocationInWindow() y समन्वय देता है जैसे कि इसमें स्टेटस बार ऊंचाई भी होती है। स्टेटस बार एक और विंडो में होना चाहिए। साथ ही, मैंने जांच की है कि जिस विंडो के बारे में मैं बात कर रहा हूं वह एक गतिविधि विंडो है। –

9

Android: Window, Surface, Canvas, and Bitmap यहाँ कैसे बातचीत विंडो, भूतल, कैनवस, और बिटमैप के बीच होता है की एक बहुत ही बुनियादी और सरल वैचारिक अवलोकन है।

+0

स्थिति और नेविगेशन बार के साथ आरेख में ऊपरी और निचले सतहों के अनुरूप है? –

+0

स्क्रीन पर हर खिड़की की सतह होती है। स्क्रीन पर कई खिड़कियां हो सकती हैं। हां, नेविगेशन और स्टेटस बार में उनकी संबंधित विंडो और संलग्न सतहें हैं। उपरोक्त तस्वीर अवधारणा का नमूना चित्रण है। – Sabeeh

1

मैं संक्षेप में कहना चाहते हैं:

Application ---> 
    Activity ---> 
    Window Manager ---> 
     Window ---> 
     Surface ---> 
      Canvas ---> 
      View Root ---> 
       View Group ---> 
       View ---> 
        Bitmap/Open GL panel ---> 
        Current Surface Buffer ---> 
         Surface Flinger ---> 
         Screen 
+0

धन्यवाद इस बेहतर स्वरूपण के लिए प्रिय फिनवे। वास्तव में, मैं पूरी तरह से स्टैक ओवरफ्लो के लिए नया हूं। –

संबंधित मुद्दे