how fix memory leak android apps using ddms tool
Jak otestovat a opravit únik paměti pro aplikace pro Android:
Optimalizace paměti je pro každého vývojáře větší výzvou před odesláním aplikace do obchodu Play.
co je nejlepší stahovač hudby pro Android
Výkon aplikace je stejně důležitý jako její funkčnost. Tento článek je založen na Analýza haldy aplikace prostřednictvím DDMS (Dalvik Debug Monitor Service).
Většina aplikací pro Android běží na JAVA a má také problémy s vlákny.
Důležitá poznámka - Nástroj Dalvik Debug Monitor Server (DDMS) je k dispozici pouze v Android Studio 3.0 a nižších verzích. Pokud používáte Studio 3.0 a novější, ujistěte se, že používáte Android Profiler k profilování využití procesoru, paměti a sítě vaší aplikace.
Tento kurz vám pomůže pochopit a optimalizovat únik paměti pro aplikaci pro Android pomocí nástroje DDMS. Analýza paměti poskytne představu o paměti a optimalizace hodnot paměti bude mít za následek menší únik paměti.
Co se naučíte:
- Běžně používané termíny
- DDMS (Dalvik Debug Monitor Server)
- Kroky ke spuštění DDMS pomocí ADT
- Kroky ke spuštění DDMS přes Android Studio
- Závěr
- Doporučené čtení
Běžně používané termíny
Níže jsou uvedeny některé běžné výrazy, které budeme v tomto projektu používat:
- Halda - Je to Runtime paměť, která je k dispozici pro alokaci a je distribuována dynamicky. Je to závislé na platformě.
- Halda Dalvik - Halda Dalvik je kombinací tříd a dat od zygoty.
- Zygota - Zygote pomáhá spouštět procesy aplikací, když se systém načte.
- PSS - Jde o počet stránek v paměti procesu, který se měří v kB.
- Odpadky - Garbage collection sleduje všechny objekty, které se stále používají, a značky odpočívají jako Garbage.
DDMS (Dalvik Debug Monitor Server)
Toto je nástroj, který pomáhá analyzovat sledování výkonu za běhu. Pomáhá také při profilování a ladění aplikací.
Nabídka hlavních služeb DDMS
- Statistiky přidělení haldy celkem
- Statistika vlákna aplikace
- Zařízení Snímání obrazovky
- Průzkumník souborů zařízení
- Kontrola příchozích hovorů a SMS
- Kontrola údajů o poloze
- Síťová statická konzola
- Logcat (podrobně, ladit, tvrdit, chyba)
Únik paměti:
Aplikace uchovává objekt po dlouhou dobu i po splnění účelu a tento objekt GC neshromažďuje.
Detekce úniku paměti:
Obecně platí, že aplikace pro Android zobrazí dialogové okno pro aplikaci, která neodpovídá nebo v nejhorším případě z výjimky paměti. Každé zařízení má omezenou velikost haldy a když se aplikace pokusí o další paměť, budou dodrženy výjimky.
Abychom mohli zkontrolovat celkovou velikost haldy zařízení Android, můžeme použít následující příkazy:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Kroky ke spuštění DDMS pomocí ADT
Krok 1: Spusťte balíček reklam (snadno dostupný tady ) Nebo nainstalujte balíček ADT pro konfiguraci systému Windows pomocí níže uvedených odkazů.
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: Klikněte na SDK
Krok č. 3: Klikněte na nástroje
Krok č. 4: Klikněte na monitor.bat (DDMS)
Poznámka: Pro analýzu haldy je vyžadován ladicí apk.
Po úspěšné instalaci balíčku ADT přejděte na příkazový řádek (nastavte cestu, pokud adb není rozpoznán jako interní nebo externí příkaz).
Zkontrolujte zařízení připojené k systému pomocí příkazu adb (zařízení adb). Jakmile je zařízení připojeno, je připojeno k obrazovce DDMS s názvem balíčku aplikace.
Kroky ke spuštění DDMS přes Android Studio
Studio -> Nástroje -> Android -> Monitor zařízení Android -> V nabídce klikněte na tlačítko DDMS.
Kroky k analýze hromady
- Vyberte název balíčku aplikace, která se zobrazuje na obrazovce DDMS.
- Vyberte ikonu haldy aktualizace.
- Než začnete s hodnotami pro každou akci, klepněte na příčinu GC.
- Nyní na příkazovém řádku spusťte příkaz - adb shell dumpsys meminfo a stiskněte klávesu enter.
- Na příkazovém řádku se zobrazí hodnoty.
- PSS total, native, dalvik, heap size, heap free, heap-allocated are the values that will help the developers to debug the memory crashes.
- Lepší reprezentace dat vývojářům usnadní práci.
- Data by měla vypadat takto:
- Hodnota objektů po kliknutí na příčinu GC.
- PSS celkem
- Nativní halda - velikost haldy
- Dalvik haldy - velikost haldy
- Celková velikost haldy
- Nativní halda - halda
- Dalvik halda - halda alokace
- Celkem alokace haldy
- Nativní halda - halda zdarma
- Halda Dalvik - halda zdarma
- Celkem haldy zdarma
- Objekty (po kliknutí na příčinu GC z DDMS)
- % použité% zdarma
Ideální testování: Pro lepší analýzu aplikací zkuste provést různé scénáře tak, že ponecháte aplikaci na pozadí, a přistáním na stejné stránce proveďte kompletní tok těchto běžně používaných scénářů.
Zkuste použít zařízení nižší třídy, protože nejběžnější selhání je pozorováno kvůli paměti, která je výjimkou z paměti (OOM).
Obrazovka DDMS
Ukázky hodnot Dalvik
Závěr
Tento článek lze použít k testování analýzy haldy pomocí nástroje DDMS. Správné hodnoty parametrů pomohou vývojářům Androidu optimalizovat paměť.
Znalost testovacích nástrojů je dobrá, ale jejich efektivní využívání je považováno za umění.
Šťastné učení !!
Doporučené čtení
- Výukový program Appium pro testování mobilních aplikací pro Android a iOS
- Nejlepší 20+ nástroje pro detekci úniku paměti pro Java, C ++ v systémech Linux a Windows
- Jak automatizovat aplikace pro Android pomocí nástroje TestComplete
- Začínáme s Robotium - nejoblíbenější nástroj pro testování uživatelského rozhraní aplikací pro Android
- 10 nejlepších aplikací pro správu projektů v roce 2021 pro zařízení Android a iOS
- Výukový program pro testování mobilního uživatelského rozhraní (testování grafického uživatelského rozhraní pro aplikace pro iOS a Android)
- Vytvořte testy Appium pro aplikaci pro Android
- 10 NEJLEPŠÍCH aplikací pro sledování času pro nezávislé pracovníky (2021 VÝBĚRNÉ)