how fix memory leak android apps using ddms tool
Hvordan teste og fikse minnelekkasje for Android-applikasjoner:
Minneoptimalisering er en større utfordring for enhver utvikler før du skyver en app til spillbutikken.
qtp intervju spørsmål og svar i 4 år erfarne
Ytelsen til en app er like viktig som funksjonaliteten. Denne artikkelen er basert på Hauganalyse av en applikasjon gjennom DDMS (Dalvik Debug Monitor Service).
De fleste Android-applikasjoner kjører på JAVA og har også problemer med tråden.
Viktig notat - Dalvik Debug Monitor Server (DDMS) verktøy er bare tilgjengelig i Android Studio 3.0 og lavere versjoner. Hvis du bruker Studio 3.0 og nyere, må du sørge for å bruke Android Profiler til å profilere appens CPU, minne og nettverksbruk.
Denne opplæringen vil hjelpe deg å forstå og optimalisere minnelekkasje for en Android-applikasjon ved hjelp av DDMS-verktøyet. Analysering av minnet vil gi deg en ide om minne og optimalisere minneverdiene vil dermed føre til mindre minnelekkasje.
Hva du vil lære:
- Vanlige vilkår
- DDMS (Dalvik Debug Monitor Server)
- Fremgangsmåte for å starte DDMS via ADT
- Fremgangsmåte for å starte DDMS via Android Studio
- Konklusjon
- Anbefalt lesing
Vanlige vilkår
Nedenfor er noen av de vanlige begrepene vi vil bruke i dette prosjektet:
- Haug - Det er Runtime-minnet som er tilgjengelig for tildeling og distribueres dynamisk. Det er plattformavhengig.
- Dalvik haug - Dalvik-haugen er en kombinasjon av klasser og data etter zygote.
- Zygote - Zygote hjelper til med å starte appprosesser når systemet lastes inn.
- PSS - Det er antall sider i minnet for en prosess, og måles i KB.
- Søppelsamling - Søppeloppsamling sporer opp alle gjenstandene som fortsatt brukes og markerer hvile som søppel.
DDMS (Dalvik Debug Monitor Server)
Dette er verktøyet som hjelper til med å analysere Runtime ytelsesovervåking. Det hjelper også i profilering og innstilling av applikasjoner.
Hovedtjenestetilbud fra DDMS
- Total statistikk for tildeling av objekter
- App trådstatistikk
- Enhetsskjermopptak
- Enhetsfilutforsker
- Innkommende samtale og SMS-inspeksjon
- Stedsdatainspeksjon
- Statisk nettverkskonsoll
- Logcat (Verbose, Debug, Assert, Error)
Hukommelsestap:
En applikasjon har et objekt i lang tid, selv etter at det har tjent formålet, og dette objektet samles ikke av GC.
Oppdagelse av minnelekkasje:
Generelt viser Android-applikasjonen en dialogboks som dukker opp for en app som ikke svarer eller i verste fall uten minneinntak. Hver enhet har begrenset mengdestørrelse, og når et program prøver å få ekstra minne, blir unntak observert.
For å sjekke den totale dyngstørrelsen til en Android-enhet, kan vi bruke kommandoene nedenfor:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Fremgangsmåte for å starte DDMS via ADT
Trinn 1: Start ADT-pakken (lett tilgjengelig her ) Eller installer ADT-pakken for Windows-konfigurasjon ved å bruke koblingene nedenfor.
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
Steg 2: Klikk på SDK
Trinn 3: Klikk på verktøy
Trinn 4: Klikk på monitor.bat (DDMS)
Merk: For dyngeanalyse kreves feilsøking apk.
Etter vellykket installasjon av ADT-pakken, gå til ledeteksten (angi bane, hvis adb ikke gjenkjennes som en intern eller ekstern kommando).
Kontroller om enheten er koblet til et system via ADB-kommando (ADB-enheter). Når en enhet er koblet til, er den koblet til DDMS-skjermen med pakkenavnet til et program.
Fremgangsmåte for å starte DDMS via Android Studio
Studio -> Verktøy -> Android -> Android-enhet Monitor -> Klikk på DDMS-knappen fra menyen.
Fremgangsmåte for analyse av en dyng
- Velg pakkenavnet til en app som vises på DDMS-skjermen.
- Velg ikonet for oppdateringsbunke.
- Trykk på årsak GC før du tar verdier for hver handling.
- Nå på kommandoprompten kjør kommando - adb shell dumpsys meminfo og trykk enter.
- Verdier vises på ledeteksten.
- PSS total, native, dalvik, heap size, heap free, heap-alloced er verdiene som vil hjelpe utviklerne til å feilsøke minnekrasjene.
- Bedre representasjon av data vil gjøre arbeidet enkelt for en utvikler.
- Data skal være som:
- Objektverdien etter å ha klikket på forårsaker GC.
- PSS totalt
- Innfødt haug - haugstørrelse
- Dalvik haug- haugstørrelse
- Totalt haugestørrelse
- Innfødt heap- heap allocation
- Dalvik heap- heap alloc
- Totalt haugetildeling
- Innfødt haug - haug gratis
- Dalvik haug- haug gratis
- Totalt haugefri
- Objekter (etter å ha klikket på forårsaker GC fra DDMS)
- % brukt% gratis
Ideell testing: For bedre appanalyse, prøv å utføre forskjellige scenarier ved å holde en app i bakgrunnen, og ved å lande på samme side, utfør en fullstendig flyt av disse ofte brukte scenariene.
Prøv å bruke enheter av lavere ende, ettersom den vanligste krasjen observeres på grunn av minne som er unntatt minne utenom (OOM).
DDMS-skjerm
Prøver av Dalvik-verdier
Konklusjon
Denne artikkelen kan brukes til å teste hauganalyse ved hjelp av DDMS-verktøyet. Korrekte verdier for parametrene vil hjelpe Android-utviklerne med å optimalisere minne.
Kunnskap om testverktøy er bra, men å bruke disse verktøyene på en effektiv måte anses å være en kunst.
Happy Learning !!
Anbefalt lesing
- Appium-veiledning for testing av Android- og iOS-mobilapper
- Topp 20+ minnelekkasjedeteksjonsverktøy for Java, C ++ på Linux og Windows
- Hvordan automatisere Android-applikasjoner ved hjelp av TestComplete Tool
- Komme i gang med Robotium - Det mest populære testprogrammet for brukergrensesnitt for Android-applikasjoner
- De 10 beste appene for prosjektledelse i 2021 for Android- og iOS-enheter
- Veiledning for testing av mobilgrensesnitt (GUI-testing av iOS- og Android-apper)
- Lag appiumtester for en Android-app
- 10 BESTE tidssporingsapper for frilansere (2021 SELECTIVE)