У чому різниця між системними образами Intel x86 Atom та Atom_64?


97

Я використовую менеджер SDK для Android, щоб встановити системний образ для попереднього перегляду Android M. Однак я помітив, що для платформи x86 є два окремі зображення.

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

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


5
AFAIK, просто вони імітують різні архітектури процесорів, як ARM, ARM64, MIPS тощо
CommonsWare

5
Не має значення, яку машину ви використовуєте як IDE. Це пов’язано з тим, яке обладнання ви імітуєте. Отже, зображення Atom проти Atom_64 - це те, чи хочете ви імітувати запуск програми на пристрої з процесором Atom або 64-розрядним процесором Atom.
hungryghost

2
Схоже, одне - це 32-
бітне

Перегляньте найкращі відповіді на це подібне запитання ; ІМХО - більш чітке пояснення, ніж відповіді нижче.
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-розрядному середовищі?
Артем М

3
@Jorge Casariego чи слід використовувати intel x86 atom system imageпід час розробки AVD для кращої швидкості емулятора?
iraj jelodari

8
Але якщо нас не хвилює цільова архітектура, головне питання полягає в тому: чи працює емулятор "Atom_64" швидше на 64-розрядному процесорі Intel? Я не маю уявлення з вашої довгої відповіді. І ваша згадка про "x86" просто бентежить, оскільки питання полягає у виборі між двома зображеннями, обидва з яких згадують x86, які відрізняються лише згадуванням Atom проти Atom_64.
ToolmakerSteve

@ToolmakerSteve Я справді маю ті самі сумніви. Також я бачу, що зараз кожен пакет став досить великим, тому вибрати правильний є критичним, щоб заповнити непотрібними даними шлях
Carmine Tambascia

15

FYI: В офіційній документації Android Studio сказано, що "системні зображення x86 працюють найшвидше в емуляторі".

Я не пробував 64-бітну версію, тому не можу насправді це коментувати. Можливо, хтось інший може.


1
Не відповідає на запитання, яке стосується вибору між двома різними зображеннями системи "x86", в одному з яких також згадується "atom_64", в іншому - "атом".
ToolmakerSteve

9

я спробував обидва, і x86_64 виявляється трохи повільнішим за x86. те, що я з’ясував після невеликого дослідження, це те, що x86 може працювати на 32-розрядному наборі команд і на 64-розрядному, тоді як x86_64 працює лише на 64-розрядному, що потребує додаткового декодування ...

Ви також можете перевірити тут https://developer.android.com/ndk/guides/x86-64.html для отримання додаткової інформації ..


1
Перше речення - це потенційно корисна інформація. Решта цієї відповіді принципово заплутана, оскільки "x86_64" відноситься до пристрою, який ви емулюєте , а не до ПК, на якому запущений ваш емулятор. Підсумок: не має значення, який ви виберете, якщо ви не тестуєте на незначну різницю в поведінці на конкретній цільовій архітектурі.
ToolmakerSteve

@ToolmakerSteve має значення, як емулюється апаратне забезпечення, зокрема, якщо центральний процесор хоста може використовуватися безпосередньо за допомогою технології апаратної віртуалізації.
andho

@andho, ти можеш детальніше розказати? Я збентежений; так який із них швидший / легший / легший для емуляції в моїй системі? x86 або x86_64
buncis

1
@buncis, якщо у вас центральний процесор підтримує VT (більшість з них), і ви увімкнули його у вашому BIOS та необхідні модулі, встановлені в ОС, тоді як x86, так і x86_64 повинні мати однакову швидкість, оскільки інструкції емулятора виконуються безпосередньо на центральному центральному процесорі. Якщо VT недоступний, використовується емуляція програмного забезпечення. У цьому випадку x86 швидший / легший / простіший, оскільки для емуляції x86 потрібно менший адресний простір, ніж x86_64 (наприклад, 64-бітний реєстр проти 32-бітний реєстр).
andho

2

x86 означає 32-бітну систему. Тепер я прочитав усі вищезазначені відповіді і прямо перейду до суті.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.