Разница между API Google (образ системы x86) и API Google (образ системы ARM) в Android 4.4.2

94

Я следил за этим ( http://developer.android.com/google/play-services/setup.html#Install ). Он попросил меня установить Google API для Android API 17 (или выше), но когда я открыл SDK Manager, это выглядело так:

SDK Manager

Итак, мой вопрос: что это за два API Google? И в чем разница между этими двумя?

Амна Али
источник
1
IIRC, они для разных процессоров.
Mike D
14
Образ ARM больше соответствует большинству устройств Android, но требует эмуляции процессора и поэтому работает очень медленно. X86 потенциально немного быстрее, возможно, с использованием механизмов поддержки виртуальных машин для выполнения кода частично нативным способом. Вы можете попробовать x86 для скорости и вернуться к ARM, если у вас есть проблемы с совместимостью. См. Developer.android.com/tools/devices/emulator.html
Крис Страттон,

Ответы:

128

Вначале единственные доступные образы системы Android работали с набором инструкций ARM. Системный образ используется для создания различных виртуальных устройств Android (AVD) и эмуляции различных устройств Android, которые обычно используются.

Поскольку рабочие станции разработчиков обычно основаны на Intel x86, необходимо было также эмулировать набор инструкций ARM. Это привело к снижению производительности AVD, в основном из-за того, что процессор x86 выполнял трансляцию, чтобы также имитировать набор команд ARM.

В Android 4.0.3 (API 15) Intel предоставила собственный образ системы Android на базе x86. Затем это можно было бы использовать для создания AVD, которым не нужно было выполнять перевод ARM. В сочетании с Intel Hardware Accelerated Execution Manager (HAXM) AVM x86 были до 10 раз быстрее, чем эквивалентные эмуляторы ARM.

Поддержка специфических для Google API Android, таких как Android Google Maps API, не предоставляется в стандартных образах системы Android. Их нужно устанавливать отдельно с помощью Android SDK Manager. Чтобы использовать эти API с образом системы x86, необходимо также установить API Google (образ системы x86) для того же уровня API.

Oenpelli
источник
4
Итак, что мне выбрать, когда я щелкаю свой проект правой кнопкой мыши, перехожу в свойства и перехожу на android?
Эндрю
5
Щелкните оба из них: (1) Intel x86 Atom System Image и (2) Google API (x86 System Image) Подробнее см. Здесь: software.intel.com/en-us/blogs/2014/03/06/…
user64141
2
@oenpelli, что значит "API" в "API Google"? Что на самом деле происходит, когда мы выбираем установку «API Google»? Он просто загружает библиотеки Android Java, используемые Google, или задействован другой системный код?
Pacerier
1
@Pacerier с помощью "Google APIs" вы можете настроить учетную запись Google внутри эмулятора, чего нет в чистом образе Android. Также добавлен API Google Maps, если он нужен вашему приложению.
арткошелев
5
В чем разница между изображением google api и изображением google play?
Banee Ishaque K