how fix memory leak android apps using ddms tool
Cum să testați și să remediați scurgerile de memorie pentru aplicațiile Android:
Optimizarea memoriei este o provocare mai mare pentru orice dezvoltator înainte de a împinge o aplicație în magazinul de jocuri.
devine tester de joc gratuit
Performanța unei aplicații este la fel de importantă ca funcționalitatea acesteia. Acest articol se bazează pe Analiza grămezii a unei aplicații prin DDMS (Dalvik Debug Monitor Service).
Majoritatea aplicațiilor Android rulează pe JAVA și au și probleme de threading.
Notă importantă - Instrumentul Dalvik Debug Monitor Server (DDMS) este disponibil numai în Android Studio 3.0 și versiuni inferioare. Dacă utilizați Studio 3.0 și versiuni ulterioare, asigurați-vă că utilizați Android Profiler pentru a profila de CPU, memorie și rețea ale aplicației.
Acest tutorial vă va ajuta să înțelegeți și să optimizați scurgerile de memorie pentru o aplicație Android utilizând instrumentul DDMS. Analiza memoriei va oferi o idee despre memorie și optimizarea valorilor memoriei va duce la scăderea memoriei.
Ce veți învăța:
- Termeni folosiți frecvent
- DDMS (Dalvik Debug Monitor Server)
- Pași pentru lansarea DDMS prin ADT
- Pași pentru lansarea DDMS prin Android Studio
- Concluzie
- Lectură recomandată
Termeni folosiți frecvent
Mai jos sunt enumerați câțiva dintre termenii obișnuiți pe care îi vom folosi în acest proiect:
- Morman - Memoria Runtime este disponibilă pentru alocare și este distribuită dinamic. Este dependent de platformă.
- Mormanul Dalvik - Dalvik heap este o combinație de clase și date de zigot.
- Zigot - Zygote ajută la lansarea proceselor aplicației atunci când sistemul se încarcă.
- PSS - Este numărul de pagini din memorie pentru un proces și este măsurat în KB.
- Colectarea gunoiului - Colectarea gunoiului urmărește toate obiectele care sunt încă folosite și mărcile se găsesc ca gunoi.
DDMS (Dalvik Debug Monitor Server)
Acesta este instrumentul care vă ajută să analizați monitorizarea performanței Runtime. De asemenea, ajută la profilarea și reglarea aplicațiilor.
Oferta de servicii principale de către DDMS
- Statistici totale de alocare a obiectelor Heap
- Statica firului de aplicație
- Captură ecran dispozitiv
- Device File Explorer
- Apel primit și inspecție SMS
- Inspecția datelor despre locație
- Consolă statică de rețea
- Logcat (Verbose, Debug, Assert, Error)
Pierdere de memorie:
O aplicație deține un obiect mult timp chiar și după îndeplinirea scopului, iar acest obiect nu este colectat de GC.
Detectarea scurgerilor de memorie:
În general, aplicația Android prezintă o fereastră de dialog pentru o aplicație care nu răspunde sau, în cel mai rău caz, nu are memorie. Fiecare dispozitiv are o dimensiune limitată a heap-ului și atunci când o aplicație încearcă să aibă memorie suplimentară, sunt respectate excepții.
Pentru a verifica dimensiunea totală a heap-ului unui dispozitiv Android, putem folosi comenzile de mai jos:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Pași pentru lansarea DDMS prin ADT
Pasul 1: Lansați pachetul adt (ușor disponibil Aici ) Sau instalați pachetul ADT pentru configurația Windows utilizând linkurile de mai jos.
ferestre 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
Pasul 2: Faceți clic pe SDK
Pasul 3: Faceți clic pe instrumente
Pasul 4: Faceți clic pe monitor.bat (DDMS)
Notă: Pentru analiza heap, este necesar un apk de depanare.
După instalarea cu succes a pachetului ADT, mergeți la promptul de comandă (setați calea, dacă adb nu este recunoscută ca o comandă internă sau externă).
Verificați dacă dispozitivul este conectat la un sistem prin comanda adb (dispozitive adb). Odată ce un dispozitiv este conectat, acesta este conectat la ecranul DDMS cu numele pachetului unei aplicații.
Pași pentru lansarea DDMS prin Android Studio
Studio -> Instrumente -> Android -> Monitor dispozitiv Android -> Faceți clic pe butonul DDMS din meniu.
Pași către analiza unei grămezi
- Selectați numele pachetului unei aplicații care apare pe ecranul DDMS.
- Selectați pictograma heap de actualizare.
- Apăsați pe cauza GC înainte de a lua valori pentru fiecare acțiune.
- Acum, la promptul de comandă executați comanda - adb shell dumpsys meminfo și apăsați Enter.
- Valorile vor apărea pe promptul de comandă.
- PSS total, native, dalvik, heap size, heap free, heap-allocate sunt valorile care vor ajuta dezvoltatorii să depaneze blocarea memoriei.
- O reprezentare mai bună a datelor va face munca mai ușoară pentru un dezvoltator.
- Datele ar trebui să fie ca:
- Valoarea obiectelor după ce faceți clic pe cauza GC.
- PSS total
- Dimensiune heap nativă - heap
- Dalvik heap- dimensiunea heap
- Totalul dimensiunii heap-ului
- Alocare heap-heap nativă
- Dalvik heap- heap alloc
- Total alocare heap
- Heap nativ - heap gratuit
- Dalvik heap- heap gratuit
- Total heap gratuit
- Obiecte (după ce faceți clic pe cauza GC din DDMS)
- % folosit% gratuit
Testare ideală: Pentru o analiză mai bună a aplicației, încercați să efectuați diferite scenarii păstrând o aplicație în fundal și aterizând pe aceeași pagină, efectuați un flux complet al acestor scenarii utilizate în mod obișnuit.
Încercați să utilizați dispozitive de ultimă generație, deoarece cel mai frecvent blocaj este observat din cauza memoriei care este o excepție Out Of Memory (OOM).
Ecran DDMS
Mostre de valori Dalvik
Concluzie
Acest articol poate fi folosit pentru a testa analiza heap utilizând instrumentul DDMS. Valorile corecte ale parametrilor îi vor ajuta pe dezvoltatorii Android să optimizeze memoria.
Cunoașterea instrumentelor de testare este bună, dar utilizarea acestor instrumente într-un mod eficient este considerată o artă.
Învățare fericită !!
Lectură recomandată
- Tutorial Appium pentru testarea aplicațiilor mobile Android și iOS
- Top 20 de instrumente de detectare a scurgerilor de memorie pentru Java, C ++ pe Linux și Windows
- Cum se automatizează aplicațiile Android utilizând instrumentul TestComplete
- Noțiuni introductive despre Robotium - Cel mai popular instrument de testare a aplicației UI pentru Android
- Cele mai bune 10 aplicații de gestionare a proiectelor în 2021 pentru dispozitive Android și iOS
- Tutorial UI Mobile Testing (Testarea GUI a aplicațiilor iOS și Android)
- Creați teste Appium pentru o aplicație Android
- Cele mai bune 10 aplicații de urmărire a timpului pentru freelanceri [2021 SELECTIVE]