Qual è la differenza tra le immagini di sistema Intel x86 Atom e Atom_64?


97

Sto utilizzando Android SDK Manager per installare l'immagine di sistema per Android M Preview. Tuttavia, ho notato che ci sono due immagini separate per la piattaforma x86.

inserisci qui la descrizione dell'immagine

Quali sono le differenze tra i due e quale dovrei selezionare per la mia installazione di Ubuntu 15.04 a 64 bit? (La mia CPU include AMD-V ed è abilitata nel BIOS, nel caso in cui ciò faccia la differenza.)


5
AFAIK, è solo che emulano diverse architetture di CPU, proprio come ARM, ARM64, MIPS, ecc.
CommonsWare

5
Non importa quale macchina stai usando come IDE. Questo ha a che fare con l'hardware che stai emulando. Quindi le immagini Atom vs Atom_64 indicano se vuoi emulare la tua app in esecuzione su un dispositivo con una CPU Atom o una CPU Atom a 64 bit.
Hungryghost

2
Sembra che una sia un'immagine della CPU a 32 bit e l'altra a 64 bit,
Phantômaxx

Visualizza le risposte principali a questa domanda simile ; IMHO una spiegazione più chiara rispetto alle risposte di seguito.
ToolmakerSteve

Risposte:


68

Secondo questo articolo

Con la recente versione di Google della sua immagine di emulatore Android 5.0 x86 a 64 bit, gli sviluppatori possono creare app a 64 bit per dispositivi basati su processore Intel Atom.

Android a 32 bit contro 64 bit

Molte piattaforme a 64 bit oggi, tra cui Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD e IBM z / OS *, utilizzano un modello LP64. Poiché Android è basato sul kernel Linux, anche le piattaforme Android a 64 bit utilizzano il modello LP64.

Le CPU Intel a 64 bit hanno una modalità di compatibilità a 32 bit. Mentre le applicazioni a 32 bit verranno eseguite su processori a 64 bit, la compilazione con un compilatore di ottimizzazione a 64 bit consente loro di sfruttare i vantaggi dell'architettura di un ambiente a 64 bit .

Come eseguire app a 64 bit su emulatori

Crea un nuovo dispositivo virtuale Android (AVD) basato sull'immagine di sistema del processore Intel Atom a 64 bit e apri AVD Manager in SDK Manager o ADT. Quindi fare clic su "crea" e compilare i campi come mostrato nella figura. Ora l'emulatore AVD a 64 bit è pronto per essere eseguito.

inserisci qui la descrizione dell'immagine

Sistema operativo Android * a 64 bit

Per impostazione predefinita, tutte le applicazioni a 32 bit vengono eseguite senza problemi sui processori a 64 bit, ma potrebbero essere eseguite più lentamente delle applicazioni ottimizzate per l'esecuzione su processori a 64 bit.

Android è pronto per l'elaborazione a 64 bit

Uno dei principali vantaggi del passaggio da chip a 32 bit a 64 bit è in gran parte teorico in questo momento: supporto per exabyte di RAM, piuttosto che semplici gigabyte. Ma il modo in cui i chip a 64 bit gestiscono la memoria può anche portare a prestazioni migliori in alcune attività.

Sommario

Android con tecnologie a 64 bit per piattaforme basate su processore Intel Atom può aiutare gli sviluppatori a ottimizzare subito le loro applicazioni . La creazione di applicazioni Android per 64 bit è facile quanto la creazione di applicazioni Android tradizionali a 32 bit. Ora puoi utilizzare l'emulatore ufficiale di Android a 64 bit per eseguire ed eseguire il debug delle app a 64 bit.

Forse questi articoli possono aiutarti a capire la differenza tra queste immagini di sistema.

Aggiornare

Google ora incoraggia a utilizzare l'emulatore x86 come puoi vedere in questa immagine

inserisci qui la descrizione dell'immagine

La differenza è che quando si utilizzano immagini x86, ora utilizza una virtualizzazione rapida con accelerazione hardware nelle giuste condizioni ( HAXM ), quindi non sembra più che ci sia uno strato intermedio grasso.


1
Hai citato applicazioni che "compilano con un compilatore ottimizzato a 64 bit". Quindi, come compilare la mia applicazione con un compilatore a 64 bit e ottenere un vantaggio durante l'esecuzione in un ambiente a 64 bit?
Artem M

3
@Jorge Casariego dovremmo usare intel x86 atom system imagedurante lo sviluppo di AVD per una migliore velocità dell'emulatore?
iraj jelodari il

8
Ma se non ci interessa l'architettura di destinazione, la domanda essenziale è: l'emulatore "Atom_64" funziona più velocemente su una CPU Intel a 64 bit? Non ho idea dalla tua lunga risposta. E la tua menzione di "x86" è semplicemente confusa, dal momento che la domanda riguarda la scelta tra due immagini, entrambe menzionano x86, che differiscono solo menzionando Atom vs Atom_64.
ToolmakerSteve

@ToolmakerSteve Ho davvero gli stessi dubbi. Inoltre vedo che ora ogni pacco è diventato abbastanza grande quindi scegliere quelli giusti è fondamentale per poter riempire il percorso con dati non necessari
Carmine Tambascia

15

FYI: Nella documentazione ufficiale di Android Studio si dice che "le immagini del sistema x86 vengono eseguite più velocemente nell'emulatore".

Non ho provato il 64 bit, quindi non posso davvero commentarlo. Forse qualcun altro può.


1
Non risponde alla domanda, che riguarda la scelta tra le due diverse immagini di sistema "x86", una delle quali menziona anche "atom_64", l'altra menziona "atom".
ToolmakerSteve

9

Ho provato entrambi e x86_64 sembra essere un po 'più lento di x86. quello che ho scoperto dopo una piccola ricerca è che x86 può essere eseguito su un set di istruzioni basato su 32 bit e basato su 64 bit mentre x86_64 funziona solo su 64 bit che richiede un po 'di decodifica in più ...

puoi anche controllare qui https://developer.android.com/ndk/guides/x86-64.html per maggiori informazioni ..


1
La prima frase è un'informazione potenzialmente utile. Il resto di questa risposta è fondamentalmente confuso, perché "x86_64" si riferisce al dispositivo che stai emulando , non al PC su cui stai eseguendo l'emulatore. In conclusione: non importa quale scegli, a meno che tu non stia testando qualche sottile differenza nel comportamento su una specifica architettura di destinazione.
ToolmakerSteve

@ToolmakerSteve è importante come l'hardware viene emulato, in particolare se la CPU host può essere utilizzata direttamente attraverso la tecnologia di virtualizzazione dell'hardware.
andho

@andho puoi approfondire di più? Non ho capito bene; quindi quale è più veloce / più leggero / più facile da emulare sul mio sistema? x86 o x86_64
buncis

1
@ buncis se la tua CPU supporta VT (la maggior parte lo fa) e lo hai abilitato nel tuo BIOS e i moduli necessari installati nel sistema operativo, allora sia x86 che x86_64 dovrebbero avere velocità simile a come le istruzioni dell'emulatore vengono eseguite direttamente sulla CPU host. Se VT non è disponibile, viene utilizzata l'emulazione software. In questo caso x86 è più veloce / più leggero / più facile in quanto è necessario uno spazio di indirizzi più piccolo per emulare x86 rispetto a x86_64 (es. Registro a 64 bit rispetto a registro a 32 bit).
andho

2

x86 significa sistema a 32 bit. Ora ho letto tutte le risposte di cui sopra e verrò direttamente al punto.

x86 Atom -> CPU Intel a 32 bit con simulazione Android a 32 bit

x86 Atom_64 -> CPU Intel a 32 bit con simulazione Android a 64 bit

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.