Android प्लैटफ़ॉर्म इस आधार पर काम करता है कि खाली मेमोरी का इस्तेमाल नहीं किया जाना चाहिए. Android, हर समय उपलब्ध सभी मेमोरी का इस्तेमाल करने की कोशिश करता है. उदाहरण के लिए, सिस्टम ऐप्लिकेशन को बंद करने के बाद भी उन्हें मेमोरी में सेव रखता है, ताकि उपयोगकर्ता तुरंत उन पर वापस स्विच कर सके. इस वजह से, Android डिवाइसों में अक्सर बहुत कम मेमोरी बची रहती है (Android डिवाइसों में मेमोरी का बंटवारा यहां देखें).
Android कम मेमोरी किल करने वाला (एलएमके) डेमन प्रोसेस, चल रहे Android सिस्टम की मेमोरी की स्थिति पर नज़र रखती है. साथ ही, ज़्यादा मेमोरी के दबाव पर, कम से कम ज़रूरी प्रोसेस को बंद करके सिस्टम की परफ़ॉर्मेंस को सही लेवल पर बनाए रखती है.
यह तय करने के लिए कि कौनसी प्रोसेस बंद करनी है, LMK डेमन मेमोरी खत्म होने के स्कोर का इस्तेमाल करता है. इसे oom_adj_score कहा जाता है. इससे चल रही प्रोसेस को प्राथमिकता दी जाती है. ज़्यादा स्कोर वाली प्रोसेस को पहले बंद किया जाता है. बैकग्राउंड में चल रहे ऐप्लिकेशन को सबसे पहले बंद किया जाता है. इसके बाद, सिस्टम की प्रोसेस बंद की जाती हैं. यहां दी गई टेबल में, एलएमके स्कोरिंग की कैटगरी को ज़्यादा से कम के क्रम में दिखाया गया है. सबसे ज़्यादा स्कोर वाली कैटगरी के आइटम, पहली पंक्ति में सबसे पहले हटाए जाते हैं:

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

ANR और क्रैश जैसी अन्य मुख्य मेट्रिक की तरह ही, इन मेट्रिक को फ़िल्टर किया जा सकता है. साथ ही, अपनी मेट्रिक की तुलना मिलते-जुलते ऐप्लिकेशन से की जा सकती है या लंबे समय (ज़्यादा से ज़्यादा तीन साल) तक मेट्रिक में हुए बदलाव पर नज़र रखी जा सकती है. मौजूदा ऐप्लिकेशन के लिए डेटा, 28 जनवरी, 2025 से उपलब्ध होगा.

मेमोरी प्रोफ़ाइलिंग टूल
यहां दिए गए टूल की मदद से, मेमोरी से जुड़ी समस्याओं का पता लगाने और उनका विश्लेषण करने के लिए, ये तरीके अपनाएं:
- देखें कि आपका ऐप्लिकेशन, समय के साथ मेमोरी कैसे ऐलोकेट करता है. आपको रीयल-टाइम ग्राफ़ में यह जानकारी मिल सकती है कि आपका ऐप्लिकेशन कितनी मेमोरी का इस्तेमाल कर रहा है, ऐलोकेट किए गए Java ऑब्जेक्ट की संख्या क्या है, और कब ग़ैर-ज़रूरी डेटा हटाया जाता है.
- आपका ऐप्लिकेशन चलने के दौरान, गै़रबेज कलेक्शन इवेंट शुरू करें और Java ढेर का स्नैपशॉट लें.
- अपने ऐप्लिकेशन के मेमोरी ऐलोकेशन को रिकॉर्ड करें, ऐलोकेट किए गए सभी ऑब्जेक्ट की जांच करें, और हर ऐलोकेशन के लिए स्टैक ट्रेस देखें.
Android Studio का मेमोरी प्रोफ़ाइलर
Android Studio, Android प्रोफ़ाइलर के कॉम्पोनेंट के तौर पर मेमोरी प्रोफ़ाइलर उपलब्ध कराता है. इससे आपको मेमोरी लीक और मेमोरी चर्न आउट की पहचान करने में मदद मिलती है. इनकी वजह से, ऐप्लिकेशन में रुकावट आ सकती है, वह फ़्रीज़ हो सकता है, और यहां तक कि क्रैश भी हो सकता है. प्रोफ़ाइलर, आपके ऐप्लिकेशन के मेमोरी इस्तेमाल का रीयल-टाइम ग्राफ़ दिखाता है. साथ ही, आपको ढेर का डंप कैप्चर करने, ग़ैर-ज़रूरी डेटा को इकट्ठा करने की प्रोसेस को ज़बरदस्ती शुरू करने, और मेमोरी के ऐलोकेशन को ट्रैक करने की सुविधा देता है.

Unity के मेमोरी प्रोफ़ाइलिंग टूल
अगर ऐप्लिकेशन बनाने के लिए Unity Engine का इस्तेमाल किया जा रहा है, तो Unity की मेमोरी प्रोफ़ाइलिंग से जुड़े दिशा-निर्देशों का पालन किया जा सकता है. Unity में आपके ऐप्लिकेशन में मेमोरी के इस्तेमाल का विश्लेषण करने के लिए, दो टूल उपलब्ध हैं.
पहला है मेमोरी प्रोफ़ाइलर मॉड्यूल, जो पहले से मौजूद एक प्रोफ़ाइलर है. इससे आपको यह बुनियादी जानकारी मिलती है कि आपका ऐप्लिकेशन मेमोरी का इस्तेमाल कहां करता है.

दूसरा टूल, मेमोरी प्रोफ़ाइलर पैकेज है. यह एक Unity पैकेज है, जिसे अपने प्रोजेक्ट में जोड़ा जा सकता है. यह पैकेज, Unity Editor में एक और मेमोरी प्रोफ़ाइलर विंडो जोड़ता है. मेमोरी प्रोफ़ाइलर की मदद से, अपने ऐप्लिकेशन में मेमोरी के इस्तेमाल का ज़्यादा बारीकी से विश्लेषण किया जा सकता है. स्मृति लीक का पता लगाने के लिए, स्नैपशॉट को सेव और उनकी तुलना की जा सकती है. इसके अलावा, स्मृति के फ़्रैगमेंटेशन से जुड़ी समस्याओं का पता लगाने के लिए, स्मृति लेआउट देखा जा सकता है.

Unreal मेमोरी से जुड़ी अहम जानकारी
Unreal Engine से बनाए गए ऐप्लिकेशन, Unreal मेमोरी की अहम जानकारी का इस्तेमाल करके, मेमोरी के ऐलोकेशन और डिऐलोकेशन के बारे में पूरी जानकारी देख सकते हैं. इसमें, मेमोरी के ब्लॉक से जुड़े लो लेवल मेमोरी (एलएलएम) टैग और कॉलस्टैक भी शामिल हैं.
मेमोरी इनसाइट क्वेरी सिस्टम, किसी भी समय लाइव ऐलोकेशन ढूंढ सकता है. साथ ही, मेमोरी के इस्तेमाल में हुए बदलावों की पहचान कर सकता है, मेमोरी लीक का पता लगा सकता है, और कम अवधि के ऐलोकेशन को लंबी अवधि के ऐलोकेशन से अलग कर सकता है.
UE 5.4 से, मेमोरी इनसाइट में Android प्रोजेक्ट के लिए, कॉलस्टैक की मदद से मेमोरी ट्रैकिंग की सुविधा काम करती है.
