Saltear al contenido principal

Cómo depurar aplicaciones con Android Studio: proyecto ejemplo

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

Vamos a poner en práctica lo explicado hasta ahora sobre depuración de aplicaciones con Android Studio. Será un sencillo proyecto en el que implementamos un algoritmo de ordenación con algunos errores.

Al ejecutar el programa paso a paso en el modo debug de Android Studio, utilizando opciones que ya hemos presentado (incluir breakpoint, entrar en una función, definir un breakpoint condicional), nos permitirá detectar estos fallos y corregirlos.

Tienes disponible abajo el código del proyecto por si quieres descargarlo y practicar tú mismo el proceso de depuración que vamos a explicar esquemáticamente en este tutorial, y ya de forma más detallada, en un siguiente video que publicaremos posteriormente.

Aplicación ejemplo para depurar

Como vemos en la imagen de abajo con la pantalla de la aplicación, se trata de un proyecto con una única Activity que cuenta con dos campos de texto y un botón.

En el primer campo de texto introduciremos una lista de números enteros separados por comas. Al pulsar el botón procesaremos la lista, ordenaremos los elementos y los mostraremos en el campo de texto inferior ya ordenados. Al final de este tutorial tienes una explicación del algoritmo que ordenación que utilizamos.

Pantalla de la app Android ordenar números

 

Errores en la Aplicación

Si ejecutamos el código del proyecto descargado y realizamos una prueba veremos que primero se produce un error de ejecución que causa el cierre de la aplicación, tal como mostramos en esta pantalla:

mensaje error en la aplicación Android

Para detectar ese error ejecutamos la aplicación en Android Studio en modo de depuración  y colocamos un punto de interrupción (breakpoint) al principio del método onClick :

Inclusión breakpoint en función

Cuando introducimos de nuevo una lista de números y pulsamos para ordenar, realizamos una ejecución del programa paso a paso con la opción Step Over y vemos que se detiene en la función Ordenar .

Repetimos el proceso pero está vez entramos dentro de la función Ordenar  con la opción Step Into. Podemos ir viendo las variables locales y como se van ordenando los elementos.

Haciendo este proceso detectamos el error: el índice j+1  se sale del tamaño del array.

Error Indice Array

Al examinar el código vemos que teníamos un problema de salida en uno de nuestros bucles dentro de la función Ordenar; habíamos confundido el nombre de la variable índice y la condición de salida nunca se cumplía:

Una vez corregido ese error volvemos a ejecutar la aplicación, pero aunque en esta ocasión no se detiene ni da mensaje de error, el resultado que se obtiene en la ordenación no es correcto y se repiten números en la salida:

Error salida ordenación en App Android

Para detectar donde puede estar el error realizamos un seguimiento del funcionamiento del algoritmo de ordenación, incluyendo un punto de interrupción condicional dentro del bucle interno de la función Ordenar: .

Depurando la App con Android Studio

Incluimos la condición de parada  j==lista.length-i-1  que hará detenerse la ejecución en la última interacción de cada pasada del bucle interno, para así poder ver cómo va quedando el array ordenado:

Deuprando app con Android Studio: inserción de condicionales

Tras hacer este análisis descubrimos un error en el código en la línea 85: debemos asignar la variable temp  a list(j+1) , en vez list(j)  como teníamos antes.

En la próxima publicación de esta serie sobre depuración en Android Studio podéis ver el vídeo en el que mostramos todo el proceso que hemos presentado de una forma más detallada.

Descarga del proyecto

Os invitamos a descargar el código fuente del proyecto pulsando en este botón de abajo y poner en práctica lo aprendido. También podéis utilizar el código para implementar otras versiones del algoritmo o incluso otros algoritmos de ordenación y depurar su funcionamiento:

Download

 

Ordenación

El algoritmo de ordenación utilizado en este proyecto ejemplo es el denominado de burbuja (Bubble Sort). Lo hemos elegido porque su implementación es muy sencilla y podréis seguir el proceso de depuración en el vídeo independientemente de vuestro nivel.

Si quieres aprender a programar apps Android, te recomendamos nuestro curso online tutorizado de desarrollo con Android Studio

El algoritmo consiste básicamente en ir realizando comparaciones entre dos elementos correlativos de la lista, cambiándolos de posición en caso de que el de la derecha sea menor. De este modo, tras recorrer toda la lista, nos aseguraremos de que el último elemento es el mayor.

Una vez hecho ésto, repetiremos el proceso excluyendo el último elemento, de forma que obtengamos el segundo mayor en la penúltima posición.

Como ya imaginaréis, el proceso se repetirá hasta que sólo comparemos los dos primeros elementos de la lista, pues el resto ya estará ordenado.

Aquí podéis ver el pseudocódigo (obtenido de la Wikipedia, ver referencia abajo):

Pseudocódigo programa ordenación

Y esta imagen gif animada, muestra de forma muy clara el proceso:

Algoritmo de ordenación bubble en funcionamiento

(imagen: autor Swfung8, licencia CC BY-SA 3.0)

En la Wikipedia, disponéis de una explicación muy detallada, así como de algunas mejoras y variaciones que se pueden aplicar.

 

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