Android Studio para principiantes, parte 4: herramientas de depuración y complementos de productividad

Actualizado: enero de 2020.

Android Studio ofrece una amplia paleta de herramientas de desarrollo integradas y un ecosistema de complementos aún más abundante. Los primeros tres artículos de esta serie se centraron en la instalación, configuración, codificación y ejecución de una aplicación móvil sencilla con Android Studio. Ahora se familiarizará con algunas de las herramientas más avanzadas: tres herramientas integradas y tres complementos para depurar y mejorar la calidad y la productividad de su código de aplicación de Android.

Este artículo presenta las siguientes herramientas para Android Studio:

Herramientas de depuración integradas

  • Logcat
  • Depurar
  • Hilas

Complementos para la productividad del desarrollador

  • Idea de ADB
  • Codota
  • Complemento de Lombok

Novedades de Android Studio 3.5

Descubra qué buscar en la última versión de Android Studio, incluida la compatibilidad con Kotlin y las mejoras en la gestión de la memoria y la capacidad de respuesta de la interfaz de usuario.

Registro y depuración de aplicaciones de Android

Una aplicación con errores es una forma segura de alejar a los clientes potenciales. Logcat y Debug son dos herramientas que vienen integradas en Android Studio, que puede usar para identificar y corregir errores en su código de Android.

Registro de Android: Logcat

Es posible que no necesite o desee un depurador completo para cada escenario "con errores". En algunos casos, es suficiente registrar y corregir los valores de ciertas variables. Logcat de Android Studio es perfecto para esta tarea.

Logcat es una herramienta de línea de comandos (integrada en Android Debug Bridge - ADB) que descarga un registro de mensajes del sistema que pueden ayudarlo a encontrar y solucionar problemas en su código. Los mensajes incluyen seguimientos de pila para cuando el dispositivo arroja un error y mensajes de registro que ha incrustado intencionalmente con la android.util.Logclase. Logcat es tan útil que se ha integrado directamente en Android Studio, donde puede acceder a él desde el menú Ver o la barra de la ventana de herramientas.

Jeff Friesen

La ventana de Logcat se divide en una fila horizontal de listas desplegables y otros controles seguidos de un área de mensajes. De izquierda a derecha, los controles son:

  • Una lista desplegable que identifica los dispositivos y emuladores conectados. (Ver figura 1).
  • Una lista desplegable que identifica los paquetes APK instalados en el dispositivo seleccionado.
  • Una lista desplegable de niveles de registro:
    • Detallado: muestra todos los mensajes.
    • Depuración: muestra los mensajes de registro de depuración que son útiles solo durante el desarrollo, así como los niveles de mensajes más bajos en la lista desplegable.
    • Información: muestra los mensajes de registro esperados para el uso regular, así como los niveles de mensajes más bajos en la lista desplegable.
    • Advertir: muestra posibles problemas que aún no son errores, así como los niveles de mensajes más bajos en la lista desplegable.
    • Error: muestra los problemas que han causado errores: excepciones generadas, así como el nivel de mensaje de afirmación.
    • Afirmar: mostrar problemas que el desarrollador espera que nunca ocurran.
  • Una barra de búsqueda donde los únicos mensajes que aparecen son los que contienen el texto que escribe en este control.
  • Una casilla de verificación que le permite usar expresiones regulares en la barra de búsqueda. Por ejemplo, en el contexto de la Figura 1, puede especificar SystemClock | AlarmManager (es decir, el mensaje debe contener cualquier palabra).
  • Una lista desplegable para filtrar mensajes, que incluye las siguientes opciones:
    • Sin filtros (el valor predeterminado) hace que aparezcan todos los mensajes del dispositivo seleccionado, independientemente del paquete APK seleccionado.
    • Mostrar solo la aplicación seleccionada presenta solo aquellos mensajes para el paquete APK seleccionado en el dispositivo seleccionado, que son del nivel de registro apropiado o inferior.
    • Editar configuración de filtro le permite crear un filtro personalizado.

En el código fuente, puede insertar llamadas a varios android.util.Logmétodos para registrar mensajes. Por ejemplo, puede llamar public static int i(String tag, String msg)para registrar un INFOmensaje de nivel o public static int w(String tag, String msg)para registrar un WARNmensaje de nivel.

Para cualquier método, la cadena pasada a tagidentifica la fuente del mensaje (por ejemplo, el método en el que se llamó a este método de registro) y la cadena pasada a msgidentifica el mensaje que se está registrando.

Alternativamente, se podría llamar System.out's y System.err' s print()y println()métodos. Las llamadas a los System.outmétodos logran lo mismo que las log.i()llamadas; las llamadas a los System.errmétodos logran lo mismo que las log.w()llamadas.

Jeff Friesen

En la Figura 2, los únicos mensajes que se muestran son para el proceso de la aplicación de ejemplo que se ejecuta en el dispositivo Nexus 5X emulado. Además, estos mensajes deben contener onCreatey ser aceptados por el filtro Mostrar solo la aplicación seleccionada .

Más acerca de Logcat

Consulte "Escribir y ver registros con Logcat" de Google para obtener más información sobre Logcat. También estudie la android.util.Logdocumentación de la clase.

Depurar Android: depurar

Usar Logcat para registrar y corregir el código está bien para aplicaciones muy simples. Para aplicaciones más complicadas, esta forma de depuración puede resultar tediosa. En su lugar, querrá algo que le permita depurar el código ejecutable de la aplicación. La herramienta de depuración incorporada de Android Studio ofrece muchas capacidades, incluidas las siguientes:

  • Seleccione un dispositivo en el que depurar su aplicación.
  • Establezca puntos de interrupción en el código de su aplicación (Java, Kotlin o C / C ++).
  • Examine variables y evalúe expresiones en tiempo de ejecución.

Hay algunos requisitos previos antes de usar esta herramienta de depuración:

  1. Si su aplicación incluye código fuente C / C ++, deberá instalar LLDB desde SDK Manager (consulte la Figura 3). Afortunadamente, la aplicación de ejemplo para esta serie ( W2A ) no contiene código C / C ++, por lo que podemos ignorar este requisito previo.

    Jeff Friesen

  2. Debe habilitar la depuración en un dispositivo conectado. Sin embargo, si está utilizando un emulador (que estamos en este ejemplo), puede ignorar este requisito previo. La depuración está habilitada de forma predeterminada en los dispositivos emulados.
  3. Debe ejecutar una variante de compilación depurable. De forma predeterminada, esto se crea para usted, por lo que en muchos casos (incluido este ejemplo) no tiene que preocuparse por ello.

Repasemos una sesión de depuración rápida.

Depuración simple de Android

Suponiendo que está ejecutando Android Studio con la ventana del editor para la aplicación de ejemplo ( W2A.java ) abierta, su primer paso es establecer un punto de interrupción en la public void onCreate(Bundle savedInstanceState)línea. Establezca el punto de interrupción resaltando esta línea y realizando una de las siguientes acciones:

  • Haga clic en el área de la canaleta a la izquierda de la línea; la línea debería volverse rosa en respuesta.
  • Seleccione Alternar punto de interrupción de línea en el menú Ejecutar .
  • Presione Ctrl y F8 simultáneamente.

Ahora seleccione Depurar 'aplicación' en el menú Ejecutar , o haga clic en el icono correspondiente en la barra de herramientas. Si el emulador no se está ejecutando, observará el cuadro de diálogo Seleccionar destino de implementación . Seleccioné Nexus 5X API 15 y hice clic en Aceptar .

Mientras espera que el dispositivo emulado se conecte, haga clic en el botón Depurar en la barra de la ventana de herramientas para mostrar la ventana Depurar . Eventualmente, debería ver algo similar a la Figura 4.

Jeff Friesen

La ventana Depurar proporciona iconos para pasar, entrar y salir de un método, y más. La Figura 5 muestra lo que sucede cuando pasamos por alto un método.

Jeff Friesen

Haga clic en el icono correspondiente y seleccione Paso a paso en el menú Ejecutar , o presione F8 . Esto nos permite profundizar más en el onCreate()método mientras pasamos por encima de cada llamada al método.

Seleccione la línea con el }carácter de cierre para el onCreate()método, luego seleccione Ejecutar al cursor . Recibirá un aviso de que la aplicación se está ejecutando. Después de desbloquear el dispositivo, debería ver la ventana de actividad de la aplicación de ejemplo.

Jeff Friesen

Más sobre depuración

Consulte "Depura tu aplicación" de Google para obtener más información sobre la depuración en Android Studio; por ejemplo, cómo utilizar varios tipos de puntos de interrupción.

Depurando con GAPID

Si bien no se trata aquí, recomiendo consultar GAPID: Graphics API Debugger, una colección de herramientas de depuración que le permiten inspeccionar, ajustar y reproducir llamadas desde una aplicación de Android a un controlador de gráficos.

Inspección de código con Lint

No importa cuán cuidadosamente lo escriba, es probable que su código fuente contenga errores, problemas de estilo y puede hacer referencia a recursos que están inactivos por una razón u otra. Un linter es un tipo de herramienta que escanea el código fuente en busca de evidencia de estos y otros fragmentos desagradables, que informa al desarrollador.

Lint es un linter integrado para Android SDK. Puede usarlo para localizar problemas como elementos obsoletos y llamadas a API que no son compatibles con su API de destino.

Para ejecutar Lint desde Android Studio, seleccione Inspeccionar código ... en el menú Analizar . Al hacerlo, se activa el cuadro de diálogo Especificar alcance de inspección .

Jeff Friesen

En el cuadro de diálogo, seleccione el alcance deseado (proyecto completo, en este caso), luego haga clic en Aceptar para comenzar la inspección. Los resultados aparecerán en la ventana Resultados de la inspección , donde están organizados por categoría.

Jeff Friesen

Fiel a su naturaleza, Lint ha seleccionado algunas pelusas que, de otro modo, podrían saturar el código de la aplicación. Una vez detectado, es fácil corregir las tres advertencias de Java que se muestran en la Figura 8: simplemente declare androidAnimationprivatey elimine las conversiones de las dos findViewById()llamadas a métodos.

Más acerca de Lint

Consulte "Mejore su código con comprobaciones de lint" para obtener más información sobre el uso de Lint en Android Studio y sobre la herramienta independiente Lint del SDK de Android.

Instalación y uso de complementos de Android Studio

Si bien las herramientas integradas tienen su mérito, muchas otras herramientas están disponibles como complementos. En esta sección, veremos tres complementos para mejorar la productividad de su codificación en Android Studio:

  • Idea de ADB
  • Codota
  • Complemento de Lombok

Administrador de complementos de Android Studio

El administrador de complementos de Android Studio hace que sea muy fácil encontrar e instalar complementos. Active el administrador de complementos seleccionando Archivo > Configuración seguido de Complementos en el cuadro de diálogo Configuración :

Jeff Friesen

A continuación, haga clic en Examinar repositorios ... para activar el cuadro de diálogo Examinar repositorios , que presenta una lista completa de complementos compatibles. Utilizaremos este cuadro de diálogo para seleccionar nuestro primer complemento, ADB Idea.

Jeff Friesen

Aumente la productividad de su Android

Atajos de código: ADB Idea

ADB Idea acelera el desarrollo diario de Android al proporcionar acceso rápido a los comandos ADB de uso común, como iniciar y desinstalar una aplicación.

Seleccione ADB Idea en la lista del repositorio de complementos, luego haga clic en el botón Instalar . Android Studio procede a descargar e instalar el complemento. Luego vuelve a etiquetar Instalar para reiniciar Android Studio . Para cada complemento, tuve que volver a seleccionar el complemento después de hacer clic en Reiniciar Android Studio , y luego hacer clic en este botón una segunda vez para reiniciar Android Studio.

Jeff Friesen

Una vez instalado, Android Studio le permite acceder a ADB Idea desde su menú Herramientas . Seleccione Herramientas> ADB Idea y elija el comando apropiado en el menú emergente resultante.

Jeff Friesen

Después de seleccionar la aplicación ADB Restart , observé los siguientes mensajes en la ventana Registro de eventos , así como la aplicación reiniciada en mi dispositivo Amazon Kindle.

Jeff Friesen

Encuentra código utilizable: Codota

Puede utilizar el complemento de Codota para acceder al motor de búsqueda de Codota, que le permite buscar entre millones de fragmentos de código fuente de Java disponibles públicamente para encontrar soluciones a los problemas de codificación de Android.

Jeff Friesen

Seleccione Codota en la lista del repositorio de complementos y luego haga clic en el botón Instalar . Después de que Android Studio haya descargado e instalado el complemento, volverá a etiquetar el botón Instalar para reiniciar Android Studio . Reiniciar activa Codota.

Al reiniciar, encontrará el cuadro de diálogo Autenticación de Codota . Haga clic en el enlace y siga las instrucciones para recibir el token. Luego, pegue el token en el cuadro de diálogo mencionado anteriormente y haga clic en Ir .

Jeff Friesen

Android Studio le permite acceder a Codota haciendo clic con el botón derecho en el código Java en la ventana del editor y seleccionando el elemento de menú Obtener ejemplos relevantes , como se muestra en la Figura 16.

Jeff Friesen

Al hacer clic en este elemento del menú, el navegador presenta una página con ejemplos de código relevantes. Por ejemplo, la siguiente página presenta ejemplos que son relevantes para findViewById:

Jeff Friesen

Autogenerar código Java: Lombok

Project Lombok ofrece un conjunto de anotaciones que puede utilizar en lugar del código estándar, lo que le permite ahorrar tiempo al escribir este código a mano.

Jeff Friesen

Seleccione el complemento Lombok en la lista del repositorio de complementos, luego haga clic en Instalar . Después de que Android Studio descargue e instale el complemento, se le pedirá que reinicie Android Studio . Al reiniciar se activa Lombok Plugin.