Unterschied zwischen Google APIs (x86 System Image) und Google APIs (ARM System Image) in Android 4.4.2

93

Ich habe dies verfolgt ( http://developer.android.com/google/play-services/setup.html#Install ). Ich wurde aufgefordert, Google APIs für Android API 17 (oder höher) zu installieren. Als ich SDK Manager öffnete, sah es folgendermaßen aus:

SDK Manager

Meine Frage lautet also: Was sind diese beiden Google-APIs? Und was ist der Unterschied zwischen diesen beiden?

Amna Ali
quelle
1
IIRC, sie sind für verschiedene Prozessoren.
Mike D
14
Das ARM-Image entspricht eher den meisten Android-Geräten, erfordert jedoch eine Emulation des Prozessors und ist daher sehr langsam. Der x86 ist möglicherweise etwas schneller und verwendet möglicherweise Unterstützungsmechanismen für virtuelle Maschinen, um den Code teilweise nativ auszuführen. Sie können den x86 auf Geschwindigkeit testen und auf den ARM zurückgreifen, wenn Sie Kompatibilitätsprobleme haben. Siehe developer.android.com/tools/devices/emulator.html
Chris Stratton

Antworten:

127

Zu Beginn wurden die einzigen verfügbaren Android-Systemabbilder auf dem ARM-Befehlssatz ausgeführt. Ein Systemabbild wird verwendet, um verschiedene virtuelle Android-Geräte (AVDs) zu erstellen und die verschiedenen häufig verwendeten Android-Geräte zu emulieren.

Da Entwickler-Workstations normalerweise auf Intel x86 basieren, musste auch der ARM-Befehlssatz emuliert werden. Dies führte zu einer schlechten Leistung der AVDs, hauptsächlich aufgrund des Übersetzungsaufwands, den der x86-Prozessor ausführte, um auch den ARM-Befehlssatz zu emulieren.

Unter Android 4.0.3 (API 15) stellte Intel ein eigenes x86-basiertes Android-System-Image zur Verfügung. Dies könnte dann verwendet werden, um AVDs zu erstellen, für die keine ARM-Übersetzung erforderlich war. In Kombination mit dem Intel Hardware Accelerated Execution Manager (HAXM) waren die x86-AVMs bis zu zehnmal schneller als die entsprechenden ARM-Emulatoren.

Die Unterstützung für Google-spezifische Android-APIs wie die Android Google Maps-API wird nicht mit den Standard-Android-Systemabbildern bereitgestellt. Sie müssen separat mit dem Android SDK Manager installiert werden. Um diese APIs mit einem x86-Systemabbild zu verwenden, müssen Sie auch die Google-APIs (x86-Systemabbild) für dieselbe API-Ebene installieren.

Oenpelli
quelle
4
Also, was wähle ich, wenn ich mit der rechten Maustaste auf mein Projekt klicke, zu Eigenschaften gehe und zu Android gehe?
Andrew
5
Klicken Sie auf beide: (1) Intel x86 Atom System Image und (2) Google APIs (x86 System Image) Weitere Informationen finden Sie hier: software.intel.com/en-us/blogs/2014/03/06/…
user64141
2
@oenpelli, Worauf bezieht sich "API" in "Google APIs"? Was passiert eigentlich, wenn wir "Google APIs" installieren? Lädt es nur die von Google verwendeten Android- Java- Bibliotheken herunter oder handelt es sich um anderen Systemcode?
Pacerier
1
@Pacerier Mit "Google APIs" können Sie ein Google-Konto im Emulator einrichten, das in reinen Android-Bildern nicht verfügbar ist. Google Maps API wurde ebenfalls hinzugefügt, falls Ihre App dies benötigt.
Artkoshelev
5
Was ist der Unterschied zwischen Google API-Bild und Google Play-Bild?
Banee Ishaque K