यहां दिए गए पेजों पर, ऐप्लिकेशन में मेमोरी के इस्तेमाल को बेहतर बनाने के बारे में जानकारी दी गई है.
मेमोरी के बारे में सामान्य दिशा-निर्देश
- मेमोरी की खास जानकारी
- इसमें Android की मेमोरी के मुख्य आर्किटेक्चर, रैम की सीमाओं, और ऑपरेटिंग सिस्टम के Low Memory Killer (एलएमके) का इस्तेमाल करके प्रोसेस को बैलेंस करने के तरीके के बारे में बताया गया है.
- मेमोरी मैनेजमेंट
- इसमें कॉम्पोनेंट के लाइफ़साइकल में रिसॉर्स रिलीज़ करने, मेमोरी लीक से बचने, और प्रोसेस की स्थितियों के बीच ट्रांज़िशन करते समय मेमोरी मैनेज करने के लिए, डेवलपर के सबसे सही तरीके बताए गए हैं.
- Android डिवाइस की मेमोरी के बारे में जानकारी और उससे जुड़ी समस्या हल करना
- इसमें Android की मेमोरी के आर्किटेक्चर के बारे में पूरी जानकारी दी गई है. साथ ही, विश्लेषण के लिए उपलब्ध टूल और मेमोरी से जुड़ी समस्याओं का पता लगाने और उन्हें हल करने में आपकी मदद करने के लिए, प्रैक्टिकल एक्सरसाइज़ दी गई हैं.
इलाके के हिसाब से ऑप्टिमाइज़ेशन
- गेम की मेमोरी के बारे में खास जानकारी
- गेम इंजन का इस्तेमाल करने वाले ऐप्लिकेशन के लिए, मेमोरी बजटिंग, नेटिव ऐलोकेशन हैंडलिंग, और ग्राफ़िक ऐसेट मैनेजमेंट के बारे में जानकारी.
- बिटमैप इमेज को ऑप्टिमाइज़ करना
- यह इमेज लाइब्रेरी में, बिटमैप ऐसेट को बेहतर तरीके से साइज़ करने, डिकोड करने, और कैश मेमोरी में सेव करने का तरीका दिखाता है.
- WebView की मेमोरी को मैनेज करना और उसकी जांच करना
- इसमें WebView के मल्टी-प्रोसेस मेमोरी मॉडल के बारे में बताया गया है. साथ ही, मेमोरी लीक से बचने के लिए, इसके लाइफ़साइकल को सही तरीके से मैनेज करने का तरीका बताया गया है. इसमें मेमोरी से जुड़ी समस्याओं का पता लगाने के लिए, काम के वर्कफ़्लो दिए गए हैं.
- R8 कोड ऑप्टिमाइज़ेशन
- इसमें बताया गया है कि APK का साइज़, मेटाडेटा ओवरहेड, और रनटाइम मेमोरी के इस्तेमाल को कम करने के लिए, R8 का इस्तेमाल कैसे किया जाता है.
लोकल मेमोरी को डीबग करने वाले टूल
- Android Studio के टूल
- यह आईडीई में ही, रीयल-टाइम में हीप की जांच करने, मेमोरी के बंटवारे को ट्रैक करने, और लीक का पता लगाने के वर्कफ़्लो की सुविधा देता है.
- Perfetto Heap Dump Explorer
- यह नेटिव और Java/Kotlin हीप डंप का विज़ुअल विश्लेषण करता है. इससे, ऑब्जेक्ट ट्री और मेमोरी के गुमनाम असाइनमेंट को अलग किया जा सकता है.
- डिवाइस पर सिस्टम ट्रेस कैप्चर करना
- इसमें दिखाया गया है कि डिवाइस के सिस्टम लेवल पर ट्रेस रिकॉर्ड करके, अपने ऐप्लिकेशन में परफ़ॉर्मेंस से जुड़ी गड़बड़ियों को कैसे ठीक किया जाता है.
- Android पर मेमोरी के इस्तेमाल को डीबग करना
- इसमें Linux के मेमोरी मैनेजमेंट को समझने और मेमोरी के इस्तेमाल को ट्रैक करने के बारे में बताया गया है. साथ ही, इसमें मेमोरी लीक का पता लगाने के लिए, dumpsys meminfo, Perfetto, नेटिव हीप प्रोफ़ाइल, और हीप डंप जैसे टूल इस्तेमाल करने के बारे में बताया गया है.
प्रोडक्शन लेवल के मेमोरी टूल
- Android की ज़रूरी जानकारी: मेमोरी का इस्तेमाल (बिना सोर्स फ़ाइल वाली आरएसएस मेमोरी + स्वैप मेमोरी)
- Android की ज़रूरी जानकारी में, आपके ऐप्लिकेशन की प्रोडक्शन मेमोरी के इस्तेमाल की जानकारी शेयर की जाती है. इसे प्रोसेस की स्थितियों के हिसाब से बांटा जाता है: फ़ोरग्राउंड, फ़ोरग्राउंड सेवा, और बैकग्राउंड में चलने वाली सेवा.
- Android की ज़रूरी जानकारी: बिटमैप के लिए मेमोरी का इस्तेमाल
- Android की ज़रूरी जानकारी देने वाली सुविधा, Android डिवाइसों से डेटा इकट्ठा करके, ऐप्लिकेशन की बिटमैप मेमोरी के फ़ुटप्रिंट के बारे में मेट्रिक उपलब्ध कराती है
- Android की ज़रूरी जानकारी: DEX कोड को ऑप्टिमाइज़ करना
- Android की ज़रूरी जानकारी की मदद से, आपको तब सूचना मिल सकती है, जब आपके ऐप्लिकेशन के DEX कोड ऑप्टिमाइज़ेशन लेवल कम हों. इसमें R8 का इस्तेमाल करने वाले ऐप्लिकेशन और गेम के लिए, कोड को उलझाना, कोड को छोटा करना, और ऑप्टिमाइज़ करना शामिल है
- Crashlytics
- यह प्रोडक्शन में मेमोरी से जुड़ी समस्याओं (ओओएम) और मेमोरी लिमिटर की वजह से बंद होने वाले ऐप्लिकेशन के बारे में बताता है. साथ ही, समस्या की पहचान करने से जुड़ी जानकारी भी देता है, ताकि फ़ील्ड में ऐप्लिकेशन बंद होने की समस्याओं को प्राथमिकता दी जा सके और उन्हें ठीक किया जा सके.
- ProfilingManager
- यह एक ऐडवांस एपीआई है. इसकी मदद से, ऐप्लिकेशन लाइव उपयोगकर्ता सेशन से प्रोडक्शन हीप डंप और हीप प्रोफ़ाइलें प्रोग्राम के हिसाब से इकट्ठा और अपलोड कर सकते हैं.
अन्य संसाधन
ब्लॉग पोस्ट
- अपने ऐप्लिकेशन को ज़्यादा मेमोरी सीमा के लिए तैयार करना
- मेमोरी को कम इस्तेमाल करने पर ज़ोर देना: Android 17 के लिए ज़रूरी चरण
वीडियो
Android ऐप्लिकेशन में मेमोरी का बेहतर तरीके से इस्तेमाल करना