Saltear al contenido principal

Depuración en Android Studio: avance paso a paso y análisis de variables

Depuración de Aplicaciones con Android Studio
1. Depuración de aplicaciones: puntos de interrupción (breakpoints)
2. Depuración en Android Studio: avance paso a paso y análisis de variables
3. Cómo depurar aplicaciones con Android Studio: proyecto ejemplo
4. Video: depuración de aplicación con Android Studio

En el anterior tutorial vimos como ejecutar nuestra aplicación en modo depuración y cómo establecer puntos de interrupción o breakpoints en Android Studio (aunque ya comentamos que es muy similar para otros editores o entornos de desarrollo)

En éste describiremos las acciones que podemos llevar a cabo al alcanzar uno de esos breakpoints y cómo podemos inspeccionar el estado de las variables de la aplicación. Recuerda que en un tutorial y video posterior desarrollaremos un ejemplo para mostrar estas opciones más en detalle.

Avance paso a paso

Una vez nos hemos detenido en un punto de interrupción es necesario saber las acciones podemos llevar a cabo. Para ello analizaremos los distintos paneles que nos proporciona Android Studio.

Si nos fijamos en la siguiente imagen, veremos como el aspecto del interfaz del IDE se ha modificado al llegar al punto de interrupción. Ahora nos muestra una serie de elementos adicionales que hemos remarcado con dos cuadros rojos:

Opciones depuración en breakpoint en Android Studio

Al margen de las opciones obvias para detener o reiniciar la depuración, en primer lugar nos centraremos en las opciones para continuar la ejecución desde el punto de interrupción en el que nos encontramos. Son especialmente interesantes las siguientes:

Step Over

Con ella ejecutaremos la sentencia actual de nuestro código en la que estamos detenidos en ese momento.

Por ejemplo, si es una llamada a una función que devuelve una lista de elementos que estaba vacía, justo después de ejecutar la sentencia podremos ver que la lista ha sido modificada, tal como se muestra en la siguiente imagen:.

Opción Step over en modo depuración en Android Studio

Step Into

Al seleccionar esta opción nos moveremos a la siguiente línea de código. Eso sí, hay que tener en cuenta que esta línea de código sería la que tendría nuestra aplicación si estuviera escrita en un único bloque secuencial, sin llamadas a funciones o métodos de clase.

Si tomamos el mismo ejemplo anterior, el depurador nos llevaría a la primera línea de la función que vamos a ejecutar, pudiendo analizarla paso a paso.

Esta opción es muy útil si por ejemplo vemos que tras ejecutar la función el resultado no es el esperado. Podemos repetir el proceso entrando en la misma para ver donde está el problema.

En la siguiente imagen vemos cómo hemos pasado al interior de la función getComents, que era la que se llamaba en la línea donde pusimos el punto de interrupción:

Opción Step into en modo depuración en Android Studo

Step Out

Cuando los proyectos comienzan a ser algo complejos o utilizan bibliotecas externas, podemos acabar analizando métodos que sabemos que ya están depurados por sus creadores o que ya hemos depurado nosotros previamente.

Si no queremos repetir el avance paso a paso podemos utilizar esta opción. Se ejecutará entonces la función actual completa y volveremos a la linea que realizó su llamada para poder continuar depurando.

En la imagen vemos como hemos vuelto a la linea de código tras nuestro punto de interrupción una vez ejecutada la funcion getComments completa:

Opción Step over en modo depuración en Android Studio

Análisis de variables

Ahora que sabemos movernos por nuestro código necesitamos conocer las herramientas para analizar el estado de la aplicación y encontrar los posibles errores. Nos centraremos principalmente en el panel de variables.

Este panel nos muestra todas las variables que existen en el contexto actual de la aplicación (la linea en la que nos hemos detenido), si nos encontramos dentro de un método de una clase podremos ver las variables locales de dicho método así el valor de los atributos locales o estáticos de la clase.

En el caso de variables de tipo simple (String, int, boolean) veremos su valor directamente en la parte derecha.

Con las instancias de clase veremos su tipo y su representación como String. Además de ésto, podremos desplegar sus elementos internos y nos mostrará sus atributos locales o su lista de métodos de clase.

En la imagen superior vemos los valores de la variable i y el tamaño de la variable lista por ejemplo.

En la inferior podemos ver desplegados los métodos y atributos del elemento this (la Activity que se está ejecutando en este instante).

Una funcionalidad muy interesante es la posibilidad de añadir nuestras propias expresiones para que se ejecuten y muestren el resultado. De esta forma, podemos adelantarnos a los resultados de una linea de código posterior o analizar el resultado de una comparación sin tener que llegar a la línea en la que se produce.

En resumen, tenemos la posibilidad de ver prácticamente en tiempo real cualquier elemento de nuestra aplicación sobre el que tengamos alguna duda de su correcto comportamiento.

Aqui por ejemplo añadimos una expresion booleana, para comprobar si el numero de elementos de lista es mayor que un determinado número. Una vez pulsemos para añadir la expresión, ésta se evaluará inmediatamente mostrándonos su valor.

Por último comentaremos una función muy útil, mute breakpoints, en caso de que tengamos muchos puntos de interrupción activos pero queramos continuar la ejecución de forma fluida durante un tiempo. Para evitar el tener que eliminar esos breakpointos y después volver a crearlos, podemos utilizar esta opción que los deja inactivos hasta que volvamos a activarlos.

Dominando el uso de estos elementos podremos enfrentarnos en mejores condiciones a los errores que, sobre todo cuando estemos aprendiendo, nos iremos encontrando en nuestros proyectos y que pueden resultar muy frustrantes si la solución se nos resiste demasiado tiempo.

En el próximo tutorial desarrollaremos un sencillo ejemplo donde utilizamos estas funcionalidades de depuración de Android Studio.

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies.    Más información
Privacidad