how fix memory leak android apps using ddms tool
Sådan testes og rettes hukommelseslækage til Android-applikationer:
Hukommelsesoptimering er en større udfordring for enhver udvikler, inden han skubber en app til playbutikken.
bedste spion enhed til mobiltelefoner
En apps ydeevne er lige så vigtig som dens funktionalitet. Denne artikel er baseret på Heap analyse af en applikation via DDMS (Dalvik Debug Monitor Service).
De fleste Android-applikationer kører på JAVA og har også problemer med threading.
Vigtig note - Dalvik Debug Monitor Server (DDMS) -værktøj er kun tilgængeligt i Android Studio 3.0 og lavere versioner. Hvis du bruger Studio 3.0 og nyere, skal du sørge for at bruge Android Profiler til at profilere din apps CPU, hukommelse og netværksbrug.
Denne vejledning hjælper dig med at forstå og optimere hukommelseslækage til en Android-applikation ved hjælp af DDMS-værktøjet. Analysering af hukommelsen giver en idé om hukommelse og optimering af hukommelsesværdierne vil dermed resultere i mindre hukommelseslækage.
Hvad du vil lære:
- Almindeligt anvendte udtryk
- DDMS (Dalvik Debug Monitor Server)
- Skridt til at starte DDMS via ADT
- Trin til lancering af DDMS via Android Studio
- Konklusion
- Anbefalet læsning
Almindeligt anvendte udtryk
Nedenfor er nogle af de almindelige udtryk, som vi vil bruge i dette projekt:
- Bunke - Det er Runtime-hukommelsen, der er tilgængelig til tildeling og distribueres dynamisk. Det er platformafhængigt.
- Dalvik bunke - Dalvik-bunken er en kombination af klasser og data efter zygote.
- Zygote - Zygote hjælper med at starte app-processer, når systemet indlæses.
- PSS - Det er antallet af sider i hukommelsen til en proces og måles i KB.
- Dagrenovation - Affaldssamling sporer alle objekter, der stadig bruges, og markerer hvile som affald.
DDMS (Dalvik Debug Monitor Server)
Dette er det værktøj, der hjælper med at analysere Runtime Performance Monitoring. Det hjælper også med profilering og tuning af applikationer.
Hovedtjenester tilbud fra DDMS
- Samlet antal tildelingsstatistikker for Heap
- App-trådstatistik
- Enheds skærmoptagelse
- Enhedsfiludforsker
- Indgående opkald og SMS-inspektion
- Inspektion af placeringsdata
- Statisk netværkskonsol
- Logcat (Verbose, Debug, Assert, Error)
Hukommelsestab:
En applikation har et objekt i lang tid, selv efter at det har tjent formålet, og dette objekt indsamles ikke af GC.
Registrering af hukommelseslækage:
Generelt viser Android-applikationen en dialogboks til en app, der ikke reagerer eller i værste fald uden hukommelsesundtagelse. Hver enhed har begrænset dyngestørrelse, og når et program prøver at få yderligere hukommelse, overholdes undtagelser.
For at kontrollere den samlede dyngestørrelse på en Android-enhed kan vi bruge nedenstående kommandoer:
- kat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Skridt til at starte DDMS via ADT
Trin 1: Start adt-pakke (let tilgængelig her Eller installer ADT-pakken til Windows-konfiguration ved hjælp af nedenstående links.
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
Trin # 2: Klik på SDK
Trin # 3: Klik på værktøjer
Trin # 4: Klik på monitor.bat (DDMS)
Bemærk: Til dyngeanalyse kræves debug-apk.
Efter vellykket installation af ADT-pakken skal du gå til kommandoprompten (indstil sti, hvis adb ikke genkendes som en intern eller ekstern kommando).
Kontroller, om enheden er tilsluttet et system via ADB-kommando (ADB-enheder). Når en enhed er tilsluttet, tilsluttes den til DDMS-skærmen med pakkens navn på en applikation.
Trin til lancering af DDMS via Android Studio
Studio -> Værktøjer -> Android -> Android-enhed Monitor -> Klik på DDMS-knappen fra menuen.
Trin til analyse af en bunke
- Vælg pakkenavnet på en app, der vises på DDMS-skærmen.
- Vælg ikonet for opdateringsbunke.
- Tryk på årsag GC, inden du tager værdier for hver handling.
- Nu på kommandoprompten kør kommando - adb shell dumpsys meminfo og tryk på enter.
- Værdier vises på kommandoprompten.
- PSS-total, native, dalvik, bunke størrelse, bunkefri, bunke-allokeret er de værdier, der hjælper udviklerne med at debugge hukommelseskrak.
- Bedre repræsentation af data gør arbejdet let for en udvikler.
- Data skal være som:
- Objektværdi efter klik på årsag GC.
- PSS i alt
- Native bunke - bunke størrelse
- Dalvik bunke- bunke størrelse
- Samlet bunke størrelse
- Native bunke-bunke allokering
- Dalvik bunke-bunke allokering
- Samlet antal bunker
- Native bunke - bunke fri
- Dalvik bunke - bunke fri
- I alt gratis bunke
- Objekter (efter klik på årsag GC fra DDMS)
- % brugt% gratis
Ideel test: For bedre appanalyse skal du prøve at udføre forskellige scenarier ved at holde en app i baggrunden og ved at lande på den samme side udføre en komplet strøm af disse almindeligt anvendte scenarier.
Prøv at bruge enheder i lavere ende, da det mest almindelige nedbrud observeres på grund af hukommelse, der er uden hukommelse (OOM).
DDMS-skærm
Prøver af Dalvik-værdier
Konklusion
Denne artikel kan bruges til at teste dyngeanalyse ved hjælp af DDMS-værktøjet. Korrekte værdier for parametrene hjælper Android-udviklerne med at optimere hukommelsen.
Viden om testværktøjer er god, men at bruge disse værktøjer på en effektiv måde betragtes som en kunst.
Glad læring !!
Anbefalet læsning
- Appium-vejledning til test af Android- og iOS-mobilapps
- Top 20+ hukommelseslækagedetekteringsværktøjer til Java, C ++ på Linux og Windows
- Sådan automatiseres Android-applikationer ved hjælp af TestComplete-værktøjet
- Kom godt i gang med Robotium - Det mest populære Android-applikations UI-testværktøj
- 10 bedste apps til projektledelse i 2021 til Android- og iOS-enheder
- Tutorial til mobil UI-test (GUI-test af iOS- og Android-apps)
- Opret appiumtest til en Android-app
- 10 BEDSTE tidssporingsapps til freelancere (2021 SELECTIVE)