Bu kılavuzda, Memory Advice API'yi Unity oyununuza entegre etmek amacıyla Unity için Memory Advice eklentisinin nasıl kullanılacağı açıklanmaktadır.
Gereksinimler
Eklenti şunlar üzerinde 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 farklı sürümlerini kullanıyorsanız beklenmedik sorunlarla karşılaşabilirsiniz. Unity yüklemenizde kullanılan NDK sürümünü bulmak için Unity ile ilgili Android ortamı kurulum kılavuzuna göz atın.
Eklentiyi indirin
Eklentiyi indirin.
Eklentiyi içe aktar
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ı da çift tıklayabilirsiniz.
Kitaplığı kullanma
Bu bölümde, kitaplığın nasıl kullanılacağı açıklanmaktadır.
Kitaplığı başlatma
Uygulama başladığında kitaplığı ilk kullanıma hazırlamanız gerekir. Bunu yapmak için projenize şu kodu ekleyin:
void Start()
{
MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
if(errorCode == MemoryAdviceErrorCode.Ok)
{
Debug.Log("Memory advice init successfully");
}
}
Bellek durumu anketi
Kitaplığı seçtiğiniz aralıkta yoklayarak uygulamanızın bellek durumunu öğrenebilirsiniz. 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 izleyici ayarlayıp Memory Advice API'ye kaydedebilirsiniz. Durum sınıra veya kritik bellek durumuna yaklaştığında izleyici işleviniz çağrılır (ancak tamam durumunda olmaz). Örneğin, aşağıdaki kod bir izleyici oluşturur ve 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 tahsisi ve boşaltmak için basit bir kullanıcı arayüzü sağlayan ve bellek durumunu izlemek için Bellek Tavsiyesi API'sini kullanan Unity örnek projemizi indirebilirsiniz.
Ek kaynaklar ve raporlama sorunları için genel bakış bölümüne göz atın.