DDMS, una alternativa de debugging
Cuando se desarrolla dentro del entorno Eclipse podemos utilizar su depurador pero también contamos con una alternativa Android: DDMS (Dalvik Debug Monitor Service) que se integra perfectamente a Eclipse mediante una perspectiva.
DDMS es un servicio de control con una gran cantidad de funcionalidades para la interacción con el emulador o con los dispositivos reales y con la aplicación; básicamente es una herramienta poderosa para la depuración de las aplicaciones ya que nos permite analizar los procesos en ejecución, visualizar el estado de la pila y la memoria montón (heap), hacer pausas y reinicios de los subprocesos, explorar el sistema de archivos de los dispositivos conectados, etc.
Funcionalidades DDMS
Podemos agrupar las funcionalidades de DDMS de la siguiente manera:
- Task management: Gestión de tareas.
- File management: Gestión de archivos.
- Emulator interaction: Interacción con el emulador.
- Logging: Registro.
- Screen captures: Captura de pantallas.
La herramienta DDMS se puede ejecutar de modo separado a Eclipse si se inicia directamente desde la carpeta Android SDK/tools y automáticamente se conectará con cualquier dispositivo Android que se encuentre conectado o con el emulador.
- Para abrir la perspectiva DDMS desde Eclipse se selecciona Window/Open Perspective/DDMS.
Si tenemos el código fuente en el espacio de trabajo de Eclipse, desde la perspectiva DDMS podemos seleccionar un proceso (tanto sea de un emulador o de un dispositivo real) y utilizar el botón Debug (depurar) y asociar un depurador al proceso.
Gestión de tareas
La perspectiva DDMS nos permite visualizar los dispositivos y/o emuladores actualmente en uso y al seleccionar una instancia determinada de la lista podremos comprobar y examinar los procesos y los subprocesos relacionados.
Para inspeccionar los subprocesos de un dispositivo determinado se selecciona el proceso en el panel de la izquierda y se hace clic en el botón Update Threads (actualizar subprocesos) , esto hace que en el panel de la derecha se visualice la lista de subprocesos en la ficha Threads:
El botón Cause GC (garbage collection, requiere recolección de basura) nos permite solicitar que se inicie la recolección de elementos no utilizados de un proceso y el botón Update Heap (actualizar montón) . Es posible forzar la detención de un proceso pulsando el botón Stop process (detener proceso) .
Exploración del sistema de archivos de Android
El explorador de archivos de DDMS (File Explorer) nos permite examinar los archivos y las carpetas almacenadas en el dispositivo que se está utilizando en la depuración.
También es posible transferir archivos entre dispositivo (o emulador) y nuestro ordenador utilizando los botones Push (enviar al dispositivo) y Pull (extraer desde el dispositivo) que aparecen en la ficha del explorador de archivos. El botón Delete the selection (eliminar la selección, -) permite borrar los archivos o carpetas seleccionados y el botón New folder (nueva carpeta, +) permite crear una nueva carpeta en el dispositivo.