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
- Przygotowanie aplikacji do obsługi większych limitów pamięci
- Priorytetowe traktowanie efektywności pamięci: najważniejsze kroki w Androidzie 17