2013-03-26 12 views
5

Nur neugierig. Hat Apple mit seinem iPhone-Simulator einen tollen Job gemacht?Warum ist Android Emulator viel langsamer als iPhone Simulator?

Wenn verglichen, läuft der Android Emulator auf i7 und iPhone Simulator auf i3. Der iPhone Simulator ist schneller als das echte iPhone.

Habe ich nicht richtig eingerichtet?

+2

 Felsen !!!!!!! –

+1

Ja das stimmt, der 'Emulator' (FYI) ist langsamer als der Simulator. – MKJParekh

Antwort

16

Es ist eine Frage der architektonischen Entscheidungen:

  • iOS Simulator nativen Code ausgeführt wird, direkt auf dem CPU - das Projekt hat für x86-Architektur neu kompiliert werden mit Simulator verwendet werden. Der Simulator selbst emuliert einfach alle iOS-APIs.

  • Android-Emulator, auf der anderen Seite, verwendet QEMU, um ARM (oder x86, aber ARM ist beliebter) CPU virtuelle Maschine, mit allen Software-Stack darüber - Linux-Kernel, Android-System-Image, etc Stellen Sie es sich als eine emulierte Hardware vor.

Es ist eine Art des Handels aus - die Art und Weise iOS macht es viel schneller ist, aber es ist schwieriger, es mit dem Zielsystem kompatibel 100% zu machen. Für Apple war es vielleicht etwas einfacher, da iOS und Mac OS viele Gemeinsamkeiten haben.

Für Android ist es sehr sinnvoll, den gesamten Stack zu emulieren - es ist einfacher, ein plattformübergreifendes SDK zu erstellen, es ist leichter, einige Komponenten auf Systemebene zu testen usw. Es ist einfach ein anderes Ökosystem mit unterschiedlichen Zielen. Vergessen Sie nicht, dass der Android-Emulator z.um native ARM-Bibliotheken zu testen, die mit Android NDK kompiliert wurden.

Heute ist die Android-Emulator-Leistung mehr oder weniger akzeptabel, aber es war nur eine Katastrophe in den frühen Android-Tagen. Das heißt, persönlich denke ich, dass der schnelle, native Simulator auf API-Ebene für Android eine großartige Ergänzung zum SDK sein wird, was es ermöglicht, weniger anspruchsvolle Projekte viel schneller zu testen.

Interessante Lektüre: http://logic-explained.blogspot.com/2011/09/why-is-there-no-x86-native-emulator-for.html

+2

Diese Antwort ist etwas alt, aber immer noch gute Informationen über den ARM-Emulator. Es gibt neuere Emulatoren, die Intel HAX verwenden. Wenn Sie eine Intel-CPU mit Virtualisierung eingerichtet haben, erhalten Sie eine viel höhere Leistung. Der Grafikteil ist immer noch langsam, aber Sie können die Auflösung verringern, um das auszugleichen. Ich hatte Erfolg, Android x86 auf einer VM auch laufen zu lassen (ctrl-F1, geben Sie netcfg auf VM ein. Ctrl-F7, um zurück zu der GUI zu kommen. Auf dev Maschine, adb verbinden ). Die Kitkat Android x86-Versionen sind sehr gut, wenn Sie Ihre App nicht im Portrait gesperrt haben. –

+0

Siehe: http://jakewharton.com/android-needs-a-simulator/ – bryant1410

2

iphone, iphone Simulator, Apple-Laptop, Xcode sind Apple-Produkte

aber android
windows-Microsoft android -Google Eclipse -Eclipse Anbieter

diese Tools verschiedener Anbieter, warum android Simulator langsam .

ich bin nur ein Scherz :)

1

Vor allem Android kein Simulator hat es ein Emulator hat. Zweitens glaube ich, dass die Geschwindigkeit des Emulators von Ihrer Maschinenkonfiguration abhängt. Besser die Konfiguration, desto besser wird es laufen, vorausgesetzt, Sie haben die AVD richtig erstellt und genügend Speicher gegeben.

0

Android SDK hat einen Emulator, während ios SDK Simulator hat.

Ein Simulator verhält sich ähnlich wie etwas anderes, wird aber auf eine völlig andere Art und Weise implementiert. Sie stellt das grundlegende Verhalten eines Systems bereit, muss sich jedoch nicht unbedingt an alle Regeln des Systems halten, das simuliert wird. Es gibt Ihnen eine Vorstellung davon, wie etwas funktioniert. Es verwendet Desktop-Ressourcen wie Prozessor, RAM usw.

Ein Emulator ist ein System, das genau wie etwas anderes verhält und sich an alle Regeln des emulierten Systems hält. Es ist effektiv eine vollständige Replikation eines anderen Systems, bis es binär mit den Eingaben und Ausgaben des emulierten Systems kompatibel ist, aber in einer anderen Umgebung als die Umgebung des ursprünglichen emulierten Systems arbeitet.

So Simulator wird definitiv schnell im Vergleich zu Emulator.

2

Apple-Simulator wird mit der Systemkonfiguration erstellt bedeutet, es wird das RAM, Speicher, Cache-System nimmt automatisch Sie es nicht konfigurieren müssen, so dass ein iPhone-Simulator ist nicht als reales Gerät handeln aber im Fall von Android muss man alle Konfigurationsdetails vor dem Erstellen des Emulators bereitstellen, Android-Emulator wird in hohem Maße als echtes Gerät fungieren, kann aber viel langsamer als ein Iphone-Simulator sein.

0

Der Android-Simulator ist eigentlich ein Emulator, der ein mobiles Gerät mit Android nachahmt, dh er emuliert die Hardware, auf der das Android-Betriebssystem läuft, um es so nahezu identisch wie möglich zu machen. Die JVM konvertiert Java-Bytecode in ARM-Anweisungen, die vom Emulator decodiert werden.

Der iOS-Simulator arbeitet auf einer höheren Ebene, simuliert das Betriebssystem und seine Bibliotheken, übersetzt OS-Aufrufe in OS X-Implementierungen und simuliert Ereignisse in die andere Richtung wie Geräterotation oder geringe Speicherbedingungen. Wenn Sie eine App auf dem iOS-Simulator ausführen, wird die App in x86 kompiliert, das nativ auf Ihrem Mac ausgeführt wird. Im Gegensatz zum Android-Emulator wird Ihrer iOS-App im Simulator nicht mehr genügend Arbeitsspeicher zur Verfügung stehen, da sie nicht an die Speicherbeschränkungen eines bestimmten iOS-Geräts gebunden ist.

1

Ja, das stimmt, die emulator (FYI) ist langsamer als Simulator.

Hat Apple mit dem iPhone-Simulator einen tollen Job gemacht?

Kein anderer Entwickler kann dies beantworten, weil iOS nicht Open-Source ist.

Habe ich nicht richtig eingerichtet?

Nein, Sie sind bei allem richtig.

1

so einfach ist:

Android Emuliert reales Gerät, so real architeture und ganz in der Nähe behaivour und Layout. In anderen Händen ist der Apple Simulator kein Emulator, also kann man kein echtes Verhalten erwarten, aber es hat ein enges Layout, das hauptsächlich für iOS funktioniert, da man nur 1 Gerät braucht, um das App-Verhalten zu testen.

Verwandte Themen