Bu kılavuzda, Memory Advice API'yi Unity oyununuza entegre etmek üzere Unity için Memory Tavsiyesi eklentisini nasıl kullanacağınız açıklanmaktadır.
Şartlar
Eklenti şunlarda desteklenir:
Android NDK r19 ile Unity 2019
Android NDK r19 ile Unity 2020
Android NDK r21 ile Unity 2021
Android NDK r23 ile Unity 2022
Unity ve Android NDK'nın diğer sürümlerini kullanıyorsanız beklenmedik sorunlarla karşılaşabilirsiniz. Unity kurulumunuzda kullanılan NDK sürümünü bulmak için Unity ile ilgili Android ortamı kurulum kılavuzuna bakın.
Eklentiyi indirin
Eklentiyi indirin.
Eklentiyi içe aktarın
Eklenti, projenize aktarabileceğiniz bir Unity Paketidir. Eklentiyi içe aktarmak için Öğeler > Paketi İçe Aktar > Özel Paket'i tıklayın ve indirdiğiniz .unitypackage
dosyasını seçin. Unity projenizi açtıktan sonra .unitypackage
dosyasını çift tıklayabilirsiniz.
Kitaplığı kullanma
Bu bölümde, kitaplığın nasıl kullanılacağı açıklanmaktadır.
Kitaplığı başlatın
Uygulama başladığında kitaplığı ilk kullanıma hazırlamanız gerekir. Bunu yapmak için şu kodu projenize ekleyin:
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
Bellek durumu anketi
Kitaplığı istediğiniz zaman aralığında yoklayarak uygulamanızın bellek durumunu alabilirsiniz. Kitaplığı yoklamanız gerektiğinde MemoryAdvice_getMemoryState işlevini kullanın:
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;
}
İzleyici ayarlama
Ayrıca bir izleyici ayarlayıp Memory Advice API'yi kaydedebilirsiniz. Durum sınıra veya kritik bellek durumuna yaklaştığında izleyici işleviniz çağrılır (ancak sorun iyi durumda olmaz). Örneğin, aşağıdaki kod bir izleyici oluşturur ve her 2 saniyede bir Memory Advice API bildirimi ister:
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");
}
Sırada ne var?
Bellek ayırmak ve boşaltmak için basit bir kullanıcı arayüzü sağlayan ve bellek durumunu izlemek için Bellek Önerisi API'sini kullanan Unity örnek projemizi indirebilirsiniz.
Ek kaynaklar ve raporlama sorunları için genel bakışa göz atın.