ADB, Logcat, etc. para principiantes

Asumo que cuando Google desarrolló secretamente todo el kit de desarrollo de Android (SDK por sus siglas en inglés) tenían bien claros tanto la visión como el enfoque, sobretodo el potencial de lo que estaban construyendo. Sin embargo dudo mucho que tuviesen noción del la acogida que tuvo, de ese interés nato que mostraron muchos novatos de aquel entonces y que hoy son desarolladores, gurus del tema, etc. Lo cierto es que cuando te insertas en este mundo, las herramientas que debes usar te hacen conocer más, te aportan un conocimiento más profundo y aunque no lo creas, te acerca en demasía a muchas de las filosofías con las que trabaja, por ejemplo, Linux. Es por ello que un buen día dejé mi iPhone y salté a mi Nexus One, y gracias a ello jamás volví a ser el mismo.

Sé que para el que no conoce nada todo esto puede ser asustadizo, de momento ves esas ventanas negras del infierno (o líneas de comando como comunmente se les conoce) y la tendencia más probable es la de retirarte. Pues bien, si eres de los que retan cada esfera de la vida, ésta es una de la que no te arrepentirás, una que te hará crecer cuantiosamente. Así que observa bien y aprende.

Definiciones

 

Android Debug Bridge (adb)

Aplicación hecha por el propio Google para programadores y desarrolladore. Está basada en línea de comandos y básicamente se comunica con tu terminal Android para responder a cada uno de ellos. Existe un vasto caudal de conocimiento acerca de adb, en cuyo caso te invitamos a que te vayas por encima de esta modesta guía y conozcas aún más.

Logcat

Un log en tiempo real acerca de todo lo que sucede dentro de tu equipo. Es extremadamente útil para los desarrolladores a modo de poder ver qué componente está en mal funcionamiento y por ende te estrecha el nivel de búsqueda que debes hacer para reparar la anomalía que estés padeciendo. De hecho cuando presentas un problema, en haras de ahorrar miles de posts con las posibles explicaciones, se usa mucho la tendencia de que expongas el logcat de tu problema. Realmente es la manera más exacta de mostrar tu problema o de simplemente informarte acerca del mismo. Iremos en detalle más abajo para que puedas hacer uso de esta inigualable herramienta.

Instalación de aplicaciones y mantenimiento

adb viene como anillo al dedo si deseas instalar aplicaciones directamente desde tu PC, por lote, o simplemente desinstalarlas.

Ejecuciones del terminal

Existe una aplicación llamada Android Terminal Emulator. Es una aplicación para ejecutar comandos de terminal (comandos de Linux) que están presentes básicamente como applets en los directorios /system/bin/, /system/sbin/ o /system/xbin/. Existe un applet muy importante llamado busybox que es instalado en los directorios ya mencionados; se usa para la ejecución de comandos básicos durante accesos root o la instalación de alguna ROM. Muchos scripts de instalación de una ROM usan comandos busybox con ese fin.

Push y Pull

Diría, sin temor a equivocarme, que estos son los dos comandos adb más utilizados. adb hace que sea pan comido para los nuevos desarrolladores de dispositivos el tener una idea de la estructura y el conocimiento básico de los mismos a golpe de comandos. Para que entiendas mejor, piensa en pull como copiar y en push como pegar. Podemos hacerle un pull a cualquier archivo y directorio hacia nuestra PC, incluso los directorios root sin necesidad de tener el equipo rooteado. Gracias a esto, los rooters y los chefs de ROMs pueden conocer los diferentes esquemas de directorios, a modo de saberlos implementar en su producto con el fines de compatibilidad. El comando push también es de suma importancia. Nos permite pegar archivos y directorios desde la PC hacia tu equipo. Muy importante para aplicaciones en /system y otras tantas cosas.

Pre-Requisitos

 

Configurando ADB

  • Solo una porción de cerebro.
  • Una PC con Windows (en un futuro incluiré una guía para Linux y otra para Mac).
  • Java Runtime Enviroment.
  • Java Developing Kit.
  • Un equipo con Android.
  • Los drivers de dicho equipo.
  • La Depuración USB debe estar activada para que desde la PC ADB pueda verlo.

Si estás teniendo problemas con los pre-requisitos, parte de esta guía pudiera ayudarte. De no ser así, te recomiendo un sitio muy bueno para ello.

Asumiendo que tengas todo lo anterior funcionando a la perfección, pasamos a la siguiente fase.

Preparación

Inicio

  1. Descarga el kit de desarrollo de Android (en este instante son casi 500 MB).
  2. Por defecto la instalación viene contenida en un .zip, de todos modos puedes escoger la variante .exe. En el caso del .zip, descompacta el directorio sdk en la raíz de C:, quedando:

    img1

  3. ADB depende en un 100% del contenido del directorio “Platform Tools”. Ya por estos tiempos el kit de desarrollo viene con ello incluido, pero en versiones anteriores tenías que ejecutar el SDK Manager para abrir el gestor de paquetes e instalarlo. Mi consejo es que lo sigas haciendo, en mi caso y como verás, existe una versión más actualizada de Platform Tools, la cual procederé a actualizar. Hay personas que no les funciona la ejecución de la aplicación de SDK Manager.exe. Para ello hay una solución sencilla. Ve a C:\sdk\tools y ejecuta android.bat

    img2

    img3

  4. A diferencia de una aplicación instalada de manera nativa, puedes hacerle una copia de seguridad al directorio sdk en cualquier lado de tu PC debido a que no tiene ninguna dependencia del Registro de Windows. Esto es bueno tenerlo en cuenta para evitar descargar en un futuro el kit de desarrollo nuevamente.
  5. Este paso es opcional, pero te lo recomiendo casi de manera obligatoria debido a la comodidad que te brindarán estos 2 minutos extras en un futuro. Vamos a crear una variable de entorno para añadir los directorios platform-tools y tools directamente al sistema de variables de entorno usando una simple línea de código. Importante aclarar (nunca está de más) que debes ejecutar cmd como administrador.

    Nota: En mi caso uso dos veces “C:\sdk\” (sin las comillas) porque esa es la localización de mi directorio. En caso de que el tuyo sea otro, debes poner el que corresponda.

  6. Si ejecutaste bien cada paso, ahora podrás utilizar adb directamente desde el terminal de comandos. En la imagen siguiente hice una sencilla consulta hacia los equipos conectados usando el siguiente comando:

    img4

  7. Terminado. Ahora ¿qué hacer?

Línea de Comandos

 

Comandos ADB

Escribe adb en tu terminal de comandos. Verás como se mostrarán cientos de comandos. Debido a que listar y explicar cada uno haría este artículo infinitamente extenso, cubriremos solo los más importantes y populares. Pero que no te quepa la menor duda que Android tiene comandos hasta para lo impensable.

Nota: Recuerda que debes tener activada la Depuración USB.

Conecta tu equipo a la PC y abre tu CMD y juega con los siguientes comandos:

Listado de equipos

  1. Como te explicamos antes, este comando va a mostrarte todos los equipos Android que estén conectados a tu PC junto con sus respectivos números de serie. De mostrarse correctamente todo esto, puedes continuar con el resto.

Logcat

  1. Este importantísimo comando va a mostrar el log en tiempo real de tu equipo. Va a ahorrarte muchas posibles explicaciones cuando tengas un problema que apenas sepas describir, gracias a que podemos o bien copiar la porción referente a nuestro problema (si sabemos identificarla) o bien guardar en un TXT el log completamente.

  2. Para que sepas interpretarlo mejor, te explicamos cómo se conforma su sintaxis básica:

  3. Muchas personas afirman que para imprimir tu logcat en un TXT solo debes ejecutar:

    Pero lo cierto es que así va a mostrarte un error al no poderlo crear debido a que el sistema de archivos es de sólo lectura. Es por ello que debemos modificarlo con la siguiente opción:

    En el caso de arriba se hizo uso de la opción -d, cuyo argumento se refiere a dump, y nos permite saltarnos el error de sólo lectura que previamente encontramos. Seguidamente, a modo de divisor, hay que utilizar el símbolo “>” (sin las comillas), y posteriormente “D:” corresponde a la unidad de mi PC dónde será almacenado, y “logcat.txt” es el nombre designado, puedes ponerle el que desees en tanto respetes la extensión .txt final. A ciencia cierta no se sabe el valor que tiene este TXT cuando tenemos un problema y un guru se puede encargar del mismo, el nivel de simplificación de tiempo que aporta es fenomenal, y ni hablar de la exactitud, todo lo que sucede en tu equipo en tiempo real queda plasmado allí.

Instalar aplicaciones

  1. Este comando no hace más que hacerle un push a la aplicación hacia la PC para instalarla. La sintaxis a usar es la siguiente:

  2. Por ejemplo, si tuviese una aplicación desdeandroid.apk en mi partición D:, entonces el comando quedaría así:

  3. Asegúrate de no tener tu aplicación en ningún directorio con un nombre que contenga espacios, de lo contrario el comando substituye los espacios por guiones. Es muy utilizable esta variante para escribir menos en la línea de comandos, pero lo real es que puedes utilizar directorios con espacios siempre que en el comando contengas la dirección dentro de comillas. Sería algo así:

Push y Pull

  1. Los comandos push y pull te van a servir para copiar archivos hacia/desde tu equipo. A diferencia de install, que solo copia el archivo APK hacia una determinada locación, push y pull te permitirán copiar de manera arbitraria archivos y directorios hacia/desde cualquier locación de tu equipo. Las dos sintaxis a usar son las siguientes:

    • Desde el equipo:
    • Hacia el equipo:
  2. En la línea de comandos, y se refiere a la locación de los archivos/directorios en tu PC (local) y en el equipo Android (remoto). Por ejemplo:

  3. Si vas a copiar el archivo texto.txt, pero deseas que llegue a tu equipo con otro nombre, el proceso es sencillo:

  4. En cambio si lo que deseas copiar es un directorio. El siguiente ejemplo te demuestra cómo:

ADB Shell

Adb provee una shell Unix que puedes usar para correr y ejecutar una variedad de comandos en el equipo conectado. Los binarios de dichos comandos se encuentran en el sistema de archivos del equipo en /system/bin/...

  1. Para iniciar el modo shell, escribe:

    Para confirmar que estás en dicho modo, verás un signo de “$” a la izquierda de cada línea que escribas a partir de ahora.

  2. A partir de aquí no van a funcionar los comandos adb. El modo shell tiene sus propios comandos y aquí vamos a cubrir algunos de suma importancia. Si bien anteriormente mientras usábamos el comando logcat no podíamos escribir dentro de tu equipo Android, dentro del modo shell la cosa cambia. Ejecuta:

    Vas a ver todo el log en tiempo real de tu equipo. Para salvar esto dentro del mismo, escribe:

    Un archivo llamado log.txt (recuerda que puedes llamarle como quieras) será generado en /sdcard.

Desinstalar aplicaciones
  1. Gracias a toda la potencialidad que ofrece el modo shell podemos desinstalar aplicaciones de manera arbitraria. En Android las aplicaciones de usuario están localizadas en /data/app/. Intenta usar el siguiente comando:

    Esto te situará en el directorio /data/app.

  2. Observa el contenido del directorio /app ejecutando:

  3. Supongamos que existe una aplicación llamada com.chrome.browser y deseas desinstalarla. El proceso es sencillo, solo debes escribir:

    Esto la desinstalará completamente del sistema.

Conclusión

 

Si al comenzar esta guía no sabías nada, y realmente la seguiste al pie de la letra, considérate un usuario medio-avanzado a partir de ahora, porque si bien no estás a la altura ahora mismo de resolver tú mismo cuanto problema le suceda a tu terminal, al menos sí posees la perspicacia de poderle facilitar tus logs a quiénes te intenten ayudar. Gracias al nivel extremo de funcionalidad y el potencial de ADB, los desarrolladores han podido crear magníficas aplicaciones visuales (GUI) como Droid Explorer o Android Commander, que llevan a un nivel físico todas estos comandos básicos que hemos estudiado aquí. Por ejemplo, si en un panel ves físicamente todos los archivos dentro de un directorio, ahora ya sabes que por detrás está corriendo el comando ls, o si le das doble clic a un .apk en la PC y se te instala en tu equipo, gracias a esta guía, ahora sabes que esa simple acción está corriendo por detrás el código adb install.

Dejar un comentario

Your email address will not be published. Required fields are marked *