Comandos ADB importantes para un emulador

Android Debug Bridge (adb) es una herramienta en linea de comandos que nos permite comunicarnos con los emuladores o con los dispositivos físicos Android que tenemos conectados a nuestra workstation de desarrollo.


La herramienta adb se localiza en la siguiente ruta: <PathAndroidSDK>/platform-tools.  


Fig. 1 - Ruta donde se localiza herramienta adb

Adb utiliza una arquitectura cliente/servidor, la aplicación adb que hacemos referencia en la Fig 1, es el componente cliente (localizado en la workstation desarrollo) y el componente servidor se localiza en la workstation de desarrollo también (asociado el puerto TCP 5037), por cierto, el componente servidor si no esta en ejecución, automáticamente se crea al ejecutar el primer comando adb.

 El componente servidor se encarga de escanear los puertos impares en el rango 5555-5585, en este rango de puertos se localiza el daemon ya sea en un emulador o dispositivo fisico.

         adb client ----------- adb server(5037)-------emulador o equipo fisico(5555-5585)

Al ejecutar por primera vez el comando adb  y solicitar el despliegue de los dispositivos o emuladores disponibles , esto es lo que aparece:

Fig. 2 - Ejecutando por primera vez adb
Fig. 3 - Ejecución del comando ps -e, observar el proceso que se crea (server process)

A continuación, uso Eclipse para ejecutar una aplicación en un emulador y ejecuto nuevamente el comando de la Fig. 2, obteniendo lo siguiente:


Fig. 4 - Emulador detectado
El valor "emulator-5554" representa el numero serial del emulador o dispositivo con el fin de identificarlo de manera única y la segunda cadena "device" significa que se realizó una conexión del componente server al daemon.

Comandos importantes


Una vez realizada la conexión, les presento algunos comandos interesantes:

     Instalar aplicación

Fig. 5 - adb -s <dispositivo> install <apk>


Si se vuelve a instalar la misma aplicación, genera el siguiente mensaje: Failure [INSTALL_FAILED_ALREADY_EXISTS]
     
     Ejecutar aplicación

Fig. 6 - Ejecutar aplicación
adb -s <dispositivo> shell am start -n <paquete Java>/<paquete Java>.<Clase>
     
     Reinstalar aplicación

Fig. 7 - Reinstalar aplicación, preservando datos
adb -s <dispositivo> install  -r <apk>

     Enviar archivos de la computadora al emulador o dispositivo (push)

Fig. 8 - Subir archivo al emulador o dispositivo
adb -s <dispositivo> push <origen> <destino>
     
     Enviar archivos del emulador o dispositivo a la computadora (pull)

Fig 9 - Descargar archivo del emulador o dispositivo
adb -s <dispositivo> pull <origen> <destino>

     Kill al server process
     
     Este comando es util cuando se pierde la conexión entre el cliente y el servidor

Fig 10 - Matar al server process


     Ejecutar el emulador desde comandos

     Necesitamos determinar el nombre del emulador, para lo cual usar la herramienta de 
     Android Virtual Device Manager. La herramienta avd se localiza en la siguiente ruta: 

            <PathAndroidSDK>/sdk/tools, posteriormente ejecutar: ./android avd

Fig. 11 - Ejecutar avd, para obtener nombre de los emuladores
     Otra forma de obtener esta información, es ejecutando el siguiente comando:

                                     ./android list targets

     Ahora, para ejecutar el emulador:

                                     ./emulator -avd emuladorAPI18

     Considerar que al cerrar la terminal, el emulador se destruye

                             
     Shell (ejecutar comandos a nivel sistema operativo)

                                    ./adb -s emulator-5554 shell

     Tareas en ejecución

                                    ./adb -s emulator-5554 shell top

     Desplegar logcat 

                                     ./adb -s emulator-5554 logcat

                                     ./adb -s emulator-5554 logcat > salidalog.txt

      Interactuar con base de datos sqlite

      
                        ./adb -s emulator-5554 shell
                         #sqlite3
                         sqlite> attach "/data/data/com.curso.lab8/databases/northwind" as db1;
                         sqlite> . databases
                         seq  name             file                                                      
                         ---  ---------------  ----------------------------------------------------------
                          0    main                                                                       
                          2    db1              /data/data/com.curso.lab8/databases/northwind  

                          sqlite> SELECT * FROM db1.sqlite_master WHERE type='table';  
                          sqlite> SELECT * FROM db1.regions;
                          sqlite> detach db1;     
                          sqlite> . exit                  

     Remover aplicación

Fig. 12 - Remover aplicación con mensaje de confirmación en el dispositivo

Fig. 13 - Remover aplicación sin mensaje de confirmación



FIN

Comentarios

Entradas más populares de este blog

Comandos Linux básicos para un Oracle DBA

Instalar VMware Workstation Player en Windows 10 x64

Múltiples versiones Xcode en macOS