این راهنما نحوه استفاده از افزونه Memory Advice برای Unity را برای ادغام Memory Advice API در بازی Unity خود توضیح می دهد.
الزامات
این افزونه در موارد زیر پشتیبانی می شود:
یونیتی 2019 با اندروید NDK r19
یونیتی 2020 با اندروید NDK r19
یونیتی 2021 با اندروید NDK r21
یونیتی 2022 با اندروید NDK r23
اگر از نسخههای دیگر Unity و Android NDK استفاده میکنید، ممکن است با مشکلات غیرمنتظرهای مواجه شوید. برای یافتن نسخه NDK مورد استفاده در نصب Unity، به راهنمای تنظیم محیط Android برای Unity مراجعه کنید.
افزونه را دانلود کنید
افزونه را دانلود کنید.
افزونه را وارد کنید
این افزونه یک بسته Unity است که می توانید آن را به پروژه خود وارد کنید. برای وارد کردن افزونه، روی Assets > Import Package > Custom Package کلیک کنید و فایل .unitypackage
را که دانلود کرده اید انتخاب کنید. همچنین می توانید پس از باز کردن پروژه Unity خود، روی فایل .unitypackage
دوبار کلیک کنید.
از کتابخانه استفاده کنید
در این بخش نحوه استفاده از کتابخانه توضیح داده شده است.
کتابخانه را راه اندازی کنید
وقتی برنامه شروع به کار کرد، باید کتابخانه را یک بار مقداردهی اولیه کنید. برای انجام این کار، این کد را به پروژه خود اضافه کنید:
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;
}
یک ناظر راه اندازی کنید
همچنین میتوانید یک Watcher راهاندازی کنید و Memory Advice API را ثبت کنید، و عملکرد تماشاگر شما زمانی فراخوانی میشود که وضعیت به حد مجاز یا بحرانی حافظه نزدیک شود (اما نه برای حالت خوب). به عنوان مثال، کد زیر یک Watcher ایجاد می کند و هر 2 ثانیه یک اعلان 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 برای نظارت بر وضعیت حافظه استفاده میکند.
برای منابع اضافی و مشکلات گزارش، مرور کلی را ببینید.