Memory Advice API هي واجهة برمجة تطبيقات تجريبية أصلية تساعد تطبيقات Android في البقاء ضمن حدود الأمان لاستخدام الذاكرة. تحقّق واجهة برمجة التطبيقات ذلك من خلال تقدير مقدار موارد الذاكرة المستخدَمة، ثم إشعار التطبيق عند تجاوز حدود معيّنة. يمكن لواجهة برمجة التطبيقات أيضًا إرسال تقرير إلى تطبيقك يتضمّن النسبة المئوية المقدَّرة لاستخدام الذاكرة.
تساعد التقديرات التي توفّرها واجهة برمجة التطبيقات في تحديد الوقت الذي يجب أن يعدّل فيه تطبيقك استخدام الذاكرة، أو في العثور على جوانب يمكن تحسينها في الإصدارات المستقبلية من تطبيقك. ويمكن أن تشمل التعديلات أي شيء يغيّر استهلاك الذاكرة، مثل تقليل تفاصيل وجودة مواد العرض المرئية والصوتية.
تشمل موارد الذاكرة المقدَّرة ذاكرة الكومة الأصلية التي تم تخصيصها بواسطة malloc، وذاكرة الرسومات التي تم تخصيصها بواسطة واجهات برمجة التطبيقات OpenGL ES وVulkan Graphics، ما يجعل واجهة برمجة التطبيقات Memory Advice API مثالية للألعاب والتطبيقات التي تتطلّب رسومات مكثّفة.
تستند التقديرات إلى ما يلي:
- مقاييس الجهاز التي تجمعها واجهة برمجة التطبيقات
- بيانات تعلُّم الآلة من الأجهزة
- اختبار الجهاز
على مستوى واجهة برمجة التطبيقات، تحدّد واجهة برمجة التطبيقات Memory Advice API مجموعة من حالات نصائح الذاكرة، وتُرسلها إلى التطبيقات باستخدام مجموعة من الدوال.
البدء البدء باستخدام ألعاب Unity
التوزيعات
تُعدّ واجهة برمجة التطبيقات Memory Advice API جزءًا من "حزمة تطوير ألعاب Android" (AGDK) ويتم توزيعها من خلال القنوات التالية:
- إصدارات ثنائية في مكتبات Jetpack لألعاب Android
- إصدارات ثنائية على صفحة تنزيل "حزمة تطوير الألعاب لنظام التشغيل Android"
- رمز المصدر على مشروع Android المفتوح المصدر (AOSP)
يجب أن تستخدم الألعاب إصدار Memory Advice API الذي يُنصح به لبيئة الإصدار. بالنسبة إلى "استوديو Android"، ننصحك باستخدام إصدار Jetpack. بالنسبة إلى Android Game Development Extension (AGDE)، ننصحك بتنزيل الإصدار من صفحة تنزيل "مجموعة أدوات تطوير الألعاب على Android" (AGDK).
الميزات
يوضّح هذا القسم ميزات واجهة برمجة التطبيقات Memory Advice API.
حالة الذاكرة
تعرض واجهة برمجة التطبيقات حالات الذاكرة التالية للتطبيقات:
- MEMORYADVICE_STATE_OK
- MEMORYADVICE_STATE_APPROACHING_LIMIT
- MEMORYADVICE_STATE_CRITICAL
للحصول على التفاصيل، يُرجى الاطّلاع على صفحات مرجع memoryadvice_memorystate.
الإبلاغ عن حالة الذاكرة
تتيح واجهة برمجة التطبيقات إمكانية تسجيل حالة الذاكرة من خلال آلية الاستقصاء أو آلية معاودة الاتصال:
الاستقصاء:
يمكن لأي تطبيق استدعاء واجهة برمجة التطبيقات في أي وقت لاسترداد حالة الذاكرة.دالّة ردّ الاتصال:
يمكن لأي تطبيق تسجيل دالّة ردّ اتصال باستخدام واجهة برمجة التطبيقات Memory Advice API. يحدّد التطبيق عدد مرات تكرار الاتصال لتنفيذ معاودة الاتصال. تستخدم واجهة برمجة التطبيقات معدّل التكرار لتحديد وقت تنفيذ دالة الرجوع عندما تقترب حالة ذاكرة التطبيق من الحد الآمن أو تكون منخفضة بشكل خطير. لا يتم استدعاء دالة الرجوع إذا كانت حالة الذاكرة آمنة. يتم تنفيذ دالة الاستدعاء من سلسلة التعليمات البرمجية الخاصة بها، وليس من سلسلة التعليمات البرمجية التابعة للتطبيق.
اعتبارات التكلفة وعدد مرات الاتصال
تستخدم واجهة برمجة التطبيقات Memory Advice API وقتًا حسابيًا لإنشاء حالة الذاكرة. تختلف التكلفة حسب الجهاز، ولكنها تتراوح عادةً بين 1 و3 ملي ثانية لكل مكالمة. يجب أخذ هذا الحمل في الاعتبار عند تحديد عدد مرات طلب حالة الذاكرة أو معدّل التكرار الذي يجب تحديده لوظيفة معاودة الاتصال الخاصة بحالة الذاكرة.
المتطلبات
متطلبات الجهاز
- الإصدار 4.4 من نظام التشغيل Android (المستوى 19 لواجهة برمجة التطبيقات) أو إصدار أحدث
متطلبات التطبيق
لا تتيح واجهة برمجة التطبيقات سوى التطبيقات الأصلية (التطبيقات المكتوبة بشكل أساسي بلغة C/C++).
لا تتوافق واجهة برمجة التطبيقات إلا مع الأجهزة الفعلية، ولا تتوافق مع المحاكيات.
متطلبات إصدار NDK
يتوافق إصدار Memory Advice API مع معظم إصدارات NDK الأكثر رواجًا، يُرجى الرجوع إلى ملاحظات الإصدار للاطّلاع على قائمة NDK المتوافقة.
مراجع إضافية
- ملاحظات إصدار Memory Advice API
- المستندات المرجعية لواجهة برمجة التطبيقات Memory Advice API
- نموذج Memory Advice على Github
- رمز المصدر لواجهة برمجة التطبيقات Memory Advice API
المشاكل والملاحظات
إنّ واجهة برمجة التطبيقات Memory Advice API متاحة في الإصدار التجريبي، ونرحّب بتلقّي الملاحظات. إذا كانت لديك اقتراحات أو واجهت مشاكل أثناء استخدام واجهة برمجة التطبيقات، يمكنك إنشاء بطاقة مشكلة في IssueTracker.