В чем разница между образами системы Intel x86 Atom и Atom_64?

97

Я использую Android SDK Manager для установки образа системы для Android M Preview. Однако я заметил, что для платформы x86 есть два отдельных образа.

введите описание изображения здесь

В чем разница между ними и какой из них выбрать для 64-разрядной установки Ubuntu 15.04? (Мой процессор включает AMD-V, и он включен в BIOS, если это имеет значение.)

Натан Осман
источник
5
AFAIK, просто они эмулируют разные архитектуры ЦП, такие как ARM, ARM64, MIPS и т. Д.
CommonsWare
5
Неважно, какую машину вы используете в качестве IDE. Это связано с тем, какое оборудование вы имитируете. Итак, образы Atom vs Atom_64 - это независимо от того, хотите ли вы имитировать запуск своего приложения на устройстве с процессором Atom или 64-разрядным процессором Atom.
hungryghost
2
Похоже, что один - это 32-битный образ процессора, а другой - 64-
битный
См. Основные ответы на этот похожий вопрос ; ИМХО более четкое объяснение, чем ответы ниже.
ToolmakerSteve

Ответы:

68

Согласно этой статье

С недавним выпуском Google образа 64-разрядного эмулятора Android 5.0 для архитектуры x86 разработчики могут создавать 64-разрядные приложения для устройств на базе процессоров Intel Atom.

Android 32-бит против 64-бит

Сегодня многие 64-битные платформы, включая Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD и IBM z / OS *, используют модель LP64. Поскольку Android основан на ядре Linux, 64-разрядные платформы Android также используют модель LP64.

64-битные процессоры Intel имеют 32-битный режим совместимости. В то время как 32-битные приложения будут работать на 64-битных процессорах, компиляция с помощью 64-битного оптимизирующего компилятора позволяет им воспользоваться архитектурными преимуществами 64-битной среды .

Как запускать 64-битные приложения на эмуляторах

Создайте новое виртуальное устройство Android (AVD) на основе 64-разрядного системного образа процессора Intel Atom и откройте AVD Manager в SDK Manager или ADT. Затем нажмите «создать» и заполните поля, как показано на рисунке. Теперь 64-битный эмулятор AVD готов к работе.

введите описание изображения здесь

64-битная ОС Android *

По умолчанию все 32-разрядные приложения работают без сбоев на 64-разрядных процессорах, но могут работать медленнее, чем приложения, настроенные для работы на 64-разрядных процессорах.

Android готов к 64-битной обработке

Одно из ключевых преимуществ перехода с 32-битных на 64-битные микросхемы в настоящее время в значительной степени теоретическое: поддержка эксабайт ОЗУ, а не просто гигабайт. Но способ обработки памяти 64-битными микросхемами также может привести к повышению производительности в некоторых задачах.

Резюме

Android с 64-разрядными технологиями для платформ на базе процессоров Intel Atom может помочь разработчикам оптимизировать свои приложения уже сейчас. Создание приложений Android для 64-разрядной версии так же просто, как создание традиционных 32-разрядных приложений Android. Теперь вы можете использовать официальный 64-разрядный эмулятор Android для запуска и отладки 64-разрядных приложений.

Возможно, эта статья поможет вам понять разницу между этими системными образами.

Обновить

Теперь Google рекомендует использовать эмулятор x86, как вы можете видеть на этом изображении.

введите описание изображения здесь

Разница в том, что при использовании образов x86 теперь используется быстрая виртуализация с аппаратным ускорением при правильных условиях ( HAXM ), поэтому больше не возникает ощущения, что существует толстый средний уровень.

Хорхе Касариего
источник
1
Вы упомянули приложения, которые «компилируются с помощью 64-битного оптимизирующего компилятора». Итак, как скомпилировать мое приложение с помощью 64-битного компилятора и получить преимущество при работе в 64-битной среде?
Artem M
3
@Jorge Casariego должны ли мы использовать intel x86 atom system imageво время разработки AVD для повышения скорости эмулятора?
iraj jelodari 05
10
Но если нас не волнует целевая архитектура, главный вопрос: работает ли эмулятор "Atom_64" быстрее на 64-битном процессоре Intel? Понятия не имею из вашего пространного ответа. И ваше упоминание «x86» просто сбивает с толку, поскольку вопрос заключается в выборе между двумя изображениями, оба из которых упоминают x86, которые отличаются только упоминанием Atom и Atom_64.
ToolmakerSteve
@ToolmakerSteve Я действительно сомневаюсь. Также я вижу, что теперь каждый пакет стал довольно большим, поэтому выбор правильных пакетов очень важен, чтобы заполнить путь ненужными данными
Carmine Tambascia
15

К вашему сведению: в официальной документации Android Studio сказано, что «образы системы x86 работают быстрее всего в эмуляторе».

Я не пробовал 64-битную версию, поэтому не могу это комментировать. Может еще кто-нибудь сможет.

Алгивер
источник
1
Не отвечает на вопрос о выборе между двумя разными образами системы «x86», в одном из которых также упоминается «atom_64», а в другом - «atom».
ToolmakerSteve
9

Я пробовал оба, и x86_64 оказался немного медленнее, чем x86. после небольшого исследования я обнаружил, что x86 может работать на 32-битном наборе инструкций и на 64-битном, тогда как x86_64 работает только на 64-битном, что требует некоторого большего декодирования ...

вы также можете проверить здесь https://developer.android.com/ndk/guides/x86-64.html для получения дополнительной информации ..

X-черный ...
источник
1
Первое предложение - потенциально полезная информация. Остальная часть этого ответа в корне сбивает с толку, потому что «x86_64» относится к устройству, которое вы эмулируете , а не к компьютеру, на котором вы запускаете свой эмулятор. Итог: не имеет значения, что вы выберете, если только вы не проверяете какие-то тонкие различия в поведении на конкретной целевой архитектуре.
ToolmakerSteve
@ToolmakerSteve имеет значение, как эмулируется оборудование, особенно если центральный процессор может использоваться напрямую с помощью технологии виртуализации оборудования.
andho 04
@andho, можешь подробнее рассказать? Я запутался; Итак, какой из них быстрее / легче / легче в моей системе подражать? x86 или x86_64
buncis 06
1
@buncis, если ваш ЦП поддерживает VT (большинство из них) и у вас он включен в вашем BIOS и необходимые модули установлены в ОС, то и x86, и x86_64 должны иметь одинаковую скорость, поскольку инструкции эмулятора запускаются непосредственно на центральном процессоре. Если VT недоступен, используется программная эмуляция. В этом случае x86 быстрее / легче / проще, так как меньшее адресное пространство необходимо для эмуляции x86, чем x86_64 (например, 64-битный реестр против 32-битного реестра).
andho 08
2

x86 означает 32-битную систему. Теперь я прочитал все вышеперечисленные ответы и сразу перейду к сути.

x86 Atom -> 32-битный процессор Intel с 32-битным моделированием Android

x86 Atom_64 -> 32-битный процессор Intel с 64-битным моделированием Android

Гаган Ядав
источник