Guía: Enviar un Logcat para ayudar a depurar su aplicación favorita

Nos ha sucedido a todos en un momento u otro. No hay vergüenza en admitirlo. A veces, las aplicaciones de Android se bloquean. Ya sea que esté utilizando un dispositivo completamente disponible para ejecutar Google Maps o una ROM altamente personalizada con un módulo Xposed para mejorar Google Hangouts, pueden producirse bloqueos de aplicaciones y otros problemas e incluso convertirse en un obstáculo. Esto es especialmente cierto en el desarrollo de ajustes y aplicaciones a menor escala, como los que se encuentran en nuestro sitio web. Cuando surgen problemas, una de las ideas más constructivas y útiles que el usuario puede prestar al desarrollador sobre la naturaleza del bloqueo es proporcionar un Logcat. Aunque es extremadamente útil para los desarrolladores, obtener esta información puede parecer algo desalentador para un usuario normal.

Por lo general, involucrando herramientas de línea de comandos a través de ADB, Logcat está fuera del alcance de muchos usuarios que tienen poca o ninguna experiencia con la línea de comandos. Sin embargo, el lanzamiento de ciertas aplicaciones ha eliminado, o al menos reducido en gran medida, la participación de los comandos ADB en la recuperación y el envío de un Logcat, lo que lo hace tan fácil como unos pocos toques en la pantalla. En nuestra misión interminable para ayudar al desarrollo de los desarrolladores, aquí hay una guía para principiantes para enseñar a los usuarios cómo enviar un Logcat.


¿Qué es un Logcat y cómo sacamos uno?

Un Logcat es una herramienta ADB Shell utilizada para extraer un registro de todos los eventos del sistema. Esto incluye errores, advertencias, seguimientos de pila y ocurrencias generales del sistema. Cuando se produce un error, la información clave que apunta hacia la fuente de falla se genera a través de este registro, por lo que es una herramienta muy útil para la resolución de problemas. Normalmente, estos se extraen y filtran a través de comandos ADB. Sin embargo, aplicaciones como aLogcat, Catlog y nuestra herramienta de elección para este artículo, Matlog, han ahorrado a los usuarios el esfuerzo al compilar estas herramientas de comando en la GUI de una aplicación descargable de Play-Store.

Como se mencionó, Matlog es lo que estamos usando para recopilar Logcats. Elegido por su interfaz sencilla pero fácil de usar, Matlog fue creado por Junior Member plusCubed y se basa en la aplicación de código abierto Catlog de Nolan Lawson. Al igual que Catlog , Matlog se puede compilar desde la fuente o descargar de forma gratuita desde Google Play Store. Aunque estar rooteado le permite omitir un paso durante la configuración, no se requiere acceso root para recopilar Logcats . Si su dispositivo no está rooteado, un solo comando de shell ADB otorgará a la aplicación acceso para leer los registros de su dispositivo. ¿Todavía no ha configurado ADB en su máquina? No hay problema, solo siga estos pasos para ponerlo en funcionamiento.

Nota: los teléfonos Huawei han deshabilitado completamente la salida Logcat. Deberá cambiar una configuración oculta antes de continuar con el resto de esta guía.


Configurar ADB

Primero, descargue el binario ADB directamente de Google para su sistema operativo particular y extráigalo a un directorio separado en su computadora. A continuación, instale el controlador adecuado para su teléfono en particular. Luego, habilite "Depuración de USB" en Configuración -> Opciones de desarrollador. Si no ve Opciones de desarrollador, deberá habilitarlo yendo a Configuración -> Acerca del teléfono y luego tocando el número de compilación 7 veces. Finalmente, asegúrese de que ADB esté funcionando iniciando un símbolo del sistema en el mismo directorio que el binario de ADB (haga clic con el botón derecho -> "abrir símbolo del sistema aquí") y ejecute el siguiente comando:

 adb devices 

Si ve el número de serie de su dispositivo (y no dice no autorizado), está dorado. Si ve una ventana emergente en su teléfono que le pide que otorgue acceso ADB a su computadora, diga sí. Si no ve que suceda nada, intente reiniciar su computadora / teléfono y volver a enchufarlo a su computadora. De lo contrario, intente reinstalar el controlador.


Configurando Matlog

Ahora que tiene ADB en funcionamiento (con suerte), todo lo que necesita hacer para habilitar a Matlog la capacidad de capturar Logcats es emitir el siguiente comando en un shell ADB. Nuevamente, si su dispositivo ya está rooteado, no necesita ejecutar este comando, ya que esto solo es necesario para los teléfonos no rooteados.

 adb shell pm grant com.pluscubed.matlog android.permission.READ_LOGS 

Matlog Record Widget junto con la aplicación que funciona mal

Una vez habilitado y abierto, Matlog mostrará los eventos del sistema en tiempo real. Puede tocar el botón de pausa para detener esto, luego toque el menú de puntos suspensivos y seleccione "borrar" para eliminar el campo de datos extraños. Se recomienda hacer esto para preparar el inicio de sesión de la aplicación que no funciona correctamente para reducir el tamaño del registro. Para acortar los pasos y, por lo tanto, la longitud del registro aún más, agregue el widget Matlog a su pantalla de inicio junto a la aplicación en cuestión, como se muestra a la derecha. En este caso, Apktool X es nuestra aplicación que funciona mal.

Al tocar el widget le permite nombrar y comenzar a grabar un registro. Luego, simplemente reproduzca el mal funcionamiento inmediatamente después de iniciar el registro, lo que llenará el Logcat con la información pertinente para su problema. Una vez que se reproduce el problema, simplemente toque el widget nuevamente para completar la grabación del registro.

Al hacerlo, Matlog se abrirá en el registro capturado. Toque las elipses y seleccione "enviar" para enviar el registro por correo electrónico como un archivo de texto adjunto junto con la información general del dispositivo. ¡Eso es! Tu Logcat ha sido capturado con éxito y enviado al profesor Oak.

En mi ejemplo anterior, puedo decir que la razón por la que Apktool X se bloqueó es porque mi dispositivo no está rooteado. Doh! Debería haber leído completamente el artículo antes de intentar usar la aplicación.

Eso fue demasiado fácil

Por supuesto, no todos los problemas son tan fáciles de capturar. A veces, los problemas relacionados con el arranque o los problemas que se extienden durante períodos de tiempo más largos pueden requerir diferentes características de la aplicación para capturar. En tales casos, querrá dejar que Matlog se ejecute en segundo plano (no lo pause ni lo borre) y utilice las funciones Nivel de registro y Filtro para analizar los datos.

Aunque no suele ser el único método necesario para recopilar datos pertinentes (algunas situaciones requieren más contexto), cada una de estas herramientas se puede utilizar en registros más largos para ordenar y especificar datos para el desarrollador. Naturalmente, esto depende de la naturaleza del error y de lo que solicite el desarrollador. Para usar cualquiera de estos, simplemente ejecute Matlog, reproduzca su problema, navegue de regreso a Matlog, toque el menú de puntos y seleccione uno de estos dos métodos de clasificación.

Selección de nivel de registro que muestra solo errores

Nivel de registro

Otro comando ADB simplificado por Matlog, la función Nivel de registro se puede usar para ver tipos específicos de eventos y mensajes del sistema. A continuación, se incluye una breve descripción de los distintos tipos de mensajes, tal como se describe en el sitio web de Desarrolladores de Android y con un código de colores que coincide con el etiquetado de Matlog.

De menor a mayor prioridad:

  • V: detallado (eventos generales del sistema)
  • D: depuración
  • I: información
  • W: Advertencia
  • E: error
  • F: fatal
  • S: Silencioso (Máxima prioridad, en la que nunca se imprime nada)

La función Nivel de registro tiene una lista correspondiente de estos mensajes, que puede filtrar el registro en cada nivel de prioridad. Al seleccionar un nivel de registro, solo se mostrarán los eventos en su propio nivel de prioridad y superior, lo que facilita la identificación y la agrupación de errores en lugar de requerir el desplazamiento manual a través de numerosas líneas de texto, que a veces pueden ser miles.

Conjunto de filtros de búsqueda para "Apktool"

Filtros

Los filtros también se pueden emplear para clasificar los datos de registro. Al iniciar una búsqueda de palabras clave, el usuario puede ver solo mensajes que hacen referencia explícita a esta palabra clave. Las palabras clave útiles pueden incluir el nombre de la aplicación que funciona mal o incluso la palabra "error", ya que abarca instancias del término en todos los niveles de prioridad, aunque no abarca todos los errores de "Nivel de registro".

Si se encuentra buscando / filtrando ciertas palabras clave mucho cuando ayuda a un desarrollador a depurar una aplicación (o si el desarrollador ha creado explícitamente un evento de registro único que puede buscar), también puede guardar un filtro al que puede regresar el futuro. Esto es útil para cuando sepa de antemano lo que está buscando, lo que si trabaja en conjunto con un desarrollador, sucederá con bastante frecuencia.

Listo para depurar?

Si bien es posible que ahora no sea un experto en la depuración de aplicaciones de Android, aprender a reunir y enviar Logcats puede convertirlo en un gran recurso para los desarrolladores de sus aplicaciones favoritas. Usar Matlog, y las características que se detallan anteriormente, recopilar, ordenar y enviar información pertinente sobre una aplicación que no funciona correctamente nunca ha sido tan fácil.


¿Has utilizado Matlog u otra aplicación Logcat? ¿Le ha resultado útil esta guía? ¡Háganos saber en los comentarios a continuación!