איך מתחילים להשתמש ב-Memory Advantage API למשחקי Unity

במדריך הזה מוסבר איך להשתמש בפלאגין של Memory Advantage ב-Unity כדי לשלב את Memory Advisor 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 > (נכסים >) ייבוא חבילה > חבילה מותאמת אישית ובוחרים את הורדת קובץ .unitypackage. אפשר גם ללחוץ לחיצה כפולה על הקובץ .unitypackage אחרי פתיחת הפרויקט ב-Unity.

שימוש בספרייה

בקטע הזה נסביר איך להשתמש בספרייה.

הפעלת הספרייה

תצטרכו לאתחל את הספרייה פעם אחת כשהאפליקציה מופעלת. כדי לעשות זאת, צריך להוסיף את הקוד הבא לפרויקט:

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

סקר על מצב הזיכרון

ניתן לאחזר את מצב הזיכרון של האפליקציה על ידי עריכת סקרים בספרייה ב במרווח הזמן הרצוי לך. משתמשים ב-MemoryAdחובה_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 Adwise API ואת פונקציית השעון תישלח הודעה כשהמדינה מתקרבת למגבלה או מצב הזיכרון (אבל לא למצב 'תקין'). לדוגמה, הקוד הבא יוצר שומר (watcher) ומבקש התראה של Memory Advantage API כל 2 שניות:

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 שמספק ממשק משתמש פשוט להקצאה ולפינוי זיכרון, ממשק API של Memory Advisor API למעקב אחר מצב הזיכרון.

אפשר לעיין בסקירה הכללית בנושא מקורות מידע נוספים ובעיות בדיווח.