Czasami Android zabija (lub kończy) najlepsze gry o wysokiej jakości, gdy urządzenie ma mało pamięci. Android stara się wykorzystać całą dostępną pamięć do buforowania aplikacji i gier, aby zapewnić ich szybkie wczytywanie (co poprawia komfort użytkowania), ale gdy pamięć staje się ograniczona, system zabija aplikacje i gry, które najbardziej ją obciążają, aby zwolnić pamięć na potrzeby normalnego działania urządzenia.
Informacje, statystyki i sprawdzone metody, które pomogą Ci lepiej wykorzystać pamięć w grze:
- Użyj interfejsu
ApplicationExitInfo
– ten interfejs API Java/Kotlin zwraca powód, dla którego system Android zakończył działanie poprzedniej gry. Użyj poleceniaApplicationExitInfo
, aby sprawdzić, czy niski poziom pamięci był przyczyną zakończenia poprzedniego procesu. Sprawdź, czy gra nie została zatrzymana z powodu zbyt małej ilości pamięci, aby można ją było zoptymalizować tak, aby wykorzystywała mniej pamięci na danym urządzeniu. - Sprawdź łączną pamięć fizyczną RAM – aby zapobiec zamykaniu gier, gdy są one na pierwszym planie, oraz dopasować je do możliwości urządzenia, sprawdź łączną pamięć fizyczną RAM i na tej podstawie dostosuj wykorzystanie pamięci przez gry. Jeśli chcesz, aby aplikacje nie były zabijane w krótkim czasie po przejściu do tła (aby umożliwić graczowi wielozadaniowość), użyj wywołań zwrotnych trim (szczególnie
TRIM_MEMORY_UI_HIDDEN
), aby zmniejszyć zużycie pamięci przez grę. - Nie rejestruj wywołań trim, które zostały wycofane – Android nie ma interfejsów API do wykrywania natywnych zdarzeń związanego z niedostatkiem pamięci, gdy przekroczone są limity pamięci (patrz objaśnienie Low memory killer daemon). W Androidzie nie zaleca się korzystania z funkcji Trim callbacks, ponieważ nie pomagają one w zapobieganiu zabijaniu procesów z powodu braku pamięci. Dlatego Android wycofał wszystkie te funkcje, z wyjątkiem funkcji
TRIM_MEMORY_UI_HIDDEN
iTRIM_MEMORY_BACKGROUND
.
Demon zarządzający małą ilością pamięci Demon lmkd to proces, który monitoruje stan pamięci w urządzeniu z Androidem i reaguje na wysokie obciążenie pamięci, zamykając procesy o najmniejszym znaczeniu, aby zachować akceptowalny poziom wydajności systemu. Demon może wybrać procesy do zabicia bez oczekiwania na potwierdzenie przez proces jakiegokolwiek wywołania zwrotnego. W związku z tym aplikacje i gry nie otrzymają powiadomienia, które stanowiłoby dla nich ostatnią szansę na zwolnienie pamięci przed zamknięciem. Dowiedz się więcej o demonie low memory killer. |