ऐप्लिकेशन को ज़्यादा मेमोरी लिमिट के लिए तैयार किया जा रहा है
पढ़ने में 2 मिनट लगेंगे
Android का मुख्य मकसद, लोगों को बेहतरीन अनुभव देना है. इस वादे को पूरा करने के लिए, यह ज़रूरी है कि डिवाइस तेज़ी से काम करें, रिस्पॉन्सिव हों, और भरोसेमंद हों. इसलिए, मेमोरी ऑप्टिमाइज़ेशन अब पहले से ज़्यादा ज़रूरी हो गया है. पूरे ईकोसिस्टम में, मेमोरी की कीमत में बढ़ोतरी की वजह से नए डिवाइसों में मेमोरी की क्षमता को बनाए रखा जा रहा है या कम किया जा रहा है. हालांकि, उपयोगकर्ता अब भी ऐप्लिकेशन के इस्तेमाल के दौरान बेहतर अनुभव की उम्मीद रखते हैं.
Android 17 में, हमने हर ऐप्लिकेशन के लिए मेमोरी की सीमाएं तय करने की सुविधा शुरू की. इसकी शुरुआत Pixel डिवाइसों से की गई है. इससे, हम उपयोगकर्ताओं को ऐसे ऐप्लिकेशन से बचा पाएंगे जो बहुत ज़्यादा मेमोरी का इस्तेमाल करते हैं और पूरे सिस्टम को धीमा कर देते हैं. आने वाले साल में, ज़्यादा से ज़्यादा मैन्युफ़ैक्चरर, Android के हर ऐप्लिकेशन के लिए मेमोरी की सीमाओं का इस्तेमाल करेंगे. ऐसा वे अपने डिवाइसों के रैम कॉन्फ़िगरेशन के पोर्टफ़ोलियो में करेंगे. इसमें 4 जीबी से लेकर 16 जीबी या इससे ज़्यादा रैम वाले डिवाइस शामिल हैं. अगर आपका ऐप्लिकेशन इन सीमाओं से ज़्यादा डेटा इस्तेमाल करता है, तो उसकी परफ़ॉर्मेंस धीमी हो जाएगी. साथ ही, उसे बंद भी किया जा सकता है. ओएस थ्रॉटलिंग को रोकने और उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, अपने ऐप्लिकेशन की मेमोरी फ़ुटप्रिंट को ऑप्टिमाइज़ करना ज़रूरी है.
इस पोस्ट में, हम यह जानेंगे कि ये सीमाएं कैसे काम करती हैं. साथ ही, Android की ज़रूरी जानकारी की नई मेट्रिक का इस्तेमाल करके, किसी प्रोग्राम के चलने के दौरान, इस्तेमाल की जाने वाली मेमोरी (मेमोरी फ़ुटप्रिंट) को मेज़र करने का तरीका और अपने ऐप्लिकेशन या गेम को ऑप्टिमाइज़ करने के लिए ज़रूरी चरणों के बारे में जानेंगे.
मेमोरी की सीमाओं के बारे में जानकारी
जब आपका ऐप्लिकेशन, मेमोरी बजट की सीमा पार कर जाता है, तो Android डिवाइस की परफ़ॉर्मेंस को सुरक्षित रखने के लिए, ये कार्रवाइयां करता है:
- zRAM स्वैपिंग: अगर आपका ऐप्लिकेशन, तय की गई सीमा तक पहुंच जाता है, तो सिस्टम आपके ऐप्लिकेशन के पेजों को zRAM (कंप्रेस की गई रैम) में भेज देता है. zRAM, पेजों को तुरंत हटाने से रोकता है. हालांकि, पेजों को कंप्रेस और डीकंप्रेस करने से सीपीयू पर ज़्यादा असर पड़ता है. इससे यूज़र इंटरफ़ेस (यूआई) में रुकावट आ सकती है और परफ़ॉर्मेंस धीमी हो सकती है.
- प्रोसेस बंद करना: अगर आपका ऐप्लिकेशन, zRAM थ्रेशोल्ड से ज़्यादा मेमोरी का इस्तेमाल करता रहता है, तो सिस्टम इसे बंद कर देगा. यह पता लगाने के लिए कि फ़ील्ड में इन पाबंदियों की वजह से, आपके ऐप्लिकेशन सेशन पर असर पड़ा है या नहीं,
ApplicationExitInfoके अंदरgetDescription()को कॉल किया जा सकता है. अगर सिस्टम ने सीमा लागू की है, तो बाहर निकलने की वजहREASON_OTHERके तौर पर रिपोर्ट की जाती है. साथ ही, ब्यौरे वाली स्ट्रिंग में "MemoryLimiter:AnonSwap" शामिल होगा.TRIGGER_TYPE_ANOMALYका इस्तेमाल करके, ट्रिगर पर आधारित प्रोफ़ाइलिंग का भी फ़ायदा लिया जा सकता है. इससे मेमोरी की सीमा पूरी होने पर, हीप डंप अपने-आप कैप्चर हो जाते हैं.
हर ऐप्लिकेशन के लिए मेमोरी की सीमाएं और सिस्टम लागू करने के बारे में ज़्यादा जानने के लिए, Android 17 के लिए ऐप्लिकेशन की मेमोरी की सीमाओं से जुड़ा दस्तावेज़ पढ़ें. अपने ऐप्लिकेशन को अलग-अलग डिवाइस कॉन्फ़िगरेशन पर टेस्ट करने के लिए, मेमोरी लिमिट करने वाले adb कमांड का इस्तेमाल करें.
मेमोरी से जुड़ी समस्याओं को मॉनिटर करना और उनका पता लगाना
जिस चीज़ को मापा नहीं जा सकता उसे ऑप्टिमाइज़ नहीं किया जा सकता. Android नेटवर्क में मेमोरी लीक, बहुत ज़्यादा हीप ऐलोकेशन, और आउट-ऑफ़-मेमोरी (ओओएम) क्रैश की पहचान करने के लिए, मॉनिटरिंग के पूरक टूल का इस्तेमाल करना ज़रूरी है:
- Android की ज़रूरी जानकारी की मदद से, ऐप्लिकेशन की परफ़ॉर्मेंस की खास जानकारी: Google Play Console में मौजूद Android की ज़रूरी जानकारी की मदद से, ऐप्लिकेशन की परफ़ॉर्मेंस की खास जानकारी देखी जा सकती है. इससे ज़्यादा लोगों को ऐप्लिकेशन की परफ़ॉर्मेंस के बारे में पता चलता है. साथ ही, इससे ऐप्लिकेशन पर कोई अतिरिक्त असर नहीं पड़ता. इसमें मेमोरी का इस्तेमाल (बिना सोर्स फ़ाइल वाली आरएसएस मेमोरी और स्वैप मेमोरी) और बिटमैप के लिए मेमोरी का इस्तेमाल जैसी ज़रूरी मेट्रिक मिलती हैं. इससे आपको अलग-अलग प्रोसेस की स्थितियों (फ़ोरग्राउंड, बैकग्राउंड, उपयोगकर्ता को दिखने वाली सेवाएं, और कैश मेमोरी) और रैम क्लास की रेंज में मेमोरी डिस्ट्रिब्यूशन की खास जानकारी मिलती है. इससे आपको मेमोरी के आउटलायर का पता लगाने में मदद मिलती है.
- Firebase Crashlytics की मदद से, मेमोरी लिमिटर से बाहर निकलने और ओओएम को ट्रैक करने की सुविधा: मेमोरी की समस्या की वजह से मुख्य मेट्रिक पर असर पड़ने से पहले, इसकी जानकारी पाने के लिए Crashlytics के वर्शन 20.1.0 में डीबग करने से जुड़ा अतिरिक्त डेटा उपलब्ध कराया गया है. इससे आपको मेमोरी से जुड़ी समस्याओं और मेमोरी लिमिटर से बाहर निकलने की गड़बड़ियों को पकड़ने, उन्हें प्राथमिकता देने, और ठीक करने में मदद मिलेगी. कस्टम लॉग और कुंजी-वैल्यू वाले मेटाडेटा के साथ-साथ इन इवेंट को ट्रैक करने से, मेमोरी फ़ेल होने पर प्रोसेस की स्थिति के बारे में तुरंत जानकारी मिलती है.
- ProfilingManager के साथ इन-फ़ील्ड ट्रेस: जिन टीमों के पास परफ़ॉर्मेंस की निगरानी करने वाला फ़्रेमवर्क है उनके लिए, Android 15 (एपीआई लेवल 35) में पेश किया गया
ProfilingManagerएपीआई उपलब्ध है. इसकी मदद से, आपका ऐप्लिकेशन प्रोग्राम के हिसाब से मेमोरी डीबग करने वाले आर्टफ़ैक्ट का अनुरोध कर सकता है और उन्हें इकट्ठा कर सकता है. जैसे, Java के हीप डंप और हीप प्रोफ़ाइल. ऐसा सीधे तौर पर प्रोडक्शन डिवाइसों से किया जा सकता है. सिस्टम के कुछ खास सिग्नल के आधार पर भी, हीप डंप कैप्चर ट्रिगर किए जा सकते हैं. जैसे,TRIGGER_TYPE_OOMऔरTRIGGER_TYPE_ANOMALY.
मेमोरी की निगरानी करने के अन्य तरीकों के बारे में ज़्यादा जानने के लिए, हमारा दस्तावेज़ पढ़ें.
खास जानकारी और आगे क्या करना है
Android ने सभी रैम क्लास के लिए, हर ऐप्लिकेशन की मेमोरी की सीमाएं बढ़ा दी हैं. इसलिए, अब आपको अपनी मेमोरी फ़ुटप्रिंट का ऑडिट करना चाहिए:
- मेमोरी को ऑप्टिमाइज़ करने को प्राथमिकता दें: सबसे सही तरीकों का इस्तेमाल करके, अपने ऐप्लिकेशन को मेमोरी की सीमाओं से होने वाले असर से बचाएं.
- मेमोरी के इस्तेमाल पर नज़र रखें: अपने ऐप्लिकेशन की मेमोरी के इस्तेमाल पर नज़र रखें, ताकि असामान्य व्यवहार का पता लगाया जा सके और उसे ठीक किया जा सके.
- अपने गेम को ऑप्टिमाइज़ करें: प्रोसेस की सभी स्थितियों में मेमोरी की बचत करने के लिए, गेम के लिए उपलब्ध नए दिशा-निर्देशों और मल्टीमीडिया वाले जटिल ऐप्लिकेशन का पालन करें.
काम के संसाधन और रेफ़रंस
- Android 17 में व्यवहार से जुड़े बदलाव: ऐप्लिकेशन के लिए मेमोरी की सीमाएं
- Android की ज़रूरी जानकारी: मेमोरी का इस्तेमाल (आरएसएस + स्वैप मेट्रिक) और बिट मैप मेमोरी का इस्तेमाल
- Android डेवलपर ब्लॉग: Android 17 के लिए, मेमोरी को कम इस्तेमाल करने के तरीके
- डेवलपर गाइड: अपने ऐप्लिकेशन की मेमोरी मैनेज करना
-
प्रॉडक्ट से जुड़ी खबरेंआज हम Android 17 को रिलीज़ कर रहे हैं. यह सुविधा, Android 17 के साथ काम करने वाले ज़्यादातर Pixel डिवाइसों पर उपलब्ध होगी. आने वाले महीनों में, Android 17 पर काम करने वाले नए डिवाइसों के बारे में जानें.
Matthew McCullough • पढ़ने में 13 मिनट लगेंगे -
प्रॉडक्ट से जुड़ी खबरेंGoogle I/O ‘26 में, हमने दिखाया कि Android के इकोसिस्टम में हुए नए बदलावों से, आपको अपने ऐप्लिकेशन की क्वालिटी को बेहतर बनाने में कैसे मदद मिल सकती है. साथ ही, डेवलपमेंट की प्रोसेस को ज़्यादा से ज़्यादा असरदार बनाया जा सकता है.
Ataul Munim • तीन मिनट में पढ़ा जा सकता है -
प्रॉडक्ट से जुड़ी खबरेंAndroid नेटवर्क का एक अहम हिस्सा, उपयोगकर्ताओं का भरोसा बनाए रखने के लिए हमारी साझा प्रतिबद्धता है. मोबाइल डिवाइसों के इस्तेमाल में बदलाव होने के साथ-साथ, संवेदनशील जानकारी को सुरक्षित रखने के हमारे तरीके में भी बदलाव हुआ है.
Robert Clifford • तीन मिनट में पढ़ा जा सकता है
Android डेवलपमेंट से जुड़ी नई अहम जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.