how fix memory leak android apps using ddms tool
Cómo probar y reparar la fuga de memoria para aplicaciones de Android:
La optimización de la memoria es un desafío mayor para cualquier desarrollador antes de lanzar una aplicación a Play Store.
ms sql server entrevistas preguntas y respuestas para experimentados
El rendimiento de una aplicación es tan importante como su funcionalidad. Este artículo se basa en Análisis de montón de una aplicación a través de DDMS (Dalvik Debug Monitor Service).
La mayoría de las aplicaciones de Android se ejecutan en JAVA y también tienen problemas de subprocesos.
Nota IMPORTANTE - La herramienta Dalvik Debug Monitor Server (DDMS) está disponible solo en Android Studio 3.0 y versiones inferiores. Si está utilizando Studio 3.0 y superior, asegúrese de usar Android Profiler para perfilar el uso de la CPU, la memoria y la red de su aplicación.
Este tutorial lo ayudará a comprender y optimizar la pérdida de memoria para una aplicación de Android que utiliza la herramienta DDMS. El análisis de la memoria dará una idea de la memoria y la optimización de los valores de la memoria dará como resultado una menor pérdida de memoria.
Lo que vas a aprender:
- Términos de uso común
- DDMS (servidor de supervisión de depuración de Dalvik)
- Pasos para iniciar DDMS a través de ADT
- Pasos para iniciar DDMS a través de Android Studio
- Conclusión
- Lectura recomendada
Términos de uso común
A continuación se enumeran algunos de los términos comunes que utilizaremos en este proyecto:
- Montón - Es la memoria en tiempo de ejecución la que está disponible para la asignación y se distribuye dinámicamente. Depende de la plataforma.
- Montón de Dalvik - El montón de Dalvik es una combinación de clases y datos por cigoto.
- Cigoto - Zygote ayuda a iniciar los procesos de la aplicación cuando se carga el sistema.
- PSS - Es el recuento de páginas dentro de la memoria para un proceso y se mide en KB.
- Recolección de basura - La recolección de basura está rastreando todos los objetos que aún se utilizan y las marcas quedan como basura.
DDMS (servidor de supervisión de depuración de Dalvik)
Esta es la herramienta que ayuda a analizar la supervisión del rendimiento en tiempo de ejecución. También ayuda a perfilar y ajustar las aplicaciones.
Oferta de servicios principales por DDMS
- Estadísticas de asignaciones totales de objetos de montón
- Estática del hilo de la aplicación
- Captura de pantalla del dispositivo
- Explorador de archivos del dispositivo
- Inspección de llamadas entrantes y SMS
- Inspección de datos de ubicación
- Consola estática de red
- Logcat (detallado, depuración, afirmación, error)
Pérdida de memoria:
Una aplicación retiene un objeto durante mucho tiempo incluso después de cumplir el propósito y GC no recopila este objeto.
Detección de pérdida de memoria:
Generalmente, la aplicación de Android muestra un cuadro de diálogo emergente para una aplicación que no responde o, en el peor de los casos, se queda sin memoria. Cada dispositivo tiene un tamaño de pila limitado y cuando una aplicación intenta memoria adicional, se observan excepciones.
Para verificar el tamaño total del montón de un dispositivo Android, podemos usar los siguientes comandos:
- cat / proc / meminfo | grep MemTotal
- adb –d pull /system/build.prop
Pasos para iniciar DDMS a través de ADT
Paso 1: Lance adt bundle (fácilmente disponible aquí ) O instale el paquete ADT para la configuración de Windows utilizando los siguientes enlaces.
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
Paso 2: Haga clic en SDK
Paso 3: Haga clic en herramientas
Paso 4: Haga clic en monitor.bat (DDMS)
Nota: Para el análisis de montón, se requiere depurar apk.
Después de la instalación exitosa del paquete ADT, vaya al símbolo del sistema (establezca la ruta, si adb no se reconoce como un comando interno o externo).
Compruebe el dispositivo conectado a un sistema mediante el comando adb (dispositivos adb). Una vez que un dispositivo está conectado, se conecta a la pantalla DDMS con el nombre del paquete de una aplicación.
Pasos para iniciar DDMS a través de Android Studio
Estudio -> Herramientas -> Android -> Monitor de dispositivo Android -> Haga clic en el botón DDMS del menú.
Pasos para el análisis de un montón
- Seleccione el nombre del paquete de una aplicación que aparece en la pantalla de DDMS.
- Seleccione el icono de montón de actualizaciones.
- Toque la causa GC antes de tomar valores para cada acción.
- Ahora, en el símbolo del sistema, ejecute el comando: adb shell dumpsys meminfo y presione enter.
- Los valores aparecerán en el símbolo del sistema.
- PSS total, native, dalvik, heap size, heap free, heap-defined son los valores que ayudarán a los desarrolladores a depurar los fallos de memoria.
- Una mejor representación de los datos facilitará el trabajo al desarrollador.
- Los datos deben ser como:
- Valor de los objetos después de hacer clic en causa GC.
- PSS total
- Montón nativo: tamaño del montón
- Pila de Dalvik: tamaño de pila
- Tamaño total del montón
- Montón nativo- montón alloc
- Pila de Dalvik- montón alloc
- Total de asignación de montón
- Montón nativo: libre de montones
- Pila de Dalvik - libre de pilas
- Total de montón libre
- Objetos (después de hacer clic en cause GC desde DDMS)
- % usado% gratis
Prueba ideal: Para un mejor análisis de la aplicación, intente realizar diferentes escenarios manteniendo una aplicación en segundo plano y aterrizando en la misma página, realice un flujo completo de estos escenarios de uso común.
Intente usar dispositivos de gama baja, ya que el bloqueo más común se observa debido a la excepción de memoria insuficiente (OOM).
Pantalla DDMS
Muestras de los valores de Dalvik
Conclusión
Este artículo se puede utilizar para probar el análisis de montones con la herramienta DDMS. Los valores correctos de los parámetros ayudarán a los desarrolladores de Android a optimizar la memoria.
El conocimiento de las herramientas de prueba es bueno, pero el uso de esas herramientas de manera eficiente se considera un arte.
¡¡Feliz aprendizaje!!
Lectura recomendada
- Tutorial de Appium para probar aplicaciones móviles de Android e iOS
- Las 20 mejores herramientas de detección de fugas de memoria para Java, C ++ en Linux y Windows
- Cómo automatizar aplicaciones de Android con la herramienta TestComplete
- Introducción a Robotium: la herramienta de prueba de interfaz de usuario de aplicaciones de Android más popular
- Las 10 mejores aplicaciones de gestión de proyectos en 2021 para dispositivos Android e iOS
- Tutorial de prueba de interfaz de usuario móvil (prueba de GUI de aplicaciones iOS y Android)
- Cree pruebas de Appium para una aplicación de Android
- Las 10 MEJORES aplicaciones de seguimiento del tiempo para autónomos (2021 SELECTIVA)