33. Android: depurar el código

Depurar aplicaciones

Depurar un código significa "encontrar los errores" que este tenga, o las razones por las cuales un programa no se comporta como esperamos.

Al depurar un código podremos ver cual es el valor de las variables del código por ejemplo, entre otro tipo de detalles.


Una de las acciones que más se realizan es la de añadir "puntos de ruptura" ("breakpoints" en inglés).

Los puntos de ruptura nos permite PARAR LA EJECUCIÓN DE UN PROGRAMA en una linea del programa para comprobar el valor de las variables existentes en ese momento.

Para añadir un "punto de ruptura" clicamos en el margen izquierdo (columna de color gris) de la linea en la que queremos que se pare momentaneamente la ejecución de la aplicación, y continuació aparecerá un circulo rojo:




Para que el programa se pare en esa linea, es necesario además que ejecutemos la aplicación en modo "debug" (depuración). Para ello, pulsamos sobre la barra de herramientas en el icono que tiene forma de insecto con un triangulito verde. De esta manera, nuestra aplicación se ejecutará pero se parará cuando el flujo de ejecución encuentre un "punto de ruptura" en el alguna linea.


Botón para ejecutar la aplicación en modo depuración.


Tras pulsar dicho botón, veremos que la linea donde hemos añadido "el punto de ruptura " aparece resaltada en color azul:


Además en la parte inferior de Android Studio deberá de aparecer el siguiente panel (marco rojo de la siguiente imagen). Si NO nos ha aparecido deberemos de pulsar sobre el item "Debug" (Alt+5):

Panel de depuración.

Botón "Debug" para mostrar/ocultar el panel de depuración



En este panel encontramos datos sobre el flujo de ejecución de la aplicación hasta el punto de ruptura que hemos añadido. Por ejemplo en la parte derecha de dicho panel, aparecen las variables relativas a ese archivo que se han declarado. En este caso las variables que aparecen son dos ("this" y "savedInstanceState"):



La variable "this" se refiere al objeto actual de la clase "MainActivity" (donde hemos colocado el punto de ruptura), y la variable "savedInstanceState" se refiere al parametro del método "onCreate()". El valor de esta última variable se nos indica que es "null".

De esta maner podemos saber cuales son los valores de las variables de una aplicación en un punto concreto de la ejecución, y así poderlos comparar con los que nosotros esperamos que sean.

En estos momentos nuestra aplicación está parada en el "punto de ruptura". Para que el programa termine de ejecutarse pulsaremos sobre el botón "Resume" en la parte izquierda del panel de depuración (triangulo de color verde con unas lineas horizontales negras en el lado izquierdo):




Ejercicio: añade en una método de una clase Java (por ejemplo en el método "onCreate()" de la clase "MainActivity") una linea que declare un variable de tipo String con valor "hola". A continuación añadele un "punto de ruptura" a la linea siguiente y ejecuta la aplicación en modo "Debug". Después, comprueba que la aplicación se ha parado y que comprueba en el valor de la variable declarada es "hola" en el panel de depuración.









Comentarios

Entradas populares de este blog

5. CSS: formatear un documento HTML

34. Java: final, static, constantes, colecciones

29. Android: tipos de layouts