2010-12-28 10 views
42

Qual è la differenza tra iPhone Simulator e l'emulatore Android? Ho sentito persone dire che l'emulatore emula davvero il dispositivo target che non è vero in caso di simulatore.Differenza tra iPhone Simulator ed Emulatore Android

Penso che l'emulatore di Android simuli la velocità di elaborazione del dispositivo di destinazione, l'utilizzo della memoria, ma un simulatore non emula il dispositivo.

+3

Sì, è vero per l'emulatore di Android. Non faccio nulla riguardo l'iPhone o il suo simulatore. – Mudassir

+0

Solo per darti una stima - su un PC di oggi (Core2 Duo a 2,9 GHz, 3 GB di RAM) puoi aspettarti che l'emulatore Android funzioni leggermente più lento della prima generazione di dispositivi (HTC Dream, Hero, Samsung Spica) – tomash

+0

In sintesi - uno emula l'hardware, l'altro emula il software :) – controlbox

risposta

55

Disclaimer: Sono solo uno sviluppatore iPhone, non uno sviluppatore Android.

Si è corretto, la differenza tra emulatori e simulatori è che gli emulatori imitano gli ambienti software e trovati su dispositivi reali. I simulatori, d'altra parte, imitano solo l'ambiente software; altrimenti hanno accesso a tutte le risorse hardware del sistema host come spazio su disco, memoria e velocità del processore.

Apple presta sempre attenzione all'importanza del test del dispositivo in quanto iPhone Simulator non emula un processore, un'unità disco, i vincoli di memoria e quant'altro. Non ricevi quasi mai avvertimenti di memoria a meno che il tuo Mac non riesca a gestire le risorse stesse, a meno che non simuli (di nuovo) gli avvisi di memoria dalla voce di menu del Simulatore.

In realtà, se si va a Impostazioni> Generali> Info, vedrai che la capacità del disco del Simulator è lo stesso del filesystem del Mac è installato su:

17

Sebbene l'emulatore di Android emuli i processori ARM e determinati hardware, continua a non fare un buon lavoro di corrispondenza con le prestazioni della CPU.

Essendo un emulatore, può corrispondere bene al consumo di memoria, può emulare bene alcuni dispositivi semplici ma non riesce quando i dispositivi si complicano, ad esempio i decodificatori di GPU mobili e HW. E poiché la logica di emulazione lavora sulla traduzione di ogni istruzione ARM sull'istruzione X86 e sull'esecuzione di un hog performante e per progettazione, il ciclo non è accurato.

Con il modello di programmazione Java questo progetto non acquista nulla allo sviluppatore di applicazioni in quanto le prestazioni sull'emulatore non riflettono le prestazioni sul dispositivo (a causa della velocità di emulazione e dei dispositivi HW mancanti) e più spesso lo è un inconveniente dato che i cicli di debug sono lenti. L'unico vantaggio è che l'applicazione conforme per l'emulatore funziona come sui dispositivi (nessuna ricompilazione).

Nel modello di simulatore dell'iPhone, Apple ha realizzato che non si accoppiano perfettamente al dispositivo, quindi non tentano nemmeno e in cambio offrono agli sviluppatori un tempo di ciclo veloce e un supporto avanzato degli strumenti per sviluppare le applicazioni in modo efficace.