¿Cuál es la diferencia entre las imágenes del sistema Intel x86 Atom y Atom_64?

97

Estoy usando Android SDK Manager para instalar la imagen del sistema para Android M Preview. Sin embargo, noté que hay dos imágenes separadas para la plataforma x86.

ingrese la descripción de la imagen aquí

¿Cuáles son las diferencias entre los dos y cuál debería seleccionar para mi instalación de Ubuntu 15.04 de 64 bits? (Mi CPU incluye AMD-V y está habilitada en el BIOS, en caso de que eso haga alguna diferencia).

Nathan Osman
fuente
5
Que yo sepa, es sólo que emulan diferentes arquitecturas de CPU, como ARM, ARM64, MIPS, etc.
CommonsWare
5
No importa qué máquina esté usando como su IDE. Esto tiene que ver con el hardware que estás emulando. Entonces, las imágenes de Atom vs Atom_64 son si desea emular la ejecución de su aplicación en un dispositivo con una CPU Atom o una CPU Atom de 64 bits.
hungryghost
2
Parece que una es una imagen de CPU de 32 bits y la otra es de 64 bits,
Phantômaxx
Vea las respuestas principales a esta pregunta similar ; En mi humilde opinión, una explicación más clara que las respuestas a continuación.
ToolmakerSteve

Respuestas:

68

De acuerdo con este artículo

Con el reciente lanzamiento de Google de su imagen de emulador de Android 5.0 x86 de 64 bits, los desarrolladores pueden crear aplicaciones de 64 bits para dispositivos basados ​​en el procesador Intel Atom.

Android de 32 bits frente a 64 bits

Hoy en día, muchas plataformas de 64 bits, incluidas Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD e IBM z / OS *, utilizan un modelo LP64. Dado que Android se basa en el kernel de Linux, las plataformas Android de 64 bits también utilizan el modelo LP64.

Las CPU Intel de 64 bits tienen un modo de compatibilidad de 32 bits. Si bien las aplicaciones de 32 bits se ejecutarán en procesadores de 64 bits, compilar con un compilador de optimización de 64 bits les permite aprovechar los beneficios arquitectónicos de un entorno de 64 bits .

Cómo ejecutar aplicaciones de 64 bits en emuladores

Cree un nuevo dispositivo virtual Android (AVD) basado en la imagen del sistema del procesador Intel Atom de 64 bits y abra AVD Manager en SDK Manager o ADT. Luego haga clic en 'crear' y complete los campos como se muestra en la Figura. Ahora el emulador AVD de 64 bits está listo para ejecutarse.

ingrese la descripción de la imagen aquí

Sistema operativo Android * de 64 bits

De forma predeterminada, todas las aplicaciones de 32 bits se ejecutan sin problemas en procesadores de 64 bits, pero es posible que se ejecuten más lentamente que las aplicaciones ajustadas para ejecutarse en procesadores de 64 bits.

Android está listo para el procesamiento de 64 bits

Uno de los beneficios clave del cambio de chips de 32 bits a 64 bits es en gran parte teórico en este momento: soporte para exabytes de RAM, en lugar de meros gigabytes. Pero la forma en que los chips de 64 bits manejan la memoria también puede mejorar el rendimiento en algunas tareas.

Resumen

Android con tecnologías de 64 bits para plataformas basadas en procesadores Intel Atom puede ayudar a los desarrolladores a optimizar sus aplicaciones ahora. Crear aplicaciones de Android para 64 bits es tan fácil como crear aplicaciones tradicionales de Android de 32 bits. Ahora puede usar el emulador oficial de Android de 64 bits para ejecutar y depurar aplicaciones de 64 bits.

Quizás estos artículos puedan ayudarlo a comprender la diferencia entre las imágenes de este sistema.

Actualizar

Google ahora anima a usar el emulador x86 como puede ver en esta imagen

ingrese la descripción de la imagen aquí

La diferencia es que cuando se usan imágenes x86, ahora se usa una virtualización rápida acelerada por hardware en las condiciones adecuadas ( HAXM ), por lo que ya no se siente como si hubiera una capa intermedia gruesa.

Jorge Casariego
fuente
1
Ha mencionado aplicaciones que "compilan con un compilador optimizador de 64 bits". Entonces, ¿cómo compilar mi aplicación con un compilador de 64 bits y obtener una ventaja cuando se ejecuta en un entorno de 64 bits?
Artem M
3
@Jorge Casariego ¿deberíamos usar intel x86 atom system imagedurante el desarrollo por AVD para una mejor velocidad del emulador?
iraj jelodari
8
Pero si no nos importa la arquitectura de destino, la pregunta esencial es: ¿el emulador "Atom_64" se ejecuta más rápido en una CPU Intel de 64 bits? No tengo idea de tu extensa respuesta. Y su mención de "x86" es simplemente confusa, ya que la pregunta se trata de una elección entre dos imágenes, las cuales mencionan x86, que solo se diferencian al mencionar Atom vs Atom_64.
ToolmakerSteve
@ToolmakerSteve De hecho, tengo las mismas dudas. También veo que ahora cada paquete se ha vuelto bastante grande, por lo que elegir los correctos es fundamental para completar la ruta con datos innecesarios
Carmine Tambascia
15

FYI: En la documentación oficial de Android Studio dice que "las imágenes del sistema x86 se ejecutan más rápido en el emulador".

No he probado el de 64 bits, así que no puedo comentar sobre eso. Quizás alguien más pueda.

Algiver
fuente
1
No responde a la pregunta, que trata de elegir entre las dos imágenes del sistema "x86" diferentes, una de las cuales también menciona "atom_64" y la otra menciona "atom".
ToolmakerSteve
9

He probado ambos y x86_64 resulta ser un poco más lento que x86. Lo que descubrí después de investigar un poco es que x86 puede ejecutarse en un conjunto de instrucciones basado en 32 bits y en 64 bits, mientras que x86_64 se ejecuta solo en 64 bits, lo que necesita algo más de decodificación ...

También puede consultar aquí https://developer.android.com/ndk/guides/x86-64.html para obtener más información.

X-Negro ...
fuente
1
La primera oración es información potencialmente útil. El resto de esta respuesta es fundamentalmente confuso, porque "x86_64" se refiere al dispositivo que está emulando , no a la PC en la que está ejecutando su emulador. En pocas palabras: no importa cuál elija, a menos que esté probando alguna diferencia sutil en el comportamiento en una arquitectura de destino específica.
ToolmakerSteve
@ToolmakerSteve importa cómo se emula el hardware, específicamente si la CPU del host se puede utilizar directamente a través de la tecnología de virtualización de hardware.
andho
@and ¿puedes dar más detalles? Estoy confundido; entonces, ¿cuál es más rápido / ligero / más fácil de emular en mi sistema? x86 o x86_64
buncis
1
@buncis si su CPU es compatible con VT (la mayoría lo hace) y lo tiene habilitado en su BIOS y los módulos necesarios instalados en el sistema operativo, entonces tanto x86 como x86_64 deberían tener una velocidad similar ya que las instrucciones del emulador se ejecutan directamente en la CPU del host. Si VT no está disponible, se utiliza la emulación de software. En este caso, x86 es más rápido / liviano / más fácil ya que se necesita un espacio de direcciones más pequeño para emular x86 que x86_64 (por ejemplo, registro de 64 bits frente a registro de 32 bits).
andho
2

x86 significa sistema de 32 bits. Ahora he leído todas las respuestas anteriores y voy directamente al grano.

x86 Atom -> CPU Intel de 32 bits con simulación de Android de 32 bits

x86 Atom_64 -> CPU Intel de 32 bits con simulación de Android de 64 bits

Gagan Yadav
fuente