يوضّح هذا الدليل كيفية استخدام إضافة Memory Advice في Unity لدمج Memory Advice API في لعبة Unity.
المتطلبات
يتوافق المكوّن الإضافي مع:
Unity 2019 مع الإصدار 19 من حزمة تطوير البرامج (NDK) لنظام التشغيل Android
Unity 2020 مع الإصدار 19 من حزمة تطوير البرامج (NDK) لنظام التشغيل Android
Unity 2021 مع الإصدار 21 من حزمة تطوير البرامج الأصلية (NDK) لنظام التشغيل Android
Unity 2022 مع Android NDK r23
قد تواجه مشاكل غير متوقّعة إذا كنت تستخدم إصدارات أخرى من Unity وAndroid NDK. لمعرفة إصدار NDK المستخدَم في عملية تثبيت Unity، راجِع دليل إعداد بيئة Android في Unity.
تنزيل المكوّن الإضافي
نزِّل المكوّن الإضافي.
استيراد المكوّن الإضافي
المكوّن الإضافي هو حزمة Unity يمكنك استيرادها إلى مشروعك. لاستيراد المكوّن الإضافي، انقر على مواد العرض (Assets) > استيراد حزمة (Import 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 لتتبُّع حالة الذاكرة.
يمكنك الاطّلاع على النظرة العامة للحصول على مراجع إضافية والإبلاغ عن المشاكل.