Memory Advice API एक एक्सपेरिमेंटल नेटिव एपीआई है. इससे, Android ऐप्लिकेशन को मेमोरी के इस्तेमाल से जुड़ी सुरक्षा सीमाओं के अंदर रखने में मदद मिलती है. एपीआई, इस्तेमाल में मौजूद मेमोरी रिसॉर्स का अनुमान लगाकर ऐसा करता है. इसके बाद, तय थ्रेशोल्ड से ज़्यादा मेमोरी इस्तेमाल होने पर, ऐप्लिकेशन को सूचना देता है. यह एपीआई, सीधे आपके ऐप्लिकेशन में मेमोरी के इस्तेमाल का अनुमानित प्रतिशत भी बता सकता है.
एपीआई से मिले अनुमान से यह तय करने में मदद मिलती है कि आपके ऐप्लिकेशन को, स्मृति के इस्तेमाल में कब बदलाव करना चाहिए या आने वाले समय में आपके ऐप्लिकेशन के वर्शन में किन चीज़ों को बेहतर बनाया जा सकता है. बदलावों में, स्मृति के इस्तेमाल में बदलाव करने वाली कोई भी चीज़ शामिल हो सकती है. जैसे, विज़ुअल और ऑडियो ऐसेट की जानकारी और क्वालिटी को कम करना.
अनुमानित मेमोरी रिसॉर्स में, malloc से एलोकेट की गई नेटिव हेप मेमोरी और OpenGL ES और Vulkan Graphics 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 के साथ कॉलबैक फ़ंक्शन रजिस्टर कर सकता है. ऐप्लिकेशन, कॉलबैक के लिए कॉल करने की फ़्रीक्वेंसी तय करता है. एपीआई, फ़्रीक्वेंसी का इस्तेमाल करके यह तय करता है कि ऐप्लिकेशन की मेमोरी की स्थिति, सुरक्षित सीमा के करीब होने या बहुत कम होने पर, कॉलबैक कब चलाया जाए. अगर मेमोरी की स्थिति सुरक्षित है, तो कॉलबैक को ट्रिगर नहीं किया जाता. कॉलबैक को उसकी अपनी थ्रेड से चलाया जाता है, ऐप्लिकेशन की थ्रेड से नहीं.
कॉल की लागत और फ़्रीक्वेंसी से जुड़ी बातें
मेमोरी का स्टेटस जनरेट करने के लिए, मेमोरी सलाह देने वाला एपीआई, कैलकुलेशन के समय का इस्तेमाल करता है. यह शुल्क, डिवाइस के हिसाब से अलग-अलग होता है. हालांकि, आम तौर पर हर कॉल के लिए यह शुल्क 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 में समस्या दर्ज करें.