Memory Advice API, एक एक्सपेरिमेंटल नेटिव एपीआई है. यह Android ऐप्लिकेशन को मेमोरी इस्तेमाल करने की सुरक्षित सीमाओं के अंदर रहने में मदद करता है. API, इस्तेमाल किए जा रहे मेमोरी संसाधनों का अनुमान लगाकर ऐसा करता है. इसके बाद, कुछ थ्रेशोल्ड पार होने पर ऐप्लिकेशन को सूचना देता है. यह एपीआई, मेमोरी के इस्तेमाल का अनुमानित प्रतिशत भी सीधे आपके ऐप्लिकेशन को रिपोर्ट कर सकता है.
एपीआई से मिले अनुमानों की मदद से, यह तय किया जा सकता है कि आपके ऐप्लिकेशन को मेमोरी के इस्तेमाल को कब अडजस्ट करना चाहिए. साथ ही, इससे यह भी पता लगाया जा सकता है कि ऐप्लिकेशन के आने वाले वर्शन में किन चीज़ों को बेहतर बनाया जा सकता है. अडजस्टमेंट में, मेमोरी के इस्तेमाल को बदलने वाली कोई भी चीज़ शामिल हो सकती है. जैसे, विज़ुअल और ऑडियो ऐसेट की क्वालिटी और जानकारी को कम करना.
अनुमानित मेमोरी रिसॉर्स में, malloc से असाइन की गई नेटिव हीप मेमोरी शामिल होती है. साथ ही, इसमें OpenGL ES और Vulkan Graphics API से असाइन की गई ग्राफ़िक्स मेमोरी भी शामिल होती है. इसलिए, Memory Advice API, गेम और ग्राफ़िक इंटेंसिव ऐप्लिकेशन के लिए सबसे सही है.
ये अनुमान, इन बातों को ध्यान में रखकर लगाए जाते हैं:
- एपीआई से इकट्ठा की गई डिवाइस मेट्रिक
- डिवाइसों से मशीन लर्निंग का डेटा
- डिवाइस की जांच करना
एपीआई लेवल पर, Memory Advice API, मेमोरी से जुड़ी सलाह की स्थितियों का एक सेट तय करता है. साथ ही, फ़ंक्शन के एक सेट के साथ ऐप्लिकेशन को इसकी जानकारी देता है.
शुरू करें Unity गेम के लिए शुरू करें
डिस्ट्रिब्यूशन
Memory Advice API, Android Games Development Kit (AGDK) का हिस्सा है. इसे इन चैनलों के ज़रिए डिस्ट्रिब्यूट किया जाता है:
- Android Games Jetpack लाइब्रेरी में बाइनरी रिलीज़.
- AGDK के डाउनलोड पेज पर बाइनरी रिलीज़.
- AOSP पर सोर्स कोड.
गेम को Memory Advice API के उस वर्शन का इस्तेमाल करना चाहिए जो उनके बिल्ड एनवायरमेंट के लिए सुझाया गया है. Android Studio के लिए, हमारा सुझाव है कि आप Jetpack रिलीज़ का इस्तेमाल करें. हमारा सुझाव है कि Android Game Development Extension (AGDE) के लिए, AGDK के डाउनलोड पेज पर रिलीज़ करें.
सुविधाएं
इस सेक्शन में, Memory Advice API की सुविधाओं के बारे में बताया गया है.
मेमोरी की स्थिति
एपीआई, ऐप्लिकेशन को मेमोरी की इन स्थितियों के बारे में बताता है:
- MEMORYADVICE_STATE_OK
- MEMORYADVICE_STATE_APPROACHING_LIMIT
- MEMORYADVICE_STATE_CRITICAL
ज़्यादा जानकारी के लिए, memoryadvice_memorystate के रेफ़रंस पेज देखें.
मेमोरी की स्थिति की रिपोर्ट करना
एपीआई, मेमोरी की स्थिति की जानकारी देने के लिए, पोलिंग या कॉलबैक मेकेनिज़्म का इस्तेमाल करता है:
पोलिंग:
कोई ऐप्लिकेशन, मेमोरी की स्थिति को वापस पाने के लिए, एपीआई को किसी भी समय कॉल कर सकता है.कॉलबैक:
कोई ऐप्लिकेशन, Memory Advice API के साथ कॉलबैक फ़ंक्शन रजिस्टर कर सकता है. ऐप्लिकेशन, कॉलबैक के लिए कॉल करने की फ़्रीक्वेंसी तय करता है. एपीआई, फ़्रीक्वेंसी का इस्तेमाल यह तय करने के लिए करता है कि ऐप्लिकेशन की मेमोरी की स्थिति सुरक्षित सीमा के करीब पहुंचने या बहुत कम होने पर, कॉलबैक को कब लागू करना है. अगर मेमोरी की स्थिति सुरक्षित है, तो कॉलबैक शुरू नहीं होता. कॉलबैक को अपने थ्रेड से एक्ज़ीक्यूट किया जाता है, न कि ऐप्लिकेशन के थ्रेड से.
लागत और कॉल करने की फ़्रीक्वेंसी से जुड़ी बातें
Memory Advice API, मेमोरी की स्थिति जनरेट करने के लिए कंप्यूटेशनल टाइम का इस्तेमाल करता है. डिवाइस के हिसाब से, इसकी लागत अलग-अलग होती है. हालांकि, आम तौर पर यह हर कॉल के लिए 1 से 3 मि॰से॰ के बीच होती है. आपको यह ओवरहेड तब ध्यान में रखना चाहिए, जब आपको यह तय करना हो कि मेमोरी की स्थिति को कितनी बार पोल करना है या मेमोरी की स्थिति के कॉलबैक के लिए कितनी फ़्रीक्वेंसी तय करनी है.
ज़रूरी शर्तें
डिवाइस से जुड़ी ज़रूरी शर्तें
- Android 4.4 (एपीआई लेवल 19) या इसके बाद का वर्शन.
ऐप्लिकेशन से जुड़ी ज़रूरी शर्तें
यह एपीआई सिर्फ़ नेटिव ऐप्लिकेशन (ऐसे ऐप्लिकेशन जो मुख्य रूप से C/C++ में लिखे गए हैं) के साथ काम करता है.
यह एपीआई सिर्फ़ फ़िज़िकल डिवाइसों के साथ काम करता है. एम्युलेटर के साथ काम नहीं करता.
NDK वर्शन के लिए ज़रूरी शर्तें
Memory Advice API के इस वर्शन के साथ, NDK के सबसे लोकप्रिय वर्शन काम करते हैं. NDK के साथ काम करने वाले वर्शन की सूची देखने के लिए, रिलीज़ नोट देखें.
अतिरिक्त संसाधन
- Memory Advice API के रिलीज़ नोट
- Memory Advice API के बारे में जानकारी देने वाला दस्तावेज़
- GitHub पर मेमोरी से जुड़ी सलाह का सैंपल
- Memory Advice API का सोर्स कोड
समस्याएं और सुझाव/राय
Memory Advice API का बीटा वर्शन उपलब्ध है. अगर आपके पास कोई सुझाव है या आपको एपीआई का इस्तेमाल करते समय कोई समस्या आती है, तो IssueTracker में समस्या की रिपोर्ट करें.