Unity oyunları için Bellek Advice API'sini kullanmaya başlama

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.