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

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

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

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

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

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

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

البدء البدء في ألعاب Unity

التوزيعات

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

يجب أن تستخدم الألعاب إصدار Memory Advice API الذي يُنصح به لبيئة الإنشاء. بالنسبة إلى "استوديو Android"، ننصحك باستخدام إصدار 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 وقت الحساب لإنشاء حالة الذاكرة. تختلف التكلفة حسب الجهاز، ولكنها تتراوح عادةً بين ملي ثانية واحدة و3 ملي ثانية لكل مكالمة. يجب مراعاة هذه النفقات العامة عند تحديد عدد المرات التي يتم فيها استطلاع حالة الذاكرة، أو عدد المرات التي يتم فيها تحديد وقت الاستدعاء لحالة الذاكرة.

المتطلبات

متطلبات الجهاز

  • الإصدار 4.4 من نظام التشغيل Android (المستوى 19 لواجهة برمجة التطبيقات) أو إصدار أحدث

متطلبات التطبيق

  • لا تتيح واجهة برمجة التطبيقات سوى استخدام التطبيقات المكتوبة بلغات برمجة أساسية (التطبيقات المكتوبة في الأساس بلغة C/C++).

  • لا تتيح واجهة برمجة التطبيقات سوى الأجهزة الفعلية، ولا تتيح المحاكيات.

متطلبات إصدار حزمة تطوير البرامج (NDK)

يتوافق إصدار Memory Advice API مع معظم إصدارات NDK الرائجة، يُرجى الرجوع إلى ملاحظات الإصدار للاطّلاع على قائمة إصدارات NDK المتوافقة.

مراجع إضافية

المشاكل والملاحظات

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