Android-2

Ejecutar y debugear apps Android sin emulador ni dispositivo físico

PROBLEMÁTICA

Son ampliamente conocidos los problemas de rendimiento de los emuladores Android, principalmente a la hora de desarrollar y depurar código, el detalle viene en la cantidad de recursos utilizados principalmente memoria RAM y procesamiento, con todo y esto utilizar un emulador y no un dispositivo físico puede ser una opción dependiendo el proyecto, por esta razón aunque sean lentos y pesados los desarrolladores siguen usándolos.

ANÁLISIS Y ALTERNATIVAS

Android es un sistema operativo que no solo soporta la arquitectura ARM, aunque su uso principal sea sobre esta, x86 y su versión de 64 bits son también soportadas, e incluso existen distribuciones de Android enfocadas a estas arquitecturas, algunas como Prime OS o Phoenix OS por mencionar algunas.

En las siguientes lineas explotaremos el potencial de ejecutar Android en un entorno x86 mediante una máquina virtual de QEMU que utilizara un hipervisor de tipo 1(KVM) para obtener el mayor rendimiento posible de la consola donde estemos trabajando.

Acerca de KVM….

KVM es un hipervisor de tipo 1, es decir, de servidor dedicado (bare metal), como referencia VirtualBox y VMware Workstation son hipervisor de tipo 2, básicamente el tipo 1 se ejecuta directamente en el procesador mientras que el otro depende de la gestión del sistema operativo host.

NOTA: El autor del articulo da por hecho que el lector tiene conocimientos básicos del manejo del entorno de virtualización de QEMU así como el uso del sistema operativo Linux a nivel general, por lo que no nos detendremos a ver como instalar y configurar dichos entornos, para dudas relacionadas a esto consultar la documentación oficial de Linux y QEMU.

DOCUMENTACIÓN DE LINUX

INGREDIENTES

  • Máquina Linux (Para esta configuración usaremos Debian 11@kernel 5.10.0-15)
  • QEMU instalado, con sus pools y conexiones configuradas(adaptador de red en modo bridge con el host)
  • 20GB
  • 3gb de RAM libres
  • ISO Prime OS 0.5
  • una red local
  • Entorno configurado de Andoid Studio con adb-tools

IMPLEMENTACIÓN

    1. Lo primero sera crear una máquina virtual, usando la siguiente configuración:                                                                                                                                        
  1. Iniciamos la máquina y al ser la primera vez que arrancamos tendremos que completar la instalación, no es necesaria alguna configuración especial para este punto, basta con instalar normalmente.
  2. Ya en la sesión verificamos la conexión con el host mediante ping.                                                                                                                                                      
  3. Instalamos Termux de algún repositorio oficial, nosotros usaremos F-DROID                                                                                                                                      
  4. Ya en Termux instalamos la herramientas adb con el comando “pkg install android-tools
  5. Desde Termux liberamos el puerto de la máquina virtual usando el siguiente comando:“adb tcpip 5555
  6. Del lado del host ahora basta con conectarnos de manera inalámbrica como si fuera cualquier otro dispositivo:                                                                                 
  7. Una vez conectado nos dirigimos a Andoid Studio y vemos que efectivamente ahora lo lee como un dispositivo conectado. Probamos ejecutando una app:                                                                                                                                                                                                   

CONSIDERACIONES:

  • Puedes instalar PrimeOS en una computadora física y evitar la virtualización, el sistema no pide demasiados recursos así que no se ocupa algo poderoso.
  • Puedes habilitar la depuración como superusuario si es necesario.
  • Tienes acceso a las Google Apps por lo tanto PlayProtect esta activado por defecto.
  • QEMU se puede ejecutar en MAC o Windows pero para temas de eficiencia se recomienda Linux.

Fraternalmente

I.I. Daniel Rosillo;

Desarrollador en CG-SYSTEMS, github

REFERENCIAS

 

REDHAT DOCUMENTACIÓN

TIPOS DE HIPERVISORES

ANDROID

Compartir:

Noticias Relacionadas

CONTACTO

Escríbanos pidiendo una cotización o si tiene alguna duda, le responderemos a la brevedad.

Este sitio web usa cookies para asegurar que tengas la mejor experiencia en el.