Visitas: 30
Muchos desarrolladores de Android en GNU/Linux utilizan el emulador de Android para probar sus aplicaciones, pero se encuentran que es bastante lento. En este post les voy a mostrar como solucionar este gran inconveniente y poder desarrollar aplicaciones móviles de forma más placentera.
Obs:
- Utilizo Debian Buster de 64 bits, pero pueden utilizar cualquier distro.
- Utilizo Android Studio 4.0
- Asumo que ya tienen instalado el SDK de Android con un emulador como mínimo para poder hacer la prueba.
Para poder acelerar el emulador de Android en GNU/Linux DEBEN de instalar KVM.
KVM (Kernel virtual Machine) es una solución de virtualización completa para GNU/Linux en el hardware x86 con extensiones de virtualización (Intel-VT o AMD-V). Para virtualizar Sistemas Operativos o emuladores que en este caso serían los de Android.
Lo primero que vamos a identificar es si nuestro procesador soporta KVM, los de Intel le llaman Intel-VT y los de AMD le llaman AMD-V. Con los nuevos procesadores que están en el mercado casi seguro que ya soportan virtualización por hardware.
La forma de identificarlos es distinta, para ver si tu procesador soporta virtualización por Kernel, vamos a buscar en las flags del procesador.
Para Intel, tecleamos en la terminal:
grep --color vmx /proc/cpuinfo
Debe aparecer en rojo un montón de palabras, entre ellas, la palabra vmx.
En el caso de AMD el procedimiento es similar. Tecleamos en la terminal:
grep --color svm /proc/cpuinfo
Debe aparecer en rojo un montón de palabras, entre ellas, la palabra svm.
Si aparece en tu caso uno de los dos resultados, dependiendo de tu procesador, podes instalarlo para poder disfrutar la aceleración de los emuladores de Android.
Te recomiendo a que instales KVM y que sigas con el post. Caso contrario no vas a poder acelerar tu emulador de Android.
Ahora instalaremos los paquetes necesarios, entramos en la terminal y tecleamos:
sudo apt update sudo apt install aptitude sudo aptitude install python3-libxml2
Sale por pantalla:
Las acciones siguientes resolverán estas dependencias Mantener los paquetes siguientes en la versión actual: 1) python3-libxml2 [Sin instalar] ¿Acepta esta solución? [Y/n/q/?]n Las acciones siguientes resolverán estas dependencias Instalar los paquetes siguientes: 1) python3-libxml2 [2.9.4+dfsg1-7+b3 (stable)] ¿Acepta esta solución? [Y/n/q/?]
Se presiona dos veces Y.
Volvemos a teclear en la terminal:
sudo apt install qemu qemu-kvm qemu-system qemu-utils bridge-utils libvirt-clients libvirt-daemon-system virtinst virt-viewer virt-manager libguestfs-tools libosinfo-bin -y sudo apt clean && sudo apt autoclean
Para agregar al usuario que queremos que use la virtualización. En este caso usamos proyectosbeta, pero pueden elegir cualquiera. Tecleamos en la terminal:
sudo adduser proyectosbeta libvirt sudo adduser proyectosbeta libvirt-qemu sudo adduser proyectosbeta kvm newgrp libvirt newgrp libvirt-qemu newgrp kvm
Sería bueno cargar el módulo por si las moscas:
Para Intel, tecleamos en la terminal:
sudo modprobe kvm-intel
Para AMD, tecleamos en la terminal:
sudo modprobe kvm-amd
Antes de poder ver la aceleracion del emulador de Android se debe de reiniciar el sistema. Tecleamos en la terminal:
sudo reboot
OBS:
- Ser usuario proyectosbeta.
Luego de reiniciar podemos continuar. Verificamos que el servicio este activo:
sudo systemctl status libvirtd
Sale por pantalla:
● libvirtd.service - Virtualization daemon Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-02 18:34:31 -04; 1min 43s ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 1066 (libvirtd) Tasks: 17 (limit: 32768) Memory: 34.2M CGroup: /system.slice/libvirtd.service └─1066 /usr/sbin/libvirtd may 02 18:34:31 pantanoNegro systemd[1]: Starting Virtualization daemon... may 02 18:34:31 pantanoNegro systemd[1]: Started Virtualization daemon.
No necesitan crear una máquina virtual para utilizar KVM con los emuladores de Android.
Ahora ya podremos entrar a Android Studio y ejecutar un emulador. Verán lo rápido inicia.