martes, 22 de noviembre de 2016

Como depurar servicios en Android Studio

Si alguna vez habéis intentado depurar servicios en Android Studio, veréis que los breakpoints que estáis poniendo, solo funcionan en la aplicación principal, pero no en el servicio deseado.
De hecho, en la ventana Android Monitor, ni siquiera puedes ver los mensajes de log generados por el servicio, solo los de la aplicación principal.

El motivo es que desde Android Studio, cuando se ejecuta una aplicación, la depuración se hace sobre el módulo principal pero no se conecta a los diferentes servicios que esta aplicación pueda ir abriendo de forma automática. Debemos ser nosotros los que hagamos un attach al servicio deseado.

Para ello:
  • Ejecutamos la aplicación en modo depuración y ejecutamos la función que ejecuta el servicio apara asegurarnos que está corriendo. Si sabemos que ya está corriendo podemos ir directamente al siguiente punto.
  • Desde el menú superior, veremos que junto a los iconos de Run y Debug hay un icono denominado Attach debugger -también podemos hacerlo desde el menú Run > Attach debugger to Android process-




  • Si lo pulsamos aparecerá una lista de los servicios asociados a nuestra aplicación. Si marcamos la opción Show all processes veremos todas las aplicaciones/servicios que actualmente están corriendo en nuestro dispositivo.


  • Tras pulsar OK, tendremos nuestro depurador enlazado con el servicio y ahora sí funcionarán los breakpoints que hubiéramos habilitado.
  • Finalmente, si queremos ver los mensajes de log que el servicio esté generando, en la ventana Android Monitor deberemos seleccionar el nombre del servicio del desplegable:



Comentarios
0 comentarios
Para Comentar Elige el Sistema de Comentario de tu Agrado:
Comentarios Comentarios Comentarios