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 प्रोजेक्ट के लिए, कॉलस्टैक की मदद से मेमोरी ट्रैकिंग की सुविधा काम करती है.

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