2012-03-07 10 views
5

मेरे पास एक बहुत ही सरल एंड्रॉइड एप्लिकेशन है जिसमें कुछ टेक्स्ट बॉक्स और प्रोसेसिंग कोड के साथ एक ही गतिविधि शामिल है।मेरा एंड्रॉइड ऐप अलग-अलग ओएस संस्करणों पर स्मृति की काफी अलग मात्रा आवंटित क्यों करता है?

जब मैं इसे 2.3 डिवाइस पर स्थापित करता हूं और इसे पहली बार खोलता हूं, तो यह ~ 2.7 एमबी मेमोरी आवंटित करता है (एक्लिप्स डीडीएमएस में हीप अपडेट टैब के अनुसार)।

3.1 डिवाइस पर, यह ~ 6.1MB आवंटित करता है।

4.0 डिवाइस पर, यह ~ 13.8MB आवंटित करता है।

मैंने 3 के बीच कोई कोड परिवर्तन नहीं किया है, और इन उपायों को एप्लिकेशन के आरंभिक इंस्टॉल/खोलने पर लिया गया था (इसलिए इसमें कोई लीक करने का समय नहीं है)। यह कोई छवियों का उपयोग नहीं करता है, और विशेष रूप से हार्डवेयर त्वरण सक्षम नहीं है।

क्या किसी को पता है कि पैरों के निशान इतने अलग क्यों हो सकते हैं? मुझे लगता है कि इसे ओएस संस्करणों में मतभेदों के साथ करना है, लेकिन मुझे आश्चर्य है कि क्या कोई जानता है कि ये मतभेद क्या हो सकते हैं।

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

+0

क्या आप विवरण प्राप्त करने और आवंटन की तुलना करने के लिए मेमोरी विश्लेषक का उपयोग कर सकते हैं? – Asahi

उत्तर

1

प्री-हनीकॉम बिटमैप्स देशी ढेर में आवंटित किए गए थे। चूंकि एंड्रॉइड 3.0 (आईसीएस समेत), बिटमैप्स के लिए पिक्सेल डेटा डाल्विक ढेर में आवंटित किया गया है। 2.3 और 3.1 के बीच का अंतर इस वजह से हो सकता है।

आईसीएस वास्तव में 3.1 से स्मृति का उपयोग करता है और मुझे इसका कारण पता नहीं है।

+0

मैंने बिटमैप्स के बारे में पढ़ा था, लेकिन मेरा एप्लिकेशन किसी भी छवियों का उपयोग नहीं करता है। इसमें केवल कुछ टेक्स्ट व्यू और एडिटटेक्स्ट फ़ील्ड हैं। हालांकि मुझे लगता है कि ओएस को बिटमैप्स आंतरिक का उपयोग करके उनको प्रस्तुत किया जा सकता है? फिर भी यह 3.1 से 4.0 तक कूद की व्याख्या नहीं करता है। – mWillis

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