Qual é a diferença entre as imagens do sistema Intel x86 Atom e Atom_64?

97

Estou usando o Android SDK Manager para instalar a imagem do sistema para Android M Preview. No entanto, percebi que existem duas imagens separadas para a plataforma x86.

insira a descrição da imagem aqui

Quais são as diferenças entre os dois e qual devo selecionar para minha instalação do Ubuntu 15.04 de 64 bits? (Minha CPU inclui AMD-V e está habilitado na BIOS, caso isso faça alguma diferença.)

Nathan Osman
fonte
5
AFAIK, é que eles emulam diferentes arquiteturas de CPU, como ARM, ARM64, MIPS, etc.
CommonsWare
5
Não importa qual máquina você está usando como IDE. Isso tem a ver com o hardware que você está emulando. Portanto, as imagens Atom vs Atom_64 são se você deseja emular a execução de seu aplicativo em um dispositivo com uma CPU Atom ou uma CPU Atom de 64 bits.
hunoghost
2
Parece que uma é uma imagem de CPU de 32 bits e a outra é de 64 bits,
Phantômaxx
Veja as principais respostas para essa pergunta semelhante ; IMHO uma explicação mais clara do que as respostas abaixo.
Toolmaker Steve

Respostas:

68

De acordo com este artigo

Com o lançamento recente do Google de sua imagem de emulador Android 5.0 x86 de 64 bits, os desenvolvedores podem criar aplicativos de 64 bits para dispositivos baseados no processador Intel Atom.

Android de 32 bits vs 64 bits

Muitas plataformas de 64 bits hoje, incluindo Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD e IBM z / OS *, usam um modelo LP64. Como o Android é baseado no kernel Linux, as plataformas Android de 64 bits também usam o modelo LP64.

CPUs Intel de 64 bits têm um modo de compatibilidade de 32 bits. Embora os aplicativos de 32 bits sejam executados em processadores de 64 bits, a compilação com um compilador de otimização de 64 bits permite que eles aproveitem os benefícios arquitetônicos de um ambiente de 64 bits .

Como executar aplicativos de 64 bits em emuladores

Crie um novo dispositivo virtual Android (AVD) baseado na imagem do sistema do processador Intel Atom de 64 bits e abra o AVD Manager no SDK Manager ou ADT. Em seguida, clique em 'criar' e preencha os campos conforme mostrado na Figura. Agora, o emulador AVD de 64 bits está pronto para ser executado.

insira a descrição da imagem aqui

SO Android * de 64 bits

Por padrão, todos os aplicativos de 32 bits são executados sem falhas em processadores de 64 bits, mas podem ser executados mais lentamente do que os aplicativos ajustados para serem executados em processadores de 64 bits.

Android está pronto para processamento de 64 bits

Um dos principais benefícios da mudança de chips de 32 bits para 64 bits é amplamente teórico agora: suporte para exabytes de RAM, em vez de meros gigabytes. Mas a maneira como os chips de 64 bits manipulam a memória também pode levar a um melhor desempenho em algumas tarefas.

Resumo

O Android com tecnologias de 64 bits para plataformas baseadas no processador Intel Atom pode ajudar os desenvolvedores a otimizar seus aplicativos agora. Construir aplicativos Android para 64 bits é tão fácil quanto construir aplicativos Android tradicionais de 32 bits. Agora você pode usar o emulador oficial do Android de 64 bits para executar e depurar aplicativos de 64 bits.

Talvez este artigo possa ajudá-lo a entender a diferença entre as imagens deste sistema.

Atualizar

O Google agora incentiva o uso do emulador x86, como você pode ver nesta imagem

insira a descrição da imagem aqui

A diferença é que, ao usar imagens x86, agora ele usa virtualização rápida e acelerada por hardware sob as condições certas ( HAXM ) para que não pareça mais haver uma camada intermediária gorda.

Jorge Casariego
fonte
1
Você mencionou aplicativos que "compilam com um compilador otimizado de 64 bits". Então, como compilar meu aplicativo com um compilador de 64 bits e obter uma vantagem ao executar em um ambiente de 64 bits?
Artem M
3
@Jorge Casariego devemos usar intel x86 atom system imagedurante o desenvolvimento pelo AVD para melhor velocidade do emulador?
iraj jelodari
8
Mas se não nos importamos com a arquitetura alvo, a questão essencial é: o emulador "Atom_64" roda mais rápido em uma CPU Intel de 64 bits? Não tenho ideia de sua longa resposta. E sua menção a "x86" é simplesmente confusa, já que a questão é sobre a escolha entre duas imagens, ambas mencionando x86, que diferem apenas por mencionar Atom vs Atom_64.
Toolmaker Steve
@ToolmakerSteve Realmente tenho as mesmas dúvidas. Também estou vendo que agora cada pacote se tornou bem grande, então escolher os corretos é fundamental para preencher o caminho com dados desnecessários
Carmine Tambascia
15

Para sua informação: na documentação oficial do Android Studio , diz que "as imagens do sistema x86 são executadas mais rapidamente no emulador".

Eu não experimentei o 64 bits, então não posso comentar sobre isso. Talvez outra pessoa possa.

Algiver
fonte
1
Não responde à pergunta, que é sobre a escolha entre as duas imagens do sistema "x86" diferentes, uma das quais também menciona "atom_64", a outra menciona "atom".
Toolmaker Steve
9

Eu tentei ambos e x86_64 passa a ser um pouco mais lento do que x86. o que descobri depois de um pouco de pesquisa é que o x86 pode ser executado em um conjunto de instruções baseado em 32 bits e 64 bits, enquanto o x86_64 é executado apenas em 64 bits, o que precisa de algum tipo de decodificação ...

você também pode verificar aqui https://developer.android.com/ndk/guides/x86-64.html para mais informações.

X-Black ...
fonte
1
A primeira frase é uma informação potencialmente útil. O resto desta resposta é fundamentalmente confuso, porque "x86_64" se refere ao dispositivo que você está emulando , não ao PC em que está executando o emulador. Resumindo: não importa qual você escolha, a menos que esteja testando alguma diferença sutil no comportamento em uma arquitetura de destino específica.
Toolmaker Steve
@ToolmakerSteve, importa como o hardware é emulado, especificamente se a CPU do host pode ser usada diretamente por meio da tecnologia de virtualização de hardware.
andho
@andho você pode elaborar mais? Estou confuso; então qual é mais rápido / mais leve / mais fácil de emular no meu sistema? x86 ou x86_64
buncis
1
@buncis se sua CPU suporta VT (a maioria o faz) e você o habilitou em sua BIOS e os módulos necessários instalados no sistema operacional, tanto o x86 quanto o x86_64 devem ter velocidade semelhante, pois as instruções do emulador são executadas diretamente na CPU host. Se VT não estiver disponível, a emulação de software é usada. Nesse caso, o x86 é mais rápido / mais leve / mais fácil, pois é necessário um espaço de endereço menor para emular o x86 do que o x86_64 (por exemplo, registro de 64 bits versus registro de 32 bits).
andho
2

x86 significa sistema de 32 bits. Agora que li todas as respostas acima e irei direto ao ponto.

x86 Atom -> CPU Intel de 32 bits com simulação de Android de 32 bits

x86 Atom_64 -> CPU Intel de 32 bits com simulação de Android de 64 bits

Gagan Yadav
fonte