Usando el SDK: Dalvik Debug Monitor Server (Parte 2)

En la primera entrega de este especial sobre el DDMS, hemos visto que funciones puede desempeñar y para qué se utiliza, además comenzamos el estudio de las opciones mostradas en su interfaz. Hoy finalizaremos con el estudio de las pestañas de información del panel derecho, que introducimos también en la primera entrega, y luego trataremos las herramientas generales que incluye la aplicación.

Pestañas de información del panel derecho

Cómo ya hemos visto, en este panel derecho se concentra la parte más útil el monitor de depuración, que será la mayoría de la información y algunas herramientas. Vamos a ver las pestañas una por una, indicando las opciones básicas que encontramos en cada una de ellas. No entraremos en un desarrollo muy técnico, pero con esta información sabremos cómo funciona el monitor y qué podemos ver en él:

Info

Esta pestaña muestra información general sobre la máquina virtual seleccionada, incluyendo el ID de proceso, el nombre del paquete y la versión de la máquina virtual.

Threads

La pestaña threads contiene una lista de subprocesos o “hilos” que se ejecutan en la máquina virtual o proceso principal seleccionado. Esta pestaña incluye la siguiente información:

ID – un identificador único para el hilo. En Dalvik, éstos son los números impares a partir de 3.
Tid – el ID del hilo Linux. Para el hilo principal en un proceso, este coincide con el ID del proceso.
Status – el estado del hilo (running, sleeping, init, ...)
utime – tiempo total dedicado a ejecutar código de usuario.
stime – tiempo total dedicado a ejecutar código del sistema.
Name - El nombre del hilo

“ID” y “Name” se establecen cuando el hilo se ha iniciado. El resto de campos se actualizan periódicamente (por defecto es cada 4 segundos).

VM Heap

Muestra algunas estadísticas de la memoria, y se actualiza mediante el botón GC (el icono del cubo de basura a la izquierda), o el botón Cause GC que encontraremos en la propia pestaña.

Allocation tracker

En esta pestaña, se puede realizar un seguimiento de la asignación de memoria de cada máquina virtual.

Emulator control

En esta pestaña podremos simular estados especiales o actividades de los dispositivos. Las características de esta pestaña incluyen:

Telephony status – cambiar el estado de los planes de voz y datos del teléfono (home, roaming, searching, etc), y simular diferentes tipos de velocidad y latencia de la red (GPRS, EDGE, UMTS, etc.)
Telephony actions – simular llamadas telefónicas o mensajes SMS en el emulador.
Location controls – enviar datos simulados de ubicación al emulador para poder realizar operaciones de localización en cartografía GPS, por ejemplo.

Logs y outputs

Estos son, desde el punto de vista del desarrollador, los paneles más importantes del DDMS. Aquí podremos realizar la depuración y seguimiento de tareas, en caso de que tengamos problemas con la aplicación que estemos desarrollando.

En la pestaña Log, la de abajo, tenemos todos los mensajes del dispositivo, la mayoría de los cuales serán incomprensibles, pero también podremos ver mensajes de excepciones y mensajes de señuelo que hayamos dejado en el código de nuestra aplicación para ver hasta dónde ejecuta.

En la pestaña Event log, nos encontramos con otro tipo de mensajes. Estos son los relacionados con los cambios de los estados y las aplicaciones en el teléfono. Cuando una aplicación se instala, o cuando se inicia el dispositivo o emulador, los mensajes que muestran información se verán aquí. Si encontramos problemas de conectividad, aquí se muestran este tipo de errores también.

Más funciones del DDMS

Explorador de archivos

Se inicia seleccionando en la barra de herramientas Device>File explorer. Con él podemos ver el sistema de archivos completo del dispositivo y realizar administración básica de él, como copiar o pegar archivos en un entorno gráfico sin usar los comandos de ADB push y pull.

Se pueden arrastrar y colocar archivos directamente a los directorios del dispositivo, pero no se pueden arrastrar fuera de él, para esto se debe usar el botón Pull de la barra de herramientas. Para eliminar un archivo, se debe usar también el botón Delete.

Captura de Pantalla

Se pueden capturar imágenes directamente de la pantalla del dispositivo o emulador haciendo click en la barra de herramientas superior en Device>Screen capture o pulsando CTRL-S en el teclado.

Explorando procesos

Se puede ver la salida del comando ps -x para una máquina virtual específica seleccionado en la barra de herramientas Device>Show process status.

Examinar el estado de la radio

De forma predeterminada, el estado de la radio no se muestra en la salida de un log estándard. Para ver esta información, se puede seleccionar en la barra de herramientas Device>Dump radio state.

Detener una máquina virtual

Se puede detener una máquina virtual específica seleccionando en la barra de herramientas Actions>Halt VM.

Conclusiones

Desde el punto de vista más técnico esta herramienta es quizás la más útil y aprovechable del SDK de Android. Permite a cualquier desarrollador depurar sus aplicaciones casi sin pensar en limitaciones, pues un desarrollador cualquiera puede desde generar eventos en el emulador (llamadas, SMS, ubicaciones simuladas, etc.) para probar características de sus aplicaciones y ver que funcionan correctamente, hasta poder comprobar si su aplicación se ejecuta bien por partes dejando en el código mensajes a modo de checkpoints que pueden verse en los logs. Incluso pueden comprobar el uso de memoria de una aplicación concreta y generar eventos de recogida de información.

Desde el punto de vista de un usuario normal, la herramienta no es tan usable, pero para saciar la curiosidad con este monitor de depuración se puede ver información de como funciona nuestro terminal desde dentro. Además, se pueden aprovechar las herramientas básicas para hacer capturas de pantalla o ver el sistema de archivos y las carpetas de sistema sin necesidad de desbloquear el bootloader del terminal ni arriesgarse a pérdidas de garantías.

Evidentemente, todos sabemos que el SDK es un conjunto de soluciones específicamente ideadas para desarrolladores, pero conociendo un poquito más de cada herramienta podremos sacarle partido aún sin tener conocimientos avanzados. En próximas entregas veremos cómo usar otra herramienta básica del SDK, como es el Android Debug Bridge, o también aprenderemos a instalar un entorno de desarrollo como es Eclipse para poder curiosear con la programación en Android.

En Xataka Android | Usando el SDK: Dalvik Debug Monitor Server (Parte 1)
Más información | Android Developer

Portada de Xataka Android