Pierwsze kroki z interfejsem Memory Advice API dla gier na Unity

Ten przewodnik opisuje, jak używać wtyczki Memory Advice dla Unity zintegruj Memory Advice API w lub grę w Unity.

Wymagania

Wtyczka jest obsługiwana na platformach:

  • Unity 2019 z Androidem NDK r19

  • Unity 2020 z Androidem NDK R19

  • Unity 2021 z Androidem NDK r21

  • Unity 2022 z Androidem NDK r23

Jeśli używasz innych wersji Unity i Android NDK. Aby sprawdzić wersję NDK używaną przez Twoją instalację Unity, zobacz Przewodnik po konfiguracji środowiska Androida dla Unity.

Pobierz wtyczkę

Pobierz wtyczkę.

Importowanie wtyczki

Wtyczka to pakiet Unity, który możesz zaimportować do swojego projektu. Aby zaimportować kliknij kolejno Zasoby > Importuj pakiet > „Własny pakiet” i wybierz Pobrany plik: .unitypackage. Możesz też dwukrotnie kliknąć .unitypackage po otwarciu projektu w Unity.

Korzystanie z biblioteki

W tej sekcji opisano, jak korzystać z biblioteki.

Zainicjuj bibliotekę

Tę bibliotekę musisz zainicjować raz podczas uruchamiania aplikacji. Aby to zrobić, dodaj do projektu ten kod:

void Start()
{
    MemoryAdviceErrorCode errorCode = MemoryAdvice.Init();
    if(errorCode == MemoryAdviceErrorCode.Ok)
    {
        Debug.Log("Memory advice init successfully");
    }
}

Ankieta dotycząca stanu pamięci

Możesz pobrać stan pamięci aplikacji, odpytując bibliotekę w w wybranym przedziale czasu. Korzystanie z klasy MemoryAdvice_getMemoryState , gdy chcesz przeprowadzić sondowanie biblioteki:

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;
}

Konfigurowanie zegarka

Możesz też skonfigurować obserwatora i zarejestrować interfejs Memory Advice API, zostanie wywołana, gdy stan zbliży się do limitu lub stan pamięci (ale nie w przypadku stanu OK). Na przykład ten kod tworzy obserwatora i wysyła żądanie powiadomienia do interfejsu Memory Advice API co 2 sekundy:

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");
}

Co dalej

Nasz przykładowy projekt Unity możesz pobrać, który zapewnia prosty interfejs do przydzielania i zwalniania pamięci oraz używa Memory Advice API do monitorowania stanu pamięci.

Zobacz omówienie usługi dodatkowe materiały i problemach z raportowaniem.