¿Por qué el emulador de Android es tan lento?

Si su emulador de Android es lento, entonces este no es solo su problema, ha sido un problema para toda la comunidad que trabaja en emuladores de Android.

Si quieres acelerar el proceso, me gustaría ayudarte con esto.

Siga estos pasos, puede que su problema llegue a su fin.

Usar hardware real : OK, así que esto no acelera el emulador, pero vale la pena mencionarlo nuevamente. Existen otras ventajas además de la velocidad, y el hardware de Android es bastante barato en comparación con el hardware de iOS. Obtenga algunos dispositivos diferentes y estará listo.

No ejecute el emulador en una máquina virtual : el emulador es una máquina virtual, y ejecutar una máquina virtual en una máquina virtual solo agrava el problema. Si está desarrollando en una máquina virtual, no todo está perdido, aún puede depurar en un emulador remoto para ejecutar el emulador en la máquina host.

Utilice Parallels Desktop 9 : si debe ejecutar el emulador en una máquina virtual (lo cual no recomiendo) , escucho informes de que Parallels Desktop 9 para Mac OS X es más rápido que VMWare Fusion. Puede probar esto usted mismo con la última versión de VMWare Fusion. La comparación que escuché fue entre Parallels 9 y Fusion 5, que ahora está detrás de una versión.

Usar GPU host : hay una opción al crear una instancia de emulador de Android (llamada AVD o máquina virtual Android) para usar la GPU física en la máquina host en lugar de emularla en el software. Esto le da un gran impulso al rendimiento. Por lo tanto, cree un nuevo emulador de Android y asegúrese de habilitar Usar host GPU . (No, esto es incompatible con la otra opción de rendimiento de Snapshot, pero descubrí que la GPU Host utiliza un mejor rendimiento del emulador, mientras que Snapshot solo acelera el inicio del emulador).

Copie las bibliotecas OpenGLES : después de iniciar un emulador con Usar Host GPU habilitado, a veces aparece el error “No se pudo cargar la biblioteca de emulación OPENGLES”.

Derecha Asish K Sahadevan.
Cuando marcó la opción Usar GPU de host utiliza la implementación de OpenGL de la computadora host (que probablemente está acelerada por hardware, en su GPU real) para evaluar los comandos de OpenGL dentro del sistema emulado. Para obtener más información, esta es la respuesta en stackexchange.com

Y uno más, ¿por qué no deberías ir a Genymotion? Estoy usando esto de los últimos meses como opción para Android Emulator y estoy bastante contento con esto.

Bien respondido por Saif Sadiq, Tia Mongla, Abhishek Jain.

Es posible que vea algunos artículos o consejos sobre el uso de Intel HAXM, BlueStacks, Genymotion, Android-x86 o algún otro emulador de Android de alto rendimiento. Casi siempre usan una imagen de Android x86 / Atom, que se ejecuta más rápido porque no necesita emular la CPU, ejecutando el código x86 en su CPU host (al igual que el simulador de iOS). Sí, son más rápidos, pero la mayoría de los dispositivos Android (al menos en EE. UU.) Son ARMv7. Por lo tanto, técnicamente está probando una configuración de hardware de nicho que probablemente no sea lo que su aplicación ejecuta en el mundo real. En algunas partes del mundo, los dispositivos Android basados ​​en Intel Atom se están volviendo más comunes, por lo que esos emuladores tienen un propósito.

He estado usando LambdaTest y probé en emuladores de LambdaTest. Son bastante buenos Y tuvo una gran experiencia en las pruebas con LambdaTest.

El emulador de Android es muy lento. La razón principal es porque está emulando la CPU y GPU ARM, a diferencia del Simulador de iOS, que ejecuta el código x86 en lugar del código ARM que se ejecuta en el hardware real. Esto significa que el simulador de iOS suele ser más rápido que el hardware real, y el emulador de Android es más lento que el hardware real. La mayoría de los desarrolladores de Android con los que hablo se desarrollan en hardware real, pero a veces necesitas el emulador, y cuando lo estás usando, necesitas que funcione más rápido.

Incluso puede realizar sus pruebas en emuladores de LambdaTest.

Porque los emuladores siempre son lentos. Imitan exactamente el sistema emulado y, a diferencia de los simuladores, no tienen una implementación diferente.

Por lo tanto, los emuladores de Android imitan completamente el sistema operativo Android y son similares a tener una máquina virtual. Si ha creado una máquina virtual, sabrá que el sistema operativo invitado siempre será más lento que el sistema operativo host.

En la medida en que Android confíe en emuladores, serán más lentos que los dispositivos reales, independientemente de sus actualizaciones.

En los sistemas basados ​​en Intel, puede optar por instalar versiones x86 de los emuladores que son más rápidos pero que, hasta donde yo sé, solo funcionan en ciertos procesadores. También deberá instalar los controladores Intel HAXM que estarán allí en el administrador de SDK como descarga por separado.

También puede elegir acelerar el hardware de los emuladores mediante la opción Host GPU. Pero en mi experiencia, usar un dispositivo físico siempre es una opción más rápida y mejor.

Bueno, hay ciertas formas que pueden ralentizar el rendimiento de los emuladores de Android.

  1. cuando tiene poco espacio en disco / memoria
  2. cuando su máquina funciona con un procesador lento

Pero si tiene suficiente espacio de memoria y su procesador no es tan lento, aún así su emulador no funciona correctamente, entonces puede ser culpa de su marco.

Te sugiero que uses una plataforma que supere todos estos problemas. LambdaTest haría el truco por usted, ya que tiene más de 1400 combinaciones de navegador, incluidos los navegadores móviles y web, y créanme que no tienen un rendimiento lento.

Porque estás emulando un sistema operativo dentro de otro sistema operativo.
Y Android en sí mismo tiene una máquina virtual Dalvik.

En resumen, estamos haciendo una emulación de triple capa.

Su comando a Windows (o Mac o Linux) a AVD a la capa de aplicación de Android a Dalvik VM para codificar en bytes al código de máquina. :pags

PD: prueba GenyMotion, es uno de los emuladores de Android más rápidos.

¡Hola! Quiero compartir algo que encuentres interesante. Probé emuladores de Android en varias plataformas, pero en serio, en LambdaTest tuve una experiencia increíble. Puede probarlo usted mismo y luego decidirlo usted mismo. Nunca sentirás que los emuladores de Android son lentos.

Intenta descargar las imágenes x86. Emular un ARM encima de x86 será lento, pero si está utilizando las imágenes x86, es posible realizar la virtualización en lugar de la emulación. Por supuesto, esto no funcionará si está utilizando un código nativo para ARM, pero si su aplicación es Java pura, debería funcionar bien.

Para obtener más información sobre la compatibilidad de virtualización en el emulador de Android SDK, consulte la sección Configuración de la aceleración de máquina virtual de:
http://developer.android.com/too


Porque está emulando la CPU y GPU ARM, a diferencia del Simulador de iOS, que ejecuta código x86 en el hardware real.

Emulador de Android: utiliza QEMU para ejecutar ARM, emulando el hardware.
Simulador de iOS: ejecuta código nativo en Mac, compilado para arquitectura x86

Hay pocas soluciones para hacer que el emulador funcione más rápido

1) ADT tiene una función que permite guardar el estado de AVD (emulador) e iniciar su emulador al instante. Debe habilitar esta función mientras crea un nuevo AVD o puede crearlo más tarde editando el AVD.

2) Al crear una instancia de Emulator, es una opción para usar GPU física en la máquina host, en lugar de emularla en el software. Este es un gran impulso de rendimiento.

3) El controlador HAXM aumenta la velocidad hasta cierto punto. Esto permite que el código dentro del emulador se ejecute a una velocidad casi completa en la máquina host. La interfaz entre QEMU y el controlador HAXM en el sistema host está diseñada para ser independiente del proveedor, pero actualmente solo admite la tecnología Intel VT.

Para agregar otra respuesta,

En aquel entonces, Qt abandonó su “emulador” móvil a un “simulador” mucho más rápido y fácil de usar. 🙂

AFAIK, ninguna declaración de Google / Android, por qué insisten en usar el emulador. 🙂

¿Cuál es la diferencia entre simulación y emulación?

Simplemente, porque es un emulador, no original.

A su segunda pregunta “¿Por qué no se mejora el rendimiento de estos emuladores?”
Debido a que no es parte de su negocio principal, se supone que está diseñado para los Desarrolladores.

Conectar su teléfono celular es la forma más efectiva de depurar sus aplicaciones. Porque es más rápido y más conveniente que x86 y el emulador. Por lo tanto, abandona el emulador o x86. Por cierto, cuando conecta su teléfono celular a la computadora para la depuración, debe abrir “depuración usb” en la configuración.

No tienes que usar el emulador de Android todo el tiempo. Hay muchas alternativas al emulador de Android, como bluestack, su propio dispositivo móvil Android y recientemente Google lanza una herramienta Arc Welder ‘que puede ejecutar cualquier archivo apk en Windows, Linux y Mac utilizando el navegador web Google Chrome.

El emulador no es lento. Tu PC es!

Obtenga un procesador Intel i5 / i7 de cuarta generación. 8 Gb + ram y ver la diferencia. (Esta es la configuración de mi PC)

La razón como se indicó anteriormente es porque el emulador ejecuta una máquina virtual dalvik sobre el kernel de Windows y luego sobre todo esto ejecuta el sistema operativo Android.

¡Todo esto hace que la computadora se vuelva loca, especialmente si es vieja! Entonces obtenga una nueva PC o Mac y no se quejará.

Creo que encender el controlador de gráficos puede aumentar la velocidad. Tenía un emulador lento, pero cuando instalé el controlador de Nvidia y verifiqué la “opción de GPU de host”, se ejecuta más rápido.