Perché Android ha creato un emulatore piuttosto un simulatore?

5

Da link

La differenza tra emulatori e simulatori è che gli emulatori imitano gli ambienti software e hardware presenti sui 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 dei dispositivi in quanto iPhone Simulator non emula un processore, un'unità disco, vincoli di memoria e altro. Quasi mai ricevi avvisi di memoria a meno che il tuo Mac non stia cercando di gestire le risorse stesse, a meno che non simuli (di nuovo) gli avvisi di memoria dalla voce di menu del Simulatore.

Anche se l'emulatore di Android emula i processori ARM e alcuni componenti hardware, non fa comunque un buon lavoro di corrispondenza con le prestazioni della CPU.

Essendo un emulatore può eguagliare bene il consumo di memoria, può emulare bene alcuni dispositivi semplici ma fallisce 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 delle prestazioni e in base alla progettazione, il ciclo non è accurato.

La mia domanda: Perché Android ha creato un emulatore piuttosto un simulatore?

    
posta Md Mahbubur Rahman 20.02.2013 - 12:07
fonte

2 risposte

11

Nessuno tranne Google sa perché hanno preso questa decisione, ma ecco la mia ipotesi migliore:

Android è una piattaforma aperta, quindi ci sono molte diverse configurazioni hardware là fuori. Essere in grado di emulare diverse configurazioni hardware è un grande vantaggio per gli sviluppatori, in quanto riduce notevolmente la necessità di disporre di dispositivi reali su cui eseguire il test. Ciò mantiene bassi i costi per gli sviluppatori, quindi li incoraggia a sviluppare per Android.

Cercare di abbinare prestazioni senza utilizzare l'hardware reale è un gioco da pazzi in questo contesto - anche i PC hanno caratteristiche diverse! È anche di non preoccupare per molti (credo che la maggior parte degli sviluppatori).

    
risposta data 20.02.2013 - 12:21
fonte
0

La mia ipotesi è che anche se le app Android devono essere scritte in Java, è possibile includere un codice extra scritto in qualsiasi lingua e compilato in linguaggio macchina con qualsiasi compilatore desideri. Per eseguirli, devi emulare una CPU del telefono.

(Sì, ora c'è Android per x86, ma è piuttosto una piattaforma marginale.)

iOS, d'altra parte, consente solo l'obiettivo C e viene compilato solo con XCode. non sembra così difficile includere due target di compilazione nell'SDK: uno per i dispositivi e uno per il simulatore.

    
risposta data 21.02.2013 - 05:51
fonte

Leggi altre domande sui tag