how fix memory leak android apps using ddms tool
Kako testirati i popraviti curenje memorije za Android aplikacije:
Optimizacija memorije veći je izazov za svakog programera prije guranja aplikacije u trgovinu za igre.
najbolji softver za kopiranje DVD-a u mp4
Izvedba aplikacije jednako je važna kao i njena funkcionalnost. Ovaj se članak temelji na Analiza hrpe aplikacije putem DDMS-a (Dalvik Debug Monitor Service).
Većina Android aplikacija radi na JAVA-i i ima problema s navojem.
Važna nota - Alat Dalvik Debug Monitor Server (DDMS) dostupan je samo u sustavu Android Studio 3.0 i nižim verzijama. Ako koristite Studio 3.0 i novije verzije, upotrijebite Android Profiler za profiliranje CPU-a, memorije i mrežne upotrebe aplikacije.
Ovaj vodič će vam pomoći da razumijete i optimizirate curenje memorije za android aplikaciju pomoću alata DDMS. Analizom memorije dat će se predodžba o memoriji, a optimizacija vrijednosti memorije rezultirat će manjim curenjem memorije.
Što ćete naučiti:
- Uobičajeni pojmovi
- DDMS (Dalvik poslužitelj za uklanjanje pogrešaka)
- Koraci za pokretanje DDMS-a putem ADT-a
- Koraci za pokretanje DDMS-a putem Android Studija
- Zaključak
- Preporučena literatura
Uobičajeni pojmovi
U nastavku su navedeni neki od uobičajenih izraza koje ćemo koristiti u ovom projektu:
- Hrpa - Runtime memorija je dostupna za alokaciju i dinamički se distribuira. Ovisi o platformi.
- Hrpa Dalvik - Dalvik hrpa kombinacija je klasa i podataka po zigoti.
- Zigota - Zygote pomaže u pokretanju procesa aplikacija kada se sustav učita.
- PSS - To je broj stranica u memoriji za postupak, a mjeri se u KB.
- Kolekcija smeća - Odvoz smeća prati sve predmete koji se još koriste i označava ostatak kao Smeće.
DDMS (Dalvik poslužitelj za uklanjanje pogrešaka)
Ovo je alat koji pomaže analizirati Nadgledanje izvedbe vremena rada. Također pomaže u profiliranju i podešavanju aplikacija.
Ponuda glavnih usluga DDMS-a
- Ukupna statistika raspodjele objekata Heap
- Statika niti aplikacije
- Uređaj Snimanje zaslona
- Istraživač datoteka uređaja
- Dolazni poziv i inspekcija SMS-a
- Inspekcija podataka o lokaciji
- Mrežna statička konzola
- Logcat (opširno, ispravljanje pogrešaka, potvrđivanje, pogreška)
Curenje memorije:
Aplikacija zadržava objekt dugo vremena čak i nakon što je poslužila svrsi, a taj objekt GC ne prikuplja.
Otkrivanje curenja memorije:
Općenito, Android aplikacija prikazuje skočni dijaloški okvir za aplikaciju koja ne reagira ili je u najgorem slučaju izuzetak iz memorije. Svaki uređaj ima ograničenu veličinu hrpe i kada aplikacija pokuša dobiti dodatnu memoriju, primjećuju se iznimke.
Da bismo provjerili ukupnu veličinu hrpe Android uređaja, možemo koristiti naredbe u nastavku:
- mačka / proc / meminfo | grep MemTotal
- adb –d povuci /system/build.prop
Koraci za pokretanje DDMS-a putem ADT-a
Korak 1: Pokrenite adt paket (lako dostupan ovdje ) Ili instalirajte ADT paket za konfiguraciju sustava Windows pomoću donjih poveznica.
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
Korak 2: Kliknite SDK
3. korak: Kliknite na alate
Korak # 4: Kliknite na monitor.bat (DDMS)
Bilješka: Za analizu hrpe potreban je apk za uklanjanje pogrešaka.
Nakon uspješne instalacije ADT snopa, idite na naredbeni redak (postavite put, ako adb nije prepoznat kao unutarnja ili vanjska naredba).
Provjerite je li uređaj povezan na sustav putem naredbe adb (adb uređaji). Jednom kada je uređaj povezan, povezan je na zaslon DDMS s nazivom paketa aplikacije.
Koraci za pokretanje DDMS-a putem Android Studija
Studio -> Alati -> Android -> Monitor Android uređaja -> Kliknite gumb DDMS u izborniku.
Koraci do analize hrpe
- Odaberite naziv paketa aplikacije koja se pojavljuje na zaslonu DDMS-a.
- Odaberite ikonu hrpe ažuriranja.
- Prije uzimanja vrijednosti za svaku radnju dodirnite uzrok GC.
- Sada u naredbenom retku pokrenite naredbu - adb shell dumpsys meminfo i pritisnite enter.
- Vrijednosti će se pojaviti u naredbenom retku.
- Ukupni PSS, izvorni, dalvik, veličina hrpe, bez hrpe, dodijeljena hrpa vrijednosti su koje će programerima pomoći u otklanjanju pogrešaka u memoriji.
- Bolja prezentacija podataka olakšat će posao programeru.
- Podaci bi trebali biti poput:
- Vrijednost predmeta nakon klika na uzrok GC.
- PSS ukupno
- Izvorna hrpa - veličina hrpe
- Dalvik hrpa - veličina hrpe
- Ukupna veličina hrpe
- Izvorna hrpa - hrpa aloc
- Dalvik hrpa- hrpa aloc
- Ukupna dodjela hrpe
- Izvorna hrpa - bez hrpe
- Dalvik hrpa - hrpa besplatno
- Ukupno bez hrpe
- Objekti (nakon klika na uzrok GC iz DDMS-a)
- % koristi% besplatno
Idealno testiranje: Za bolju analizu aplikacije pokušajte izvesti različite scenarije držeći aplikaciju u pozadini i slijetanjem na istu stranicu izvedite cjelovit tok ovih često korištenih scenarija.
Pokušajte upotrijebiti niže uređaje, jer se najčešći pad opaža zbog memorije koja je iznimka izvan memorije (OOM).
Zaslon DDMS
Uzorci Dalvikovih vrijednosti
Zaključak
Ovaj se članak može koristiti za testiranje analize hrpe pomoću alata DDMS. Ispravne vrijednosti parametara pomoći će programerima Androida da optimiziraju memoriju.
Poznavanje alata za testiranje je dobro, ali učinkovito korištenje tih alata smatra se umjetnošću.
Sretno učenje !!
Preporučena literatura
- Vodič za testiranje aplikacija za Android i iOS za mobilne uređaje
- Top 20+ alata za otkrivanje curenja memorije za Javu, C ++ na Linuxu i Windowsima
- Kako automatizirati Android aplikacije pomoću alata TestComplete
- Početak rada s Robotiumom - najpopularnijim alatom za testiranje korisničkog sučelja za Android aplikaciju
- 10 najboljih aplikacija za upravljanje projektima u 2021. godini za uređaje Android i iOS
- Vodič za testiranje mobilnog korisničkog sučelja (GUI testiranje iOS i Android aplikacija)
- Stvorite Appium testove za Android aplikaciju
- 10 NAJBOLJIH aplikacija za praćenje vremena za slobodnjake (2021 SELECTIVE)