2010-09-15 16 views
17

मैं इस एंड्रॉइड प्लेटफ़ॉर्म पर नया हूं। एक आवेदन में, एक स्मृति रिसाव है। लेकिन मैं यह पता लगाने में सक्षम नहीं था कि मेमोरी रिसाव किस क्रिया या वर्ग में हो रहा है।Android में मेमोरी लीक क्लास/गतिविधि को कैसे खोजें

मैं मैट का उपयोग कर रहा हूं ताकि यह सुनिश्चित किया जा सके कि स्मृति रिसाव है या नहीं। लेकिन यह पता लगाने में सक्षम नहीं है कि कौन सी गतिविधि लीक हो रही है।

कृपया मुझे बताएं कि कौन सी गतिविधि लीक हो रही है।

धन्यवाद।

+0

संभव डुप्लिकेट: http://stackoverflow.com/questions/2851483/tracing-the-memory-window-leaks-in-android – Praveen

+0

यह लेख आपको दिखाएगा कि कैसे: http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html –

उत्तर

2

मैं पिछली पोस्ट पर टिप्पणी नहीं कर सकता, लेकिन यह जानना महत्वपूर्ण है कि आपको स्मृति प्रबंधन के बारे में चिंता करनी चाहिए, खासकर एंड्रॉइड मोबाइल प्लेटफार्म संसाधन-सीमित पर्यावरण पर। कि के बारे में अधिक के लिए, यहाँ की जाँच करें:

http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

+0

बचाव केवल आपको प्राप्त कर सकता है। कभी-कभी यह एक तृतीय पक्ष लाइब्रेरी है जो आपके कोड को यात्रा करती है। –

0

आप इसे डी डी एम एस में देख सकते हैं।

बस अपना ऐप पैकेज नाम चुनें और उपरोक्त बटन को ढेर अपडेट करें पर क्लिक करें।

अब गोटो हीप टैब क्लिक करें जीसी पर क्लिक करें।

आपको प्रयुक्त वस्तुओं की सूची मिल जाएगी।

5

सबसे अच्छा पोस्ट मैं अभी तक एंड्रॉयड प्लेटफॉर्म पर मेमोरी लीक पर नज़र रखने पर पाया है:

http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html

पहले भाग पुरानी हो चुकी है, क्योंकि यह अब ग्रहण में एकीकृत है लेकिन पद का सबसे अच्छा है!

+0

आपके द्वारा लिंक किया गया लेख एंड्रॉइड में मेमोरी लीक का पता लगाने के लिए सबसे उपयोगी लेख था। एक लाख कुडोस –

33

भले ही यह प्रश्न शांत हो। मुझे लगता है कि छवियों के साथ एक छोटा सा ट्यूटोरियल सहायक हो सकता है। तो सबसे पहले आपको MAT plugin इंस्टॉल करने की आवश्यकता है। पुन: प्रारंभ करने के बाद डंप HPROF फ़ाइल पर क्लिक करें:

Device controls

कुछ समय (के बारे में 30 सेकंड) के बाद आप एक संवाद है जहाँ आप खत्म पर क्लिक कर सकते हैं मिलेगा। की तुलना में आप इस दृश्य प्राप्त:

Dump result

वहाँ आप बाहर जाने वाले संदर्भ के साथ सबसे बड़े हिस्से और के लिए फिल्टर पर क्लिक करें छोड़ दिया है। तो फिर तुम इस दृश्य यहाँ प्राप्त:

यहाँ आप देख सकते हैं कि मैं अपने ContentManager आइटम हटाना जहां कई आइटम मेरी लंबितHashMap में संग्रहीत छूट गया है।

4

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

https://github.com/square/leakcanary

अधिसूचना उदाहरण:

enter image description here

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