Los entornos de desarrollo para dispositivos móviles como Xcode o Android studio incluyen alguna herramienta para poder probar los proyectos en desarrollo sin necesidad de tener un dispositivo físico. Esta herramienta simula el comportamiento de un dispositivo físico. En el caso de Android studio esta herramienta se conoce como emulador de Android y viene incluido en el Android SDK que se instala junto a Android studio.
Este emulador, en las últimas versiones de Android studio, se ejecuta por defecto dentro del entorno de Android studio. Pero podemos necesitar ejecutar el emulador de Android fuera del entorno de Android studio. Las razones pueden ser muy variadas: el acceso al emulador no es muy accesible dentro de Android studio, el consumo de recursos de Android studio y el emulador pueden superar los recursos disponibles en la máquina que estemos utilizando, puede que queramos ejecutar una aplicación Android en nuestra máquina para realizar alguna tarea, etc. En cualquier caso es de agradecer que podamos acceder al emulador desde fuera de android studio.
Accediendo al emulador
El emulador de Android está dentro de las herramientas del SDK de Android. Es un comando de la Terminal por lo que podemos acceder a él desde la terminal de Mac o Linux o el CMD de Windows.
El SDK de Android se puede instalar de forma individual junto a las Platform-tools de Android. Al instalar Android studio también se instalará el SDK de Android. Dentro de ese SDK encontraremos una carpeta llamada emulador.
El emulador simula un dispositivo virtual que ejecuta una versión de Android. La creación y administración de dispositivos virtuales se realiza dentro de Android studio pero una vez creado el dispositivo virtual no tenemos por qué seguir utilizando el emulador dentro de Android studio.
Para abrir el emulador debemos conocer qué dispositivos virtuales están disponibles y conocer el nombre exacto con el que el sistema identifica a cada dispositivo virtual.
Ejecutando el siguiente comando se listarán los dispositivos virtuales disponibles.
emulator -list-avds
A la hora de escribir este artículo en mi máquina se encuentran los siguientes dispositivos:
pixel3a-api31
pixel6a-api33
Conociendo el nombre exacto de los dispositivos virtuales podemos, por ejemplo arrancar el Pixel6A ejecutando el siguiente comando en la terminal:
emulator -avd pixel6a-api33
Tras introducir el comando se abrirá el entorno de emulación de Android y se cargará la imagen de Android correspondiente a la API 33 que es Android 13.
Accediendo a la gestión del dispositivo
Una vez esté funcionando el emulador de Android podemos utilizar la herramienta ADB para gestionar varios elementos del dispositivo virtual al igual que haríamos si conectásemos un dispositivo Android físico a nuestra máquina.
El ADB, también conocido como Android Debug Bridge, también se instala con las platform-tools de Android.
Con el ADB podemos enviar órdenes o enviar archivos a nuestro dispositivo Android.
Veamos algunos comandos sencillos que se pueden realizar con ADB.
Lista de dispositivos conectados
Con el comando adb devices se mostrará una lista de dispositivos conectados a nuestra máquina incluyendo los dispositivos virtuales que están siendo ejecutados en el emulador.
Enviar un fichero al dispositivo
Para enviar un fichero al dispositivo debemos ejecutar el siguiente comando:
adb push rutaDelFicheroAEnviar rutaDeDestinoEnElDispositivo
Enviar un fichero desde el dispositivo a nuestra máquina
Con el siguiente comando el dispositivo enviará un fichero a nuestra máquina:
adb pull nombreDelFicheroARecuperar rutaDeNuestraMaquinaParaElFichero
Instalar un APK
Con el siguiente comando instalaremos un paquete de aplicación (APK) en nuestro dispositivo:
adb install nombreCompletoDelFicheroAPK
Desinstalar una aplicación
Con el siguiente comando desinstalaremos un APK del dispositivo:
adb uninstall nombreCompletoDelAPK
Acceder a la terminal del dispositivo
Con el siguiente comando accederemos a la Shell o terminal del dispositivo para poder realizar ciertas operaciones de gestión:
adb shell
Reiniciar el dispositivo
Con ADB también podemos realizar varios tipos de reinicio en el dispositivo.
Para hacer un reinicio normal el comando es:
adb reboot
Y para hacer un reinicio con bootloader el comando es:
adb reboot bootloader
También podemos activar el modo recovery:
adb reboot recovery
Problemas para ejecutar los comandos
Si al intentar ejecutar el comando adb o emulator la terminal o el CMD nos da un mensaje de error indicando que no se encuentra el fichero o comando esto indica que las carpetas de las platform-tools de android no están incluidas en el path de nuestra máquina. Para poder ejecutar estos comandos bien podemos incluir todo el path hasta la carpeta concreta donde está el comando adb o emulator o bien incluir estas rutas en la variable path de nuestra máquina.