Quelle est la différence entre les images système Intel x86 Atom et Atom_64?

97

J'utilise Android SDK Manager pour installer l'image système de l'aperçu Android M. Cependant, j'ai remarqué qu'il existe deux images distinctes pour la plate-forme x86.

entrez la description de l'image ici

Quelles sont les différences entre les deux et laquelle dois-je sélectionner pour mon installation Ubuntu 15.04 64 bits? (Mon processeur inclut AMD-V et il est activé dans le BIOS, au cas où cela ferait une différence.)

Nathan Osman
la source
5
AFAIK, c'est juste qu'ils émulent différentes architectures de CPU, tout comme ARM, ARM64, MIPS, etc.
CommonsWare
5
Peu importe la machine que vous utilisez comme IDE. Cela a à voir avec le matériel que vous émulez. Ainsi, les images Atom vs Atom_64 indiquent si vous souhaitez émuler l'exécution de votre application sur un appareil avec un processeur Atom ou un processeur Atom 64 bits.
hungryghost
2
On dirait que l'un est une image de processeur 32 bits, et l'autre est une image 64 bits,
Phantômaxx
Voir les meilleures réponses à cette question similaire ; IMHO une explication plus claire que les réponses ci-dessous.
ToolmakerSteve

Réponses:

68

Selon cet article

Avec la sortie récente de Google de son image d'émulateur Android 5.0 x86 64 bits, les développeurs peuvent créer des applications 64 bits pour les appareils à processeur Intel Atom.

Android 32 bits contre 64 bits

Aujourd'hui, de nombreuses plates-formes 64 bits, notamment Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD et IBM z / OS *, utilisent un modèle LP64. Étant donné qu'Android est basé sur le noyau Linux, les plates-formes Android 64 bits utilisent également le modèle LP64.

Les processeurs Intel 64 bits ont un mode de compatibilité 32 bits. Alors que les applications 32 bits s'exécuteront sur des processeurs 64 bits, la compilation avec un compilateur d'optimisation 64 bits leur permet de tirer parti des avantages architecturaux d'un environnement 64 bits .

Comment exécuter des applications 64 bits sur des émulateurs

Créez un nouvel appareil virtuel Android (AVD) basé sur l'image système 64 bits du processeur Intel Atom et ouvrez AVD Manager dans SDK Manager ou ADT. Cliquez ensuite sur «créer» et remplissez les champs comme indiqué dans la figure. L'émulateur AVD 64 bits est maintenant prêt à fonctionner.

entrez la description de l'image ici

Système d'exploitation Android * 64 bits

Par défaut, toutes les applications 32 bits s'exécutent sans problème sur les processeurs 64 bits, mais peuvent s'exécuter plus lentement que les applications réglées pour s'exécuter sur des processeurs 64 bits.

Android est prêt pour le traitement 64 bits

L'un des principaux avantages du passage des puces 32 bits à 64 bits est en grande partie théorique à l'heure actuelle: la prise en charge d'exaoctets de RAM, plutôt que de simples gigaoctets. Mais la façon dont les puces 64 bits gèrent la mémoire peut également améliorer les performances de certaines tâches.

Résumé

Android avec les technologies 64 bits pour les plates-formes à processeur Intel Atom peut aider les développeurs à optimiser leurs applications dès maintenant. La création d'applications Android pour 64 bits est tout aussi simple que la création d'applications Android 32 bits traditionnelles. Vous pouvez désormais utiliser l'émulateur officiel Android 64 bits pour exécuter et déboguer des applications 64 bits.

Peut-être que ces articles peuvent vous aider à comprendre la différence entre ces images système.

Mettre à jour

Google encourage maintenant à utiliser l'émulateur x86 comme vous pouvez le voir dans cette image

entrez la description de l'image ici

La différence est que lors de l'utilisation d'images x86, il utilise désormais une virtualisation rapide et accélérée par le matériel dans les bonnes conditions ( HAXM ), de sorte qu'il ne semble plus y avoir de grosse couche intermédiaire.

Jorge Casariego
la source
1
Vous avez mentionné des applications qui "compilent avec un compilateur d'optimisation 64 bits". Alors, comment compiler mon application avec un compilateur 64 bits et obtenir un avantage lors de l'exécution dans un environnement 64 bits?
Artem M
3
@Jorge Casariego doit-on utiliser intel x86 atom system imagelors du développement par AVD pour une meilleure vitesse d'émulateur?
iraj jelodari
8
Mais si nous ne nous soucions pas de l'architecture cible, la question essentielle est: l'émulateur "Atom_64" fonctionne-t-il plus rapidement sur un processeur Intel 64 bits? Je n'ai aucune idée de votre longue réponse. Et votre mention de «x86» est tout simplement déroutante, puisque la question porte sur un choix entre deux images, qui mentionnent toutes deux x86, qui ne diffèrent qu'en mentionnant Atom vs Atom_64.
ToolmakerSteve
@ToolmakerSteve J'ai en effet les mêmes doutes. De plus, je vois que maintenant chaque paquet est devenu assez volumineux, il est donc essentiel de choisir les bons afin de remplir le chemin avec des données inutiles
Carmine Tambascia
15

FYI: Dans la documentation officielle d'Android Studio , il est dit que «les images système x86 sont les plus rapides dans l'émulateur».

Je n'ai pas essayé le 64 bits, donc je ne peux pas vraiment commenter cela. Peut-être que quelqu'un d'autre peut.

Algiver
la source
1
Ne répond pas à la question qui consiste à choisir entre les deux images système "x86" différentes, dont l'une mentionne également "atom_64", l'autre mentionne "atome".
ToolmakerSteve
9

J'ai essayé les deux et x86_64 se trouve être un peu plus lent que x86. ce que j'ai découvert après quelques recherches, c'est que x86 peut fonctionner sur un jeu d'instructions basé sur 32 bits et basé sur 64 bits, tandis que x86_64 ne fonctionne que sur 64 bits, ce qui nécessite plus de décodage ...

vous pouvez également consulter ici https://developer.android.com/ndk/guides/x86-64.html pour plus d'informations.

X-Noir ...
la source
1
La première phrase est une information potentiellement utile. Le reste de cette réponse est fondamentalement confus, car "x86_64" fait référence au périphérique que vous émulez , et non au PC sur lequel vous exécutez votre émulateur. Conclusion: peu importe ce que vous choisissez, à moins que vous ne testiez une subtile différence de comportement sur une architecture cible spécifique.
ToolmakerSteve
@ToolmakerSteve, la manière dont le matériel est émulé est importante, en particulier si le processeur hôte peut être utilisé directement via la technologie de virtualisation matérielle.
andho le
@andho pouvez-vous en dire plus? Je suis confus; Alors, lequel est le plus rapide / le plus léger / le plus facile à émuler sur mon système? x86 ou x86_64
buncis
1
@buncis si votre processeur prend en charge VT (la plupart le font) et que vous l'avez activé dans votre BIOS et les modules nécessaires installés dans le système d'exploitation, alors x86 et x86_64 devraient avoir une vitesse similaire à celle des instructions de l'émulateur exécutées directement sur le processeur hôte. Si VT n'est pas disponible, l'émulation logicielle est utilisée. Dans ce cas, x86 est plus rapide / plus léger / plus facile car un espace d'adressage plus petit est nécessaire pour émuler x86 que x86_64 (par exemple, registre 64 bits contre registre 32 bits).
andho
2

x86 signifie système 32 bits. Maintenant, j'ai lu toutes les réponses ci-dessus et je vais directement venir au point.

x86 Atom -> CPU Intel 32 bits avec simulation Android 32 bits

x86 Atom_64 -> CPU Intel 32 bits avec simulation Android 64 bits

Gagan Yadav
la source