Pamięć Androida

Na tych stronach znajdziesz informacje o tym, jak poprawić wykorzystanie pamięci przez aplikację.

Ogólne wskazówki dotyczące pamięci

Omówienie pamięci
Wyjaśnia podstawową architekturę pamięci Androida, ograniczenia pamięci RAM i sposób, w jaki system operacyjny równoważy procesy za pomocą narzędzia Low Memory Killer (LMK).
Zarządzanie pamięcią
Opisuje sprawdzone metody dla deweloperów dotyczące zwalniania zasobów w różnych fazach cyklu życia komponentu, unikania wycieków pamięci i zarządzania pamięcią podczas przechodzenia między stanami procesu.
Informacje o pamięci Androida i rozwiązywanie problemów z nią związanych
Zawiera kompleksowy przegląd architektury pamięci Androida, narzędzi dostępnych do analizy i praktycznych ćwiczeń, które pomogą Ci identyfikować i rozwiązywać problemy związane z pamięcią.
Ustawianie budżetów pamięci aplikacji
Wyjaśnia, jak deklarować budżety pamięci aplikacji i nimi zarządzać, aby ograniczyć zużycie pamięci do aktywnego zestawu roboczego aplikacji.

Optymalizacje dotyczące konkretnego obszaru

Omówienie pamięci gier
Szczegółowe informacje o budżetowaniu pamięci, obsłudze alokacji natywnej i zarządzaniu zasobami graficznymi, które są dostosowane do aplikacji korzystających z silników gier.
Optymalizacja obrazów bitmapowych
Pokazuje, jak efektywnie zmieniać rozmiar, dekodować i buforować komponenty bitmapowe w bibliotekach obrazów.
Zarządzanie pamięcią komponentu WebView i diagnozowanie jej
Wyjaśnia wieloprocesowy model pamięci WebView, opisuje, jak prawidłowo zarządzać jego cyklem życia, aby zapobiegać wyciekom, i podaje praktyczne sposoby diagnozowania problemów z pamięcią.
Optymalizacja kodu R8
Wyjaśnia, jak używać R8 do zmniejszania rozmiaru pliku APK, narzutu metadanych i zużycia pamięci w czasie działania.

Narzędzia do debugowania pamięci lokalnej

Narzędzia Android Studio
Umożliwia sprawdzanie sterty w czasie rzeczywistym, śledzenie alokacji pamięci i wykrywanie wycieków pamięci bezpośrednio w środowisku IDE.
Eksplorator zrzutów sterty Perfetto
Umożliwia szczegółową analizę wizualną natywnych zrzutów sterty Java lub Kotlin, aby wyodrębnić drzewa zachowanych obiektów i anonimowe alokacje pamięci.
Rejestrowanie śladu systemowego na urządzeniu
Pokazuje, jak nagrywać ślady na poziomie systemu na urządzeniu, aby rozwiązywać błędy związane z wydajnością w aplikacji.
Debugowanie wykorzystania pamięci na Androidzie
Wyjaśnia, jak zrozumieć zarządzanie pamięcią w Linuksie i używać narzędzi takich jak dumpsys meminfo, Perfetto, natywne profile sterty i zrzuty sterty do śledzenia wykorzystania pamięci i identyfikowania wycieków.

Narzędzia do zarządzania pamięcią na poziomie produkcyjnym

Android Vitals: wykorzystanie pamięci (anonimowa pamięć RSS + przestrzeń wymiany)
Android Vitals udostępnia dane o wykorzystaniu pamięci przez aplikację w wersji produkcyjnej, podzielone według stanów procesu: pierwszy plan, usługa działająca na pierwszym planie i usługa w tle.
Android Vitals: wykorzystanie pamięci przez bitmapy
Android Vitals udostępnia wskaźniki dotyczące wykorzystania pamięci bitmapy aplikacji, agregując dane z urządzeń z Androidem.
Android Vitals: optymalizacja kodu DEX
Android Vitals może Cię powiadomić, gdy poziom optymalizacji kodu DEX aplikacji jest niski. Obejmuje to zaciemnianie kodu, zmniejszanie rozmiaru i optymalizację aplikacji i gier, które korzystają z R8.
Crashlytics 20.1.0
Wyświetla wyjątki dotyczące braku pamięci w środowisku produkcyjnym i zakończenia działania aplikacji przez ogranicznik pamięci wraz z kontekstem diagnostycznym, aby umożliwić ustalanie priorytetów i naprawianie błędów w środowisku produkcyjnym.
ProfilingManager
Zaawansowany interfejs API, który umożliwia aplikacjom programowe zbieranie i przesyłanie zrzutów sterty produkcyjnej oraz profili sterty z sesji użytkowników na żywo.

Dodatkowe materiały

Więcej informacji o pamięci znajdziesz w tych materiałach:

Posty na blogu

Filmy