से प्रीलोडेड सिस्टम ड्रॉबल्स (बिटमैप्स) के आईडी या नामों को कैसे ढूंढें, मैं अपने ऐप के मेमोरी उपयोग का विश्लेषण कर रहा हूं, और अजीब Drawables
मिला है, जो लगातार ढेर के कुछ मेगाबाइट "खाता है"। ढेर डंप में प्रकट होता हैस्मृति डंप
ऊपर बिटमैप्स
यह हमेशा बिटमैप्स में से एक के लिए जड़ों जीसी के लिए पथ
2 के साथ Dominator पेड़ बहुत बड़ी बिटमैप्स: यहाँ MAT से कुछ स्क्रीनशॉट हैं मेरे फोन से (सैमसंग गैलेक्सी नेक्सस, ओएस 4.1.1), इससे कोई फर्क नहीं पड़ता कि मैं अपने ऐप का कितना समय या गहन उपयोग करता हूं।
मै मैट का उपयोग करके इस बिटमैप्स के स्रोत को खोजने की कोशिश कर चुका हूं - बिना किस्मत के। सभी उपयोगी जानकारी मुझे लगता है करने में सक्षम था width
और बिटमैप्स का height
था, यह दोनों 512x512 है:
लेकिन हमारे एप्लिकेशन को किसी भी एकल 512x512 ड्रॉएबल जरूरत नहीं है। मुझे लगता है कि यह कुछ "सिस्टम" drawables है। लेकिन वास्तव में क्या? उन्हें इतना बड़ा क्यों?
मैंने android.content.res.Resources
कक्षा के स्रोत कोड को भी देखा है, sPreloadedDrawables
फ़ील्ड का उपयोग खोज - कोई भाग्य के साथ भी। मुझे मेमोरी डंप से मिलता है - key
sPreloadedDrawables
सरणी से है, लेकिन मैं इस कुंजी से फ़ाइल नाम या संसाधन आईडी निर्धारित नहीं कर सकता।
तो, मेरे सवालों का है:
मैं नाम या इस बिटमैप्स की आईडी कैसे तय कर सकते हैं?
इस विशाल बिटमैप्स के लिए क्या लोड किया जाता है और वे हमेशा स्मृति में क्यों रहते हैं?
अद्यतन:
मैं look at this bitmaps from memory dump के लिए एक रास्ता मिल गया है। यह दो बिटमैप्स एक साधारण ग्रेडियेंट, एक काला, अन्य - सफेद है। मुझे लगता है कि यह Holo.Light
और Holo.Dark
आईसीएस विषयों के लिए संसाधन है। लेकिन मेरा दूसरा सवाल अभी भी वास्तविक है: यह बिटमैप हमेशा स्मृति में क्यों रहता है? क्या उन्हें अपलोड या रीसायकल करने का कोई तरीका है?
तुम क्यों इन बिटमैप्स का नाम/आईडी चाहते हैं कर रहे हैं? – toadzky
मुझे यह बिटमैप लोड करने के लिए इस बिटमैप्स का नाम/आईडी चाहिए और शायद मेरे कोड – HitOdessit