how fix memory leak android apps using ddms tool
Com provar i corregir fuites de memòria per a aplicacions d'Android:
L’optimització de la memòria és un desafiament més gran per a qualsevol desenvolupador abans d’enviar una aplicació a Play Store.
com puc executar fitxers swf
El rendiment d'una aplicació és tan important com la seva funcionalitat. Aquest article es basa en el Anàlisi de pila d'una aplicació a través de DDMS (servei de control de depuració de Dalvik).
La majoria de les aplicacions d’Android s’executen amb JAVA i també tenen problemes de discussió.
Nota important - L’eina Dalvik Debug Monitor Server (DDMS) només està disponible a Android Studio 3.0 i versions inferiors. Si utilitzeu Studio 3.0 i versions posteriors, assegureu-vos d’utilitzar Android Profiler per perfilar l’ús de la CPU, la memòria i la xarxa de la vostra aplicació.
Aquest tutorial us ajudarà a comprendre i optimitzar les fuites de memòria per a una aplicació per a Android mitjançant l'eina DDMS. Analitzar la memòria donarà una idea de la memòria i optimitzar els valors de la memòria donarà lloc a una menor pèrdua de memòria.
Què aprendreu:
- Termes d'ús comú
- DDMS (servidor de monitorització de depuració de Dalvik)
- Passos per iniciar DDMS mitjançant ADT
- Passos per iniciar DDMS mitjançant Android Studio
- Conclusió
- Lectura recomanada
Termes d'ús comú
A continuació es detallen alguns dels termes habituals que farem servir en aquest projecte:
- Munt - És la memòria d'execució que està disponible per assignar i es distribueix dinàmicament. Depèn de la plataforma.
- Munt Dalvik - El munt Dalvik és una combinació de classes i dades per zigot.
- Zigot - Zygote ajuda a iniciar processos d'aplicacions quan es carrega el sistema.
- PSS - És el recompte de pàgines de la memòria d’un procés i es mesura en KB.
- Recollida d'escombraries - La recollida d’escombraries fa un seguiment de tots els objectes que encara s’utilitzen i marca com a deixalles.
DDMS (servidor de monitorització de depuració de Dalvik)
Aquesta és l'eina que ajuda a analitzar el seguiment del rendiment en temps d'execució. També ajuda a perfilar i ajustar aplicacions.
Principals serveis de DDMS
- Estadístiques totals d'assignacions d'objectes Heap
- Estàtica del fil de l'aplicació
- Captura de pantalla del dispositiu
- Explorador de fitxers de dispositius
- Inspecció de trucades i SMS
- Inspecció de dades de localització
- Consola estàtica de xarxa
- Logcat (Verbose, Debug, Assert, Error)
Pèrdua de memòria:
Una aplicació manté un objecte durant molt de temps fins i tot després d’haver complert l’objectiu, i GC no recopila aquest objecte.
Detecció de fuites de memòria:
Generalment, l'aplicació d'Android mostra una finestra emergent de diàleg per a una aplicació que no respon o, en el pitjor dels casos, queda fora de memòria. Tots els dispositius tenen una mida d’emmagatzematge dinàmic limitada i quan una aplicació intenta obtenir memòria addicional, s’observen excepcions.
Per comprovar la mida total de l'emmagatzematge dinàmic d'un dispositiu Android, podem utilitzar les ordres següents:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Passos per iniciar DDMS mitjançant ADT
Pas 1: Inicia el paquet d'anuncis (fàcilment disponible) aquí ) O bé instal·leu el paquet ADT per a la configuració de Windows mitjançant els enllaços següents.
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
Pas 2: Feu clic a SDK
Pas 3: Feu clic a les eines
Pas 4: Feu clic a monitor.bat (DDMS)
Nota: Per a l’anàlisi d’emmagatzematge dinàmic, cal una depuració apk
Després d'instal·lar correctament el paquet ADT, aneu a l'indicador d'ordres (definiu el camí d'accés, si l'adb no es reconeix com a ordre interna o externa).
Comproveu si el dispositiu està connectat a un sistema mitjançant l’ordre adb (dispositius adb). Un cop connectat un dispositiu, es connecta a la pantalla DDMS amb el nom del paquet d’una aplicació.
Passos per iniciar DDMS mitjançant Android Studio
Studio -> Eines -> Android -> Monitor de dispositius Android -> Feu clic al botó DDMS del menú.
Passos per a l'anàlisi d'un munt
- Seleccioneu el nom del paquet d'una aplicació que aparegui a la pantalla DDMS.
- Seleccioneu la icona de pila d'actualitzacions.
- Toqueu sobre causa de GC abans de prendre valors per a cada acció.
- Ara, a l'indicador d'ordres, executeu l'ordre - adb shell dumpsys meminfo i premeu Retorn.
- Els valors apareixeran a l'indicador d'ordres.
- PSS total, natiu, dalvik, mida de l'emmagatzematge, lliure d'emmagatzematge, assignat a l'emmagatzematge són els valors que ajudaran els desenvolupadors a depurar els bloquejos de memòria.
- Una millor representació de les dades facilitarà la feina a un desenvolupador.
- Les dades haurien de ser com:
- Valor dels objectes després de fer clic a causa GC.
- PSS total
- Mida de pila nativa
- Dalvik heap-size heap
- Total de mida de l'emmagatzematge dinàmic
- Assignació de pila nativa
- Dalvik heap- heap alloc
- Total de l'assignació de pila
- Ampoll natiu gratuït
- Dalvik heap- heap gratis
- Total de pila gratis
- Objectes (després de fer clic a causa GC des de DDMS)
- % utilitzat% gratuït
Prova ideal: Per a una millor anàlisi de l'aplicació, intenteu realitzar diferents escenaris mantenint una aplicació en segon pla i, aterrant a la mateixa pàgina, realitzeu un flux complet d'aquests escenaris d'ús habitual.
Proveu d’utilitzar dispositius de gamma inferior, ja que s’observa l’error més comú a causa de la memòria que és una excepció de memòria fora de memòria (OOM).
Pantalla DDMS
Mostres de valors de Dalvik
Conclusió
Aquest article es pot utilitzar per provar l'anàlisi de pila mitjançant l'eina DDMS. Els valors correctes dels paràmetres ajudaran els desenvolupadors d'Android a optimitzar la memòria.
El coneixement de les eines de prova és bo, però utilitzar aquestes eines d’una manera eficient es considera un art.
Feliç aprenentatge !!
Lectura recomanada
- Tutorial d'Appium per provar aplicacions mòbils Android i iOS
- Les 20 millors eines de detecció de fuites de memòria per a Java, C ++ a Linux i Windows
- Com automatitzar aplicacions d'Android mitjançant l'eina TestComplete
- Introducció a Robotium: l'eina de prova de la interfície d'usuari d'aplicacions d'Android més popular
- 10 millors aplicacions de gestió de projectes el 2021 per a dispositius Android i iOS
- Tutorial de proves d’interfície d’usuari mòbil (proves GUI d’aplicacions per a iOS i Android)
- Creeu proves Appium per a una aplicació d'Android
- 10 MILLORS aplicacions de seguiment de temps per a autònoms (2021 SELECTIVE)