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.