بدء استخدام واجهة برمجة تطبيقات Memory Advice API لألعاب Unity

يوضّح هذا الدليل كيفية استخدام المكوّن الإضافي Memory Advice لـ Unity بهدف دمج Memory Advice API في لعبة Unity.

المتطلبات الأساسية

يتوفر المكوّن الإضافي على:

  • إصدار Unity 2019 مع Android NDK r19

  • إصدار Unity 2020 مع Android NDK r19

  • إصدار Unity 2021 مع Android NDK r21

  • إصدار Unity 2022 مع Android NDK r23

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

تنزيل المكوّن الإضافي

نزِّل المكوّن الإضافي.

استيراد المكوّن الإضافي

المكون الإضافي هو حزمة Unity يمكنك استيرادها إلى مشروعك. لاستيراد المكوّن الإضافي، انقر على Assets > import Package > Custom Package (الأصول > استيراد الحزمة) > Custom Package (الحزمة المخصّصة) > ثمّ اختَر ملف .unitypackage الذي نزّلته. يمكنك أيضًا النقر مرّتين على ملف .unitypackage بعد فتح مشروع Unity.

استخدام المكتبة

يوضّح هذا القسم كيفية استخدام المكتبة.

تهيئة المكتبة

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

void Start()
{
    MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
    if(errorCode == MemoryAdviceErrorCode.Ok)
    {
        Debug.Log("Memory advice init successfully");
    }
}

استطلاع حول حالة الذاكرة

يمكنك استرداد حالة الذاكرة لتطبيقك من خلال استطلاع رأي المكتبة في الفاصل الزمني الذي تختاره. استخدِم الدالة MemoryAdvice_getMemoryState كلما احتجت إلى استطلاع رأي في المكتبة:

MemoryState memoryState = MemoryAdvice.GetMemoryState();
switch (memoryState)
{
    case MemoryState.Ok:
        //The application can safely allocate memory.
        break;
    case MemoryState.ApproachingLimit:
        // The application should minimize memory allocation.
        break;
    case  MemoryState.Critical:
        // The application should free memory as soon as possible
        // until the memory state changes.
        break;
}

إعداد حساب للمُشاهد

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

MemoryAdviceErrorCode errorCode = MemoryAdvice.RegisterWatcher(2000,
        new MemoryWatcherDelegateListener((MemoryState state) =>
    {
        switch (memoryState)
        {
            case MemoryState.ApproachingLimit:
                // The application should minimize memory allocation.
                break;
            case  MemoryState.Critical:
                // The application should free memory as soon as possible
                // until the memory state changes.
                break;
        }
    })
);

if(errorCode == MemoryAdviceErrorCode.Ok)
{
    Debug.Log("Memory Advice watcher registered successfully");
}

الخطوات التالية

يمكنك تنزيل نموذج مشروع Unity الذي يوفر واجهة مستخدم بسيطة لتخصيص الذاكرة وتحريرها، ويستخدم Memory Advice API لمراقبة حالة الذاكرة.

راجِع النظرة العامة للاطّلاع على المراجع الإضافية والمشاكل المتعلّقة بإعداد التقارير.