how fix memory leak android apps using ddms tool
Jak przetestować i naprawić wyciek pamięci dla aplikacji na Androida:
Optymalizacja pamięci jest większym wyzwaniem dla każdego programisty przed wysłaniem aplikacji do Sklepu Play.
qa rozmowa kwalifikacyjna pytania i odpowiedzi pdf
Wydajność aplikacji jest równie ważna, jak jej funkcjonalność. Ten artykuł jest oparty na Analiza sterty aplikacji przez DDMS (Dalvik Debug Monitor Service).
Większość aplikacji na Androida działa w języku JAVA i ma również problemy z wątkami.
Ważna uwaga - Narzędzie Dalvik Debug Monitor Server (DDMS) jest dostępne tylko w Android Studio 3.0 i niższych wersjach. Jeśli korzystasz ze Studio 3.0 lub nowszego, pamiętaj, aby używać Android Profiler do profilowania procesora, pamięci i wykorzystania sieci w aplikacji.
Ten samouczek pomoże Ci zrozumieć i zoptymalizować wyciek pamięci dla aplikacji na Androida za pomocą narzędzia DDMS. Analiza pamięci da wyobrażenie o pamięci, a optymalizacja wartości pamięci spowoduje w ten sposób mniejszy wyciek pamięci.
Czego się nauczysz:
- Powszechnie używane terminy
- DDMS (serwer monitorowania debugowania Dalvik)
- Kroki, aby uruchomić DDMS przez ADT
- Kroki, aby uruchomić DDMS za pośrednictwem Android Studio
- Wniosek
- rekomendowane lektury
Powszechnie używane terminy
Poniżej wymieniono niektóre z typowych terminów, których będziemy używać w tym projekcie:
- Sterta - To pamięć Runtime jest dostępna do alokacji i jest dystrybuowana dynamicznie. To zależy od platformy.
- Sterta Dalvik - Sterta Dalvik to połączenie klas i danych przez zygotę.
- Zygota - Zygote pomaga uruchamiać procesy aplikacji podczas ładowania systemu.
- PSS - Jest to liczba stron w pamięci procesu, mierzona w KB.
- Zbieranie śmieci - Wyrzucanie śmieci wyszukuje wszystkie obiekty, które są nadal używane i oznacza resztę jako śmieci.
DDMS (serwer monitorowania debugowania Dalvik)
To narzędzie pomaga analizować monitorowanie wydajności środowiska wykonawczego. Pomaga również w profilowaniu i dostosowywaniu aplikacji.
Oferta usług głównych DDMS
- Łączne statystyki alokacji obiektów Heap
- Statystyki wątków aplikacji
- Zrzut ekranu urządzenia
- Eksplorator plików urządzenia
- Kontrola połączeń przychodzących i SMS-ów
- Kontrola danych lokalizacji
- Sieciowa konsola statyczna
- Logcat (informacje szczegółowe, debugowanie, potwierdzenie, błąd)
Wyciek pamięci:
Aplikacja utrzymuje obiekt przez długi czas, nawet po spełnieniu tego celu, a ten obiekt nie jest pobierany przez GC.
Wykrywanie wycieku pamięci:
Ogólnie rzecz biorąc, aplikacja na Androida wyświetla okno dialogowe dla aplikacji, która nie odpowiada lub w najgorszym przypadku wyjątek braku pamięci. Każde urządzenie ma ograniczony rozmiar sterty i gdy aplikacja próbuje uzyskać dodatkową pamięć, obserwowane są wyjątki.
Aby sprawdzić całkowity rozmiar sterty urządzenia z Androidem, możemy użyć poniższych poleceń:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Kroki, aby uruchomić DDMS przez ADT
Krok 1: Uruchom pakiet adt (łatwo dostępny tutaj ) Lub zainstaluj pakiet ADT do konfiguracji systemu Windows, korzystając z poniższych łączy.
Windows 32: https://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
Windows 64: https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
Krok 2: Kliknij SDK
Krok 3: Kliknij narzędzia
Krok 4: Kliknij monitor.bat (DDMS)
Uwaga: Do analizy sterty wymagana jest aplikacja do debugowania.
Po pomyślnej instalacji pakietu ADT przejdź do wiersza poleceń (ustaw ścieżkę, jeśli adb nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne).
Sprawdź, czy urządzenie jest podłączone do systemu za pomocą polecenia adb (urządzenia adb). Po podłączeniu urządzenie jest podłączane do ekranu DDMS z nazwą pakietu aplikacji.
Kroki, aby uruchomić DDMS za pośrednictwem Android Studio
Studio -> Narzędzia -> Android -> Monitor urządzenia z systemem Android -> Kliknij przycisk DDMS w menu.
Kroki do analizy sterty
- Wybierz nazwę pakietu aplikacji, która pojawia się na ekranie DDMS.
- Wybierz ikonę aktualizacji sterty.
- Dotknij przyczyny GC przed podjęciem wartości dla każdego działania.
- Teraz w wierszu polecenia uruchom polecenie - powłoka adb zrzuca meminfo i naciśnij klawisz Enter.
- Wartości pojawią się w wierszu polecenia.
- PSS total, native, dalvik, heap size, heap free, heap-alokowane to wartości, które pomogą programistom w debugowaniu awarii pamięci.
- Lepsza reprezentacja danych ułatwi pracę programistom.
- Dane powinny wyglądać następująco:
- Wartość obiektów po kliknięciu na przyczynę GC.
- Suma PSS
- Natywny rozmiar sterty
- Rozmiar sterty Dalvik
- Łączny rozmiar sterty
- Natywna alokacja sterty
- Alokacja hałdy Dalvik
- Całkowity przydział sterty
- Natywna sterta wolna od sterty
- Sterta Dalvik - sterta wolna
- Razem bez sterty
- Obiekty (po kliknięciu na przyczyna GC z DDMS)
- % wykorzystanych% za darmo
Idealne testowanie: Aby uzyskać lepszą analizę aplikacji, spróbuj wykonać różne scenariusze, utrzymując aplikację w tle i lądując na tej samej stronie, wykonaj pełny przepływ tych często używanych scenariuszy.
Spróbuj użyć urządzeń niższej klasy, ponieważ najczęstsza awaria jest obserwowana z powodu pamięci, która jest wyjątkiem braku pamięci (OOM).
Ekran DDMS
Przykłady wartości Dalvik
Wniosek
Ten artykuł może służyć do testowania analizy sterty za pomocą narzędzia DDMS. Prawidłowe wartości parametrów pomogą programistom Androida w optymalizacji pamięci.
Znajomość narzędzi testowych jest dobra, ale efektywne korzystanie z tych narzędzi jest uważane za sztukę.
Miłej nauki !!
rekomendowane lektury
- Samouczek Appium do testowania aplikacji mobilnych na Androida i iOS
- Ponad 20 najlepszych narzędzi do wykrywania wycieków pamięci dla języków Java, C ++ w systemach Linux i Windows
- Jak zautomatyzować aplikacje na Androida za pomocą narzędzia TestComplete
- Pierwsze kroki z Robotium - najpopularniejszym narzędziem do testowania interfejsu użytkownika aplikacji na Androida
- 10 najlepszych aplikacji do zarządzania projektami w 2021 roku na urządzenia z systemem Android i iOS
- Samouczek testowania mobilnego interfejsu użytkownika (testowanie GUI aplikacji iOS i Android)
- Twórz testy Appium dla aplikacji na Androida
- 10 NAJLEPSZYCH aplikacji do śledzenia czasu dla freelancerów (2021 SELECTIVE)