نظرة عامة على Memory Advice API

‫Memory Advice API هي واجهة برمجة تطبيقات تجريبية أصلية تساعد تطبيقات Android في البقاء ضمن حدود الأمان لاستخدام الذاكرة. تحقّق واجهة برمجة التطبيقات هذا من خلال تقدير مقدار موارد الذاكرة المستخدَمة، ثم إعلام التطبيق عند تجاوز حدود معيّنة. يمكن أن تقدّم واجهة برمجة التطبيقات أيضًا النسبة المئوية المقدَّرة لاستخدام الذاكرة مباشرةً إلى تطبيقك.

تساعد التقديرات التي توفّرها واجهة برمجة التطبيقات في تحديد الوقت الذي يجب فيه أن يعدّل تطبيقك استخدام الذاكرة، أو في العثور على جوانب يمكن تحسينها في الإصدارات المستقبلية من تطبيقك. ويمكن أن تشمل التعديلات أي شيء يغيّر استهلاك الذاكرة، مثل تقليل تفاصيل وجودة مواد العرض المرئية والصوتية.

تشمل موارد الذاكرة المقدَّرة ذاكرة الكومة الأصلية التي تم تخصيصها باستخدام malloc، وذاكرة الرسومات التي تم تخصيصها باستخدام واجهات برمجة التطبيقات OpenGL ES وVulkan Graphics، ما يجعل واجهة Memory Advice API مثالية للألعاب والتطبيقات التي تتطلّب رسومات مكثّفة.

تستند التقديرات إلى ما يلي:

  • مقاييس الجهاز التي تجمعها واجهة برمجة التطبيقات
  • بيانات تعلُّم الآلة من الأجهزة
  • اختبار الجهاز

على مستوى واجهة برمجة التطبيقات، تحدّد واجهة برمجة التطبيقات Memory Advice API مجموعة من حالات نصائح الذاكرة وتنقلها إلى التطبيقات باستخدام مجموعة من الدوال.

البدء البدء باستخدام ألعاب Unity

التوزيعات

تُعدّ واجهة برمجة التطبيقات Memory Advice API جزءًا من "حزمة تطوير ألعاب Android" (AGDK) ويتم توزيعها من خلال القنوات التالية:

يجب أن تستخدم الألعاب إصدار 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 هي إصدار تجريبي ونرحّب بتلقّي الملاحظات. إذا كانت لديك اقتراحات أو واجهت مشاكل أثناء استخدام واجهة برمجة التطبيقات، يمكنك إنشاء بطاقة مشكلة في IssueTracker.