Diferencia entre iPhone Simulator y Android Emulator

¿Cuál es la diferencia entre el simulador de iPhone y el emulador de Android? He escuchado a la gente decir que Emulator realmente emula el dispositivo de destino, lo que no es cierto en el caso del simulador.

Creo que el emulador de Android imita la velocidad de procesamiento del dispositivo de destino, el uso de memoria, pero un simulador no emula el dispositivo.

Descargo de responsabilidad: solo soy un desarrollador de iPhone, no un desarrollador de Android.

Estás en lo cierto, la diferencia entre emuladores y simuladores es que los emuladores imitan los entornos de software y hardware que se encuentran en los dispositivos reales. Los simuladores, por otro lado, solo imitan el entorno de software; de lo contrario, tienen acceso a todos los recursos de hardware del sistema host, como el espacio en disco, la memoria y la velocidad del procesador.

Apple siempre hace hincapié en la importancia de las pruebas de dispositivos porque iPhone Simulator no emula un procesador de iPhone, unidad de disco, restricciones de memoria y otras cosas. Casi nunca recibe advertencias de memoria a menos que su Mac tenga problemas para administrar los recursos, a menos que simule (nuevamente) advertencias de memoria del elemento de menú del Simulador.

De hecho, si va a Configuración> General> Acerca de , verá que la capacidad del disco del Simulador es la misma que la del sistema de archivos de la Mac en la que está instalado:

Aunque el emulador de Android emula los procesadores ARM y cierto hardware, todavía no hace un buen trabajo de igualar el rendimiento de la CPU.

Al ser un emulador, puede combinar bien el consumo de memoria, puede emular bien ciertos dispositivos simples, pero falla cuando los dispositivos se vuelven complicados, por ejemplo, decodificadores de medios de GPU y HW móviles. Y como la lógica de emulación funciona en la traducción de cada instrucción ARM a la instrucción X86 y la ejecución de un cerdo de rendimiento y por diseño no ciclo preciso.

Con el modelo de progtwigción siendo Java, este diseño no le compra nada al desarrollador de la aplicación ya que el rendimiento en el emulador no refleja el rendimiento en el dispositivo (debido a la velocidad de emulación y debido a dispositivos HW faltantes) y más a menudo es un inconveniente los ciclos son lentos La única ventaja es que la Aplicación se cumplió para el trabajo del emulador tal como está en los dispositivos (sin recomstackción).

En el modelo de simulador de iPhone, Apple se dio cuenta de que no iban a hacer coincidir el dispositivo a la perfección, por lo que ni siquiera lo intentaron y, a cambio, les dio a los desarrolladores un tiempo de ciclo rápido y mejor soporte de herramientas para desarrollar aplicaciones de manera efectiva.