Bu kılavuzda, Unity için Memory Advice eklentisini kullanarak Memory Advice API'yi Unity oyununuza nasıl entegre edeceğiniz açıklanmaktadır.
Şartlar
Eklenti şu cihazlarda 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'nin 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ü öğrenmek için Unity'ye yönelik Android ortamı kurulum kılavuzuna bakın.
Eklentiyi indirin
Eklentiyi indirin.
Eklentiyi içe aktarma
Eklenti, projenize aktarabileceğiniz bir Unity paketidir. Eklentiyi içe aktarmak için Öğeler > Paket İç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ıklayarak da açabilirsiniz.
Kitaplığı kullanma
Bu bölümde, kitaplığın nasıl kullanılacağı açıklanmaktadır.
Kitaplığı başlatma
Uygulama başladığında kitaplığı bir kez başlatmanı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 için yoklama
Kitaplığı istediğiniz aralıklarla 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 oluşturma
Ayrıca bir izleyici ayarlayabilir ve Memory Advice API'yi kaydedebilirsiniz. Durum sınıra yaklaştığında veya kritik bellek durumuna ulaştığında (ancak iyi durumda değilken) izleyici işleviniz çağrılır. Ö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 ayırma ve boşaltma için basit bir kullanıcı arayüzü sağlayan ve bellek durumunu izlemek için Memory Advice API'yi kullanan Unity örnek projemizi indirebilirsiniz.
Ek kaynaklar ve bildirme sorunları için genel bakış bölümüne bakın.