Perché l'emulatore Android è così lento? Come possiamo accelerare l'emulatore Android? [chiuso]


3399

Ho un   processore Celeron da 2,67 GHz e 1,21   GB di RAM su una macchina Windows XP Professional x86 .

La mia comprensione è che l' emulatore Android dovrebbe avviarsi abbastanza rapidamente su una macchina del genere, ma per me non è così. Ho seguito tutte le istruzioni per impostare IDE, SDK, JDK e simili e ho avuto un certo successo nell'avvio rapido dell'emulatore, ma è molto raro. Come posso, se possibile, risolvere questo problema?

Anche se avvia e carica la schermata principale, è molto lenta. Ho provato l' IDE Eclipse nella versione 3.5 (Galileo) e 3.4 (Ganimede).


79
L'alternativa è Genymotion. genymotion.com . Questo è molto più veloce. Installazione semplice.
Sukitha Udugamasooriya,

9
Ho trovato che l'emulatore funziona in modo molto più veloce (e intendo sicuramente waaaay) su Linux. Ho un laptop con dualboot, su Windows l'emulatore impiega circa 15 minuti per avviarsi, con Linux circa 30 secondi. Non conosco altri sistemi operativi come OSX, ma mi sembra una cosa di Windows.
Daniël van den Berg,

11
È stato riferito che Android Studio 2.0 non ha solo un emulatore molto più veloce, ma impiega la "corsa istantanea", che consente di distribuire in pochi secondi alla destinazione alcune modifiche alla sorgente, come l'XML, senza che l'APK debba essere ricostruito e reimpiegato. Vedi android-developers.blogspot.co.uk/2015/11/…
Carl Whalley

12
penso che il tuo ram sia molto piccolo perché un emulatore funzioni più velocemente.
Zia U Rahman,

5
Un modo per evitare commenti confusi potrebbe essere quello di avere una piccola finestra di avviso che dice che la domanda è più vecchia di, diciamo, 2 anni. La tecnologia sta cambiando rapidamente e si vorrebbe che l'età influisse sul rango, anche se la domanda non dovrebbe essere chiusa / archiviata come su siti minori.
Henrik Erlandsson,

Risposte:


1436

Aggiornare

Ora puoi abilitare l'opzione Quick Boot per Android Emulator. Ciò salverà lo stato dell'emulatore e avvierà rapidamente l'emulatore all'avvio successivo.

Fai clic sul pulsante Modifica emulatore, quindi fai clic su Show Advanced Setting. Quindi abilitare Quick Bootcome sotto screenshot.

Avvio veloce

Android Development Tools (ADT) 9.0.0 (o successivo) ha una funzione che ti consente di salvare lo stato dell'AVD (emulatore) e puoi avviare immediatamente l'emulatore. È necessario abilitare questa funzione durante la creazione di un nuovo AVD oppure è possibile crearlo successivamente modificando l'AVD.

Inoltre ho aumentato il Device RAM Sizea 1024cui risulta un emulatore molto veloce.

Fare riferimento alle schermate di seguito fornite per ulteriori informazioni.

Creazione di un nuovo AVD con la funzione di salvataggio dell'istantanea.

Emulatore Android con funzione di salvataggio dell'istantanea.

Avvio dell'emulatore dall'istantanea.

Avvio dell'emulatore dall'istantanea.

E per velocizzare il tuo emulatore puoi fare riferimento a Velocizza il tuo emulatore Android! :


23
Quando esegui l'aggiornamento e il dispositivo esistente, cancella i dati utente al primo avvio dall'istantanea
Mark Bakker,

16
Ho impostato l'AVD come questo, ma sembra ancora lento quando riavvio l'AVD, perché?
Zhongshu,

9
@Peter Ehrlich: basta andare su Finestra> SDK Android e AVD Manager e selezionare AVD che si desidera avviare dall'elenco, quindi fare clic sul pulsante Start nel riquadro a destra. Si aprirà lo stesso che desideri.
Vikas Patidar,

3
Ho ottenuto "Impossibile allocare memoria" durante l'impostazione 1024. Inoltre, nella parte inferiore della finestra di configurazione veniva visualizzato un avviso che diceva: "Su Windows, l'emulazione di RAM maggiore di 768 M potrebbe non riuscire a dipendere ..." Ho provato a impostarla su 770 e poi ha funzionato. Impossibile impostarlo su 800.
timore

5
@ Msmit1993: è possibile utilizzare l'emulatore Intel x86 con lo strumento HAX. Credetemi, sarete sorpresi dall'emulatore più velocemente del vostro dispositivo reale.
Vikas Patidar,

1135

NOTA IMPORTANTE : fare prima riferimento all'elenco Intel su VT per assicurarsi che la CPU supporti Intel VT.

HAXM accelera l'emulatore Android lento

HAXM sta per "Intel Hardware Accelerated Execution Manager"

Attualmente supporta solo Intel® VT (Intel Virtualization Technology).

L'emulatore Android si basa su QEMU . L'interfaccia tra QEMU e il driver HAXM sul sistema host è progettata per essere indipendente dal fornitore.

HAXM

Passaggi per la configurazione dell'ambiente di sviluppo Android per HAXM

  1. Aggiorna Eclipse: assicurati che l'installazione di Eclipse e il plug-in ADT siano completamente aggiornati.

  2. Aggiorna gli strumenti Android: dopo ogni aggiornamento del plug-in Eclipse, è importante aggiornare gli strumenti Android SDK. Per fare ciò, avvia Android SDK Manager e aggiorna tutti i componenti Android SDK. Per sfruttare HAXM, devi essere almeno nella versione 17.

Inserisci qui la descrizione dell'immagine

  • Scarica le immagini di sistema Atom x86 e il driver Intel Hardware Accelerated Execution Manager . Segui l'immagine qui sotto:

Inserisci qui la descrizione dell'immagine

  • Installare il driver HAXM eseguendo "IntelHaxm.exe". Si troverà in una delle seguenti posizioni:

    • C:\Program Files\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    • C:\Users\<user>\adt-bundle-windows-x86_64\sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    Se il programma di installazione non riesce con il messaggio che Intel VT deve essere acceso, è necessario abilitarlo nel BIOS . Vedere la descrizione per come eseguire questa operazione in Abilitazione di Intel VT (tecnologia di virtualizzazione) .

Installa .exe o .dmg

  • Crea un nuovo AVD x86: segui l'immagine qui sotto:

Crea AVD

  • O come per il nuovo SDK, Inserisci qui la descrizione dell'immagine

19
Buona scrittura. Se stai cercando documenti di Google (include alcune differenze per Mac), puoi trovarli qui: developer.android.com/tools/devices/emulator.html#accel-vm
Prezzo Todd

103
Non funziona su Linux.
Kshitiz Sharma,

14
Ho provato questa soluzione. Ha funzionato. Tuttavia, ho installato utilizzando MonoDroid e non sono riuscito a trovare IntelHaxm.exe per un minuto. Era qui: C: \ Users \ jbarneck \ AppData \ Local \ Android \ android-sdk \ extras \ intel
Rhyous

11
Wow, non posso ringraziarti abbastanza! Non riesco a credere che stavo vivendo con l'emulatore lento per tutto questo tempo. Ho pensato che fosse normale. Mi mancano davvero i tempi di avvio rapido, non c'è un modo per abilitare l'istantanea insieme all'accelerazione GPU?
Reda,

3
Funziona benissimo. Grazie per aver condiviso questo! Quando "Usa GPU host" è abilitato, l'emulatore lampeggia pesantemente, ma anche senza la GPU host abilitata è molto veloce ora.
user1619275,

595

Prova Android x86 . È molto più veloce dell'emulatore Google Android. Segui questi passi:

  1. Installa VirtualBox .
  2. Scarica il file ISO di cui hai bisogno.
  3. Crea una macchina virtuale come Linux 2.6 / Altro Linux, 512 MB di RAM, HD 2 GB. Rete: PCnet-Fast III, collegata a NAT . È inoltre possibile utilizzare un adattatore con bridge, ma è necessario un server DHCP nel proprio ambiente.
  4. Installa Android x86 sull'emulatore, eseguilo.
  5. Premere Alt+ F1, digitare netcfg, ricordare l'indirizzo IP, premere Alt+ F7.
  6. Esegui cmd sul tuo sistema Windows XP, modifica la directory nella directory degli strumenti Android, digita adb connect <virtual_machine_IP>.
  7. Avvia Eclipse, apri il plug-in ADT, trova il dispositivo e divertiti!

6
così mi sono collegato. Come posso rendere lo schermo verticale? Inoltre non vedo i pulsanti hardware del telefono da nessuna parte.
Alex,


4
Solo per ricordare a voi ragazzi che è necessario abilitare l'integrazione del mouse nel menu del dispositivo se si desidera utilizzare il mouse nell'emulatore!
Kakopappa,

13
Nota che se stai utilizzando qualcosa di specifico per ARM (come Mono per Android, ad esempio), non funzionerà su Android x86.
Matthew Groves,

11
Per me, netcfg sta mostrando lo 127.0.0.1 255.0.0.0 0x00000049 È qui 127.0.0.1 IP che dovrei menzionare nel comando adb? mostra "impossibile connettersi a 127.0.0.1:5555" Per favore aiutatemi.
Riz,

318

AGGIORNAMENTO: L'ultima versione di Android Studio (2.x) ha apportato importanti miglioramenti all'emulatore in bundle. È reattivo e ha un sacco di funzioni.

Per quelli ancora interessati: prova a usare Genymotion . È possibile scaricare una versione per Windows / Mac OS X / Linux dopo la registrazione. È inoltre disponibile un plug-in per Eclipse:

L'installazione del plug-in può essere eseguita avviando Eclipse e andando nel menu "Aiuto / Installa nuovo software", quindi basta aggiungere un nuovo sito di aggiornamento con il seguente URL: http://plugins.genymotion.com/eclipse . Seguire i passaggi indicati da Eclipse.

Questo emulatore è veloce e reattivo.

GenyMotion ti consente di controllare vari sensori del tuo dispositivo tra cui il livello della batteria, la potenza del segnale e il GPS. L'ultima versione ora contiene anche strumenti per la fotocamera.


52
Genymotion è di gran lunga il modo migliore per sviluppare / testare la tua app. Non è solo più veloce e migliore di un emulatore tradizionale. È anche più veloce di un dispositivo reale. Lo uso per il 99,99% delle mie distribuzioni in quanto significa che posso vedere i risultati in una frazione del tempo. Significa anche che posso usare OpenGL ES e altre cose che non sono disponibili su un normale emulatore.
Eurig Jones,

2
Le versioni più recenti di Genymotion non includono i servizi GooglePlay. Questo link mostra come installarli manualmente: forum.xda-developers.com/showthread.php?t=2528952
Apfelsaft

2
Va bene finché non reinstalli il VBox o uno qualsiasi degli strumenti che usano, quindi smette di funzionare - la disinstallazione non aiuta. Ma è stato bello finché è durato.
milosmns,

5
Genymotion non è più gratuito (come lo era quando l'ho usato l'ultima volta), non sono sicuro che questa sia ancora la scelta migliore per gli sviluppatori
Zain Ali,

6
Da Android Studio 2 l'emulatore è stato migliorato di dieci volte. Ha molte funzionalità e funziona bene.
Blaffie,

213

L'emulatore incluso nella (vecchia) versione di Eclipse è molto lento.

Gli emulatori recenti sono più veloci di quanto non fossero nel 2010. Aggiorna il tuo SDK / IDE.

Personalmente, uso un vero telefono per fare i miei test. È più veloce e i test sono più realistici. Ma se vuoi testare la tua applicazione su molte diverse versioni di Android e non vuoi acquistare più telefoni, dovrai utilizzare l'emulatore di volta in volta.


1
vmware funziona con una differenza di prestazioni inosservata rispetto alla macchina reale. Anche se l'emulatore emula ARM dovrebbe essere più veloce, anche sulla stessa frequenza di sistema e il mio PC è 3,6 GHz, che è più lento del telefono Android da 500 MHz.
NickSoft,

@rds - Quindi il mio AVD dovrebbe emulare Intel anziché ARM per caricarlo più velocemente?
Trojan.ZBOT

no, questo non è ottimizzato per x86 ... emula l'hardware del telefono x86 - mentre al giorno d'oggi il telefono comune supera facilmente la macchina in questione :)
Martin Zeitler,

Ti rendi conto che entrambi eseguono lo stesso emulatore giusto? android-sdk \ tools \ emulator-x86.exe, nulla a che fare con Eclipse, probabilmente hai appena iniziato a usare immagini Intel x86 con Intel HAXM.
Dan Dar3,

Bene rispetto a quanto sono lenti nei giorni in cui vanno alla velocità della luce ora.
Bolling,

138

L'avvio dell'emulatore è molto lento. La cosa buona è che devi solo avviare l'emulatore una volta. Se l'emulatore è già in esecuzione e si esegue di nuovo l'app, l'emulatore reinstalla l'app in modo relativamente rapido. Naturalmente, se vuoi sapere quanto velocemente funzionerà su un telefono, è meglio testarlo su un telefono reale.


40
Se ci vogliono un paio d'ore, probabilmente c'è qualcos'altro che non va. Ci vogliono solo un paio di minuti per me.
Jay Askren,

qual è la tua configurazione hardware e sistema operativo?
Junior Mayhé,

@Junior Mayhe: ho programmato per Android usando Windows, Mac e Linux. Uso il Mac più spesso in questo momento. I computer che ho usato hanno da 2 a 4 GB di RAM e un processore abbastanza moderno da 2 a 3 ghz. In ogni caso, sembrano essere necessari diversi minuti per avviare prima l'emulatore, ma poi reinstallare l'app è abbastanza veloce.
Jay Askren,

3
@ user286101: il caricamento di un nuovo apk in un emulatore già in esecuzione non richiede più di 10 secondi nel mio vecchio laptop (1.6Ghz dual core, 1GB RAM), l'unico problema è che spesso mi sono dimenticato di lasciare l'emulatore in esecuzione, quindi ho dovuto passare attraverso il lento processo di riavvio (che richiede 3-5 minuti).
Lie Ryan,

@LieRyan "dovrebbe durare non più di 10 secondi" purtroppo, questo è il tempo di un progetto C ++ di dimensioni similari nelle macchine di oggi.
kizzx2,

129

Intel ha rilasciato le istruzioni di installazione consigliate per l'emulatore ICS il 15 maggio 2012. Questo ha funzionato per me. L'emulatore ora è veloce e l'interfaccia utente è fluida.

La prima metà delle istruzioni è sufficientemente dettagliata, quindi suppongo che tu sia stato in grado di installare le immagini del sistema Atom x86 Intel usando il gestore SDK Android e Intel HAXM.

Ora assicurati che tutto il resto sia impostato in modo da poter godere di un emulatore ad alte prestazioni:

E avviarlo:

sudo kextload -b com.intel.kext.intelhaxm (mac)

Se HAXM funziona correttamente, è possibile che venga visualizzato questo messaggio all'avvio dell'emulatore:

HAX funziona e l'emulatore funziona in modalità virtuale veloce

Altrimenti, potresti vedere questo errore:

HAX non funziona e l'emulatore funziona in emulatore in modalità emulazione:
impossibile aprire il modulo hax

  • Usa emulazione GPU. Non è possibile utilizzare l'opzione Snapshot quando si utilizza l'emulazione GPU al momento della stesura. Assicurarsi che l'emulazione GPU sia impostata su "sì".

  • Impostare la memoria del dispositivo su 1024 MB o più , ma non oltre l'impostazione Intel HAXM. Uso 1024 MB per dispositivo e 2048 per HAXM.

Ricontrolla sempre le impostazioni dopo il salvataggio! L'emulatore è molto esigente su ciò che ti consente di impostare e ripristinerà le configurazioni senza dirtelo.

Con queste impostazioni la tastiera del software non viene più visualizzata, né i tasti su schermo, menu e tasti recenti sullo schermo. Questa sembra essere una limitazione dell'immagine attuale del sistema Intel x86 ICS. Dovrai usare le scorciatoie da tastiera .

Su Mac OS dovrai tenere premuto fn+ controlper far funzionare i tasti F1- F12. La pagina su / giù / sinistra / destra può essere eseguita usando i tasti di controllo + freccia.


Fare attenzione quando si utilizza una macchina virtuale con Intel HAXM. Apparentemente l'ambiente virtuale può corrompersi se la memoria di sistema è esaurita.
James Wald,

android-dev.ro/web/guest/home Questa è un'altra buona istruzione passo-passo per impostare un AVD x86 HAXM in Eclipse. Inoltre spiega come impostare le API di Google.
Sulai,

2
Non sono sicuro che stia facendo qualcosa di sbagliato, ma ho seguito da vicino la guida e ho ottenuto: "HAX funziona e l'emulatore funziona in modalità virt veloce", poco prima dell'avvio del dispositivo, ma ... in realtà si carica anche più lentamente della versione originale del braccio . Sono su Mac e la CPU supporta VT.
jayarjo,

4
Questa è la risposta giusta .. Ho installato il processore Intel x86 e la GPU è abilitata. L'emulatore è molto reattivo e fluido con queste impostazioni. FINALMENTE ! Se hai bisogno di aiuto per configurarlo su Windows o Mac fammi sapere. Adios all
Tony,

2
Grazie per questo, testato su Windows 7 Pro, Intel Core i7 3770 e funziona. Su Windows Intel Hardware Accelerated Execution Manager (HAXM) deve solo essere installato, si avvierà automaticamente. Basta creare un AVD con Intel Atom x86 e assicurarsi che sia selezionato 'Usa GPU host'
gerrytan

111

È possibile creare emulator.bat con il seguente comando per avviare l'emulatore. Inizierà più velocemente.

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

O su Unix (versioni Mac o Linux):

emulator -cpu-delay 0 -no-boot-anim @<avd name>

L'aggiunta ha -no-boot-animridotto i tempi di avvio di circa il 38%. Grazie!
Timothy003,

3
(Studio Android) Selezionare Esegui> Modifica configurazioni ... . Nel pannello di sinistra della finestra di dialogo Configurazioni di esecuzione / debug , selezionare o creare una configurazione. In Opzioni dispositivo di destinazione , selezionare AVD. In Emulatore scheda, entrare -no-boot-animin Ulteriori opzioni della riga di comando di campo
Ivan Chau

103

Ho notato che l'emulatore si avvia molto più velocemente se non è collegato alcun Dalvik Debug Monitor Server (DDMS). Pertanto, se si avvia l'emulatore da Virtual Device Manager "SDK Setup.exe" e Eclipse non viene avviato, l'emulatore funziona più velocemente.

Se avvii l'emulatore da Eclipse: DDMS è lì, quindi a volte l'emulatore è estremamente lento, ma a volte è più veloce.


2
@Shekhar: DDMS = Dalvik Debug Monitor Server
Lie Ryan,

se eseguiamo l'emulatore attraverso la riga di comando di Cordova di Git Bash ... come disabilitare comunque Dalvik Debug Monivor Server?
Gumuruh,

61

Gli emulatori sono lenti. Non c'è davvero nulla che tu possa fare al riguardo, ma ci sono alternative all'emulatore.

  1. Genymotion: preferito

  2. VirtualBox

  3. BlueStacks

  4. Tu saluti

  5. Emulatore Android Windows

  6. Jar of Beans

  7. Andy

Per rendere più veloce il tuo emulatore, puoi ospitare una GPU e utilizzare una versione Android più leggera ( Android 2.3 (Gingerbread)). Lo sviluppo su un Mac sarebbe meglio. Perché usare un emulatore, BTW? L'uso di un telefono reale ha più senso.


Ho usato Genymotion e devo dire che è relativamente veloce rispetto all'emulatore Android predefinito.
Anurag,

"Perché usare un emulatore, BTW? L'uso di un telefono reale ha più senso." Sono al lavoro e non abbiamo abbastanza telefoni per andare in giro. Non sono un tester, quindi non ho la priorità su di loro.
Almo,

l'emulatore non è lento, ma la tua macchina. immagini x86 suggerite.
Martin Zeitler,

@Almo, i telefoni reali sono una buona scelta, ma l'emulatore ti dà lo spazio per rendere la tua app compatibile con la maggior parte del design versione Android + in diversi schermi, ... questo è il modo per far funzionare la tua app con meno bug prima che vada a test con telefoni reali. Ho visto personalmente alcuni dei problemi di progettazione che possono essere facilmente risolti controllandoli nei diversi emulatori ... Non tutti possono permettersi di avere almeno 1 telefono di diversi sistemi
operativi

50

A partire dalla Revisione 17 di Android SDK Tools, l'emulatore può utilizzare l'accelerazione grafica e le estensioni fornite dalla CPU per una migliore efficienza. I prerequisiti e la configurazione completa e le note dell'utente sono disponibili su:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

Per abilitare l' accelerazione GPU , eseguire l'emulatore dalla riga di comando o aggiungere "-gpu on" alle opzioni aggiuntive della riga di comando dell'emulatore nella configurazione AVD.

emulator -avd <avd_name> -gpu on

Per utilizzare le estensioni della macchina CPU, è necessario installare il driver (attenzione perché può entrare in conflitto con i driver VirtualBox o VMware esistenti ). Una volta installato, verrà utilizzato automaticamente ogni volta che si utilizza un AVD basato su x86.


L'ho scoperto da solo. Fa funzionare l'emulatore quasi come un vero dispositivo!
gak

Si noti che per utilizzare l'accelerazione GPU è necessario utilizzare Android 4.0 o versioni successive. Inoltre, con gli strumenti attuali non è possibile utilizzare ENTRAMBI gli snapshot e l'accelerazione GPU contemporaneamente, è necessario scegliere (Personalmente preferisco avere l'accelerazione GPU e l'avvio lento dell'emulatore).
mav,

46

Prova a disabilitare il tuo antivirus. Forse renderà l'emulatore un po 'più veloce.


7
Ho scoperto che anche questo è vero: ho rimosso AVG Free e installato MS Security Essentials e l'emulatore si avvia notevolmente più velocemente. YMMV.
Guy Starbuck,

4
è ancora super lento sui sistemi linux ... che ovviamente non hanno in genere av
alex.pilon

3
Non ho un antivirus. Ci vogliono ancora anni ...
Robin Maben,

Il mio emulatore è così lento sul mio Linux senza AV che apre una finestra nera e si blocca. L'altro mio computer con Windows non supporta vt-x quindi non funziona.
Suici Doga,

Prova a riavviare il computer, forse renderà l'emulatore un po 'più veloce.
vk.edward.li

44

SDK Android rev. 17 supporta Virtual Machine Acceleration utilizzando le tecnologie di virtualizzazione AMD e Intel.

Questa funzione può migliorare molto le prestazioni dell'emulatore!

Vedere la sezione seguente nella documentazione dell'emulatore Android per maggiori dettagli: Configurazione dell'accelerazione della macchina virtuale

Non dimenticare di installare il driver appropriato per il tuo sistema operativo:

Dopo aver installato i driver e scaricato un'immagine di sistema Android X86 (come descritto nella documentazione), dovresti essere in grado di creare un nuovo AVD usando l'immagine x86:

Per esempio:

  • Target: Immagine di sistema Intel Atom x86 - Livello API 10
  • CPU / ABI: Intel Atom (x86)

sfortunatamente, attualmente AMD-V è supportato solo su Linux (SDK rev 17).
Amir Ali Akbari,

Intel HAXM ha reso il mio AVD x86 200% ~ 300% più veloce di prima! Grande!
Lcsky,


40

L'emulatore sembra rallentarsi quando è inattivo. Ciò è reso evidente spostando rapidamente il mouse sui tasti laterali e osservando le risposte luminose. Per ovviare al problema, passo -icount autoa QEMU all'avvio dell'emulatore. Puoi creare un file batch chiamato my_avd.batper farlo per te:

emulatore @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd - avvia un dispositivo virtuale chiamato "my_avd"
  • -no-boot-anim - disabilita l'animazione per un avvio più rapido
  • -qemu args... - passa argomenti a qemu
  • -icount [N|auto] - abilita il contatore di istruzioni virtuali con 2 ^ N tick per istruzione

Ciò ha reso le animazioni fluide e burrascose e accelerato di adb installdieci volte.


perché icount auto lo rende più veloce?
Pacerier,

grazie. -no-boot-anim sembra avviare Android più velocemente!
Ajay,

Impressionante .... Nello specifico sono rimasto bloccato con una velocità di trasferimento molto bassa di "adb". Ora è davvero veloce, veloce come l'immagine x86. Grazie
Mohsen Afshin,

Sto usando l'eclissi. Sai come impostare queste opzioni nel mio ambiente?
kta,

1
@MSS Non ne ho idea ... Sono passati anni da quando ho usato l'emulatore Android. Scusate!
Timothy003,


34

Puoi esaminare i problemi dell'emulatore su Google I / O 2011: conversazione su Strumenti di sviluppo Android , a partire da 0:40:20.

L'emulatore funziona lentamente perché l'intero ambiente Android è in esecuzione su hardware emulato e le istruzioni vengono eseguite anche su un processore ARM emulato.

Il principale punto di soffocamento è il rendering poiché non è in esecuzione su alcun hardware dedicato ma viene effettivamente eseguito tramite il rendering del software. Ridurre le dimensioni dello schermo migliorerà drasticamente le prestazioni dell'emulatore. Ottenere più / più veloce memoria non sarà di aiuto.

All'epoca hanno menzionato che stanno sviluppando un'interfaccia che consentirebbe all'emulatore di inviare determinate istruzioni attraverso l'hardware host, quindi alla fine sarai in grado di sfruttare le prestazioni dell'emulatore con la potenza pura dell'hardware desktop.


30

La versione attuale (maggio 2011) dell'emulatore è lenta, in particolare con Android 3.0 (Honeycomb) principalmente perché l'emulatore non supporta l'hardware GL - questo significa che il codice GL viene tradotto in software (software ARM, in effetti) che quindi ottiene emulato nel software in QEMU . Questo è pazzesco. Stanno lavorando su questo problema e lo hanno parzialmente risolto, ma non con alcun tipo di qualità di rilascio.

Guarda il video Google I / O 2011: Strumenti di sviluppo Android per vederlo in azione: passa a circa 44 minuti.


Significa che se acquistiamo l'ultimo Raspberry Pi con processore ARM, saremo in grado di utilizzare l'emulatore ARM Android senza la lentezza dell'emulazione ARM su x86 / x86_64? L'ultima CPU e GPU Raspberry Pi sono abbastanza buone da avere un emulatore veloce? Google fornisce una versione ARM di sdk-tools Android per utilizzare un emulatore ARM?
Baptx

30

Utilizzare l'acceleratore di emulatore Intel x86

Innanzitutto, installare Intel x86 Emulator Accelerator (HAXM). Questo può essere scaricato direttamente da Intel o utilizzando Android SDK Manager. In SDK Manager, si trova in Extra.

Schermata di SDK Manager

Nella versione di Android Studio che ho usato (0.8.9), Android SDK Manager scarica HAXM ma in realtà non esegue il programma di installazione (suppongo che questo verrà risolto nelle versioni successive). Per eseguire il programma di installazione sono dovuto andare su C: \ Programmi (x86) \ Android \ android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager e avviare manualmente intelhaxm.exe.

HAXM funziona con dispositivi Intel, quindi ha creato un nuovo emulatore con CPU Intel.

Crea un nuovo AVD usando Intel Atom x86

Ciò ha migliorato notevolmente le cose, ma l'emulatore si sentiva ancora un po 'lento. Il passaggio finale è stato selezionare Usa GPU host in Gestione dispositivi virtuali Android (AVD).

Schermata Opzioni di creazione AVD

Dopo queste modifiche, Android Emulator si avviava in 5-10 secondi e funzionava senza alcun ritardo evidente. Tenere presente che queste funzionalità dipendono dall'hardware (CPU / GPU) e potrebbero non funzionare su alcuni sistemi.


Utilizzare la GPU host è la chiave! grazie mi chiedevo perché in una macchina avevo un emu veloce e in un'altra no
Keoz,

dovresti abilitare la virtualizzazione sul BIOS, se avessi un processore AMD, abilita Vt-x
Anu Martin,

Si noti che questo HAXM è necessario (e disponibile) solo per Windows, non per Linux.
Suther,

28

Una nuova opzione è il Visual Studio emulatore per Android --è veloce, Hyper-V , X 86, e per scaricare anche senza VS libera .


È solo per Windows?
Robert,

Sì, utilizza Hyper-V, che è solo su Windows.
John Kemnetz,

Sono d'accordo con l'affermazione - il miglior emulatore del pianeta. Sono un testimone dopo aver sofferto di usare altri emulatori per diversi anni. È molto meglio di altri, soprattutto quando si tratta di debug. Genymotion non è male ma richiede VirtualBox in conflitto con Hyper-V. Questa risposta deve andare in cima.
Hong

2
@JohnKemnetz posso aggiungere solo su Windows Professional o versioni successive.
un earwig il

28

Prova Genymotion per Android Studio. Incredibilmente veloce! Serve solo una volta l'installazione. Niente più dolore AVD.


27

Per aggiungere ulteriori informazioni a questo.

Di recente ho aggiornato la mia installazione di Ubuntu a Ubuntu 10.04 LTS (Lucid Lynx) che a sua volta ha aggiornato la mia versione di Java a:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

E ora l'emulatore (anche se richiede un po 'di tempo per avviarsi) sembra funzionare più velocemente di prima.

Potrebbe valere la pena aggiornare la propria JVM.


64-bit java è più veloce (~ 2 volte) di 32-bit java sulla stessa macchina.
Mostowski Collapse

15
Non riesco a capire perché la velocità dell'emulatore dovrebbe dipendere dalla versione di Java. L'emulatore non è scritto in Java e non funziona su JVM.
Lena Schimmel,

Sto usando Oracle Java 1.6.0_26 a 64 bit e il mio emulatore è più lento di una tartaruga ... è doloroso. Core2Quad, Java + Ubuntu 11.10 a 64 bit, 8 GB di RAM.
Djangofan,

Se non è scritto in Java e non funziona su JVM, allora perché richiede Java (e nemmeno una versione di Java!)
Rolf

25

Ecco cosa ho notato, nessuno l'ha menzionato affatto.

Assegna tutti i processori disponibili all'emulatore

Ecco cosa puoi provare. Accelera l'emulatore per me, specialmente durante il tempo di caricamento. Ho notato che l'emulatore utilizza solo un singolo core della CPU disponibile. L'ho impostato per utilizzare tutti i processori disponibili.

Sto usando Windows 7.

All'avvio dell'emulatore Android, apri Task Manager, cerca nella scheda Processo, cerca "emulator-arm.exe" o "emulator-arm.exe * 32" ... Fai clic destro su di esso, seleziona Processor Affinity e assegna all'emulatore tutto il processore che desideri.

Inserisci qui la descrizione dell'immagine


3
Questo ha accelerato un po 'le cose sulla mia macchina Windows 7
Rocco The Taco,

Come farlo su Windows 8?
Ing

Suppongo che potresti usare il task manager di Windows 8 per fare lo stesso? Mi dispiace non ho Windows 8 al momento.
Harvey Darvey

2
Su Windows 10, e presumo anche Windows 8, devi andare alla Detailsscheda inTask Manager per fare questo. Sebbene nel mio caso tutti e 4 i core fossero già stati selezionati. Vorrei che consentissero anche ai dispositivi AMD di eseguire le immagini x86, anche senza il driver HAXM dovrebbero essere più veloci delle immagini ARM.
A.Grandt,

20

Dopo un po 'di sviluppo, il mio emulatore è diventato brutalmente lento. Ho scelto di cancellare i dati dell'utente ed è stato molto meglio. Immagino che ci voglia tempo per caricare ogni file APK che hai distribuito.


20

L'emulatore Android è molto lento. Richiede 800 MB di memoria durante l'esecuzione. Se sei su Windows, puoi utilizzare l'emulatore Microsoft Android. È superbo, offre funzionalità più dell'emulatore Android Studio. E, soprattutto, è veloce (consuma solo 13 MB). Viene fornito con Visual Studio 2015 Technical Preview. Lo sto usando e sono contento. Ho scaricato e installato l'intero pacchetto VS, devo guardare come possiamo installare solo VS Emulator.

Emulatore di Visual Studio per Android

EDIT: prova https://www.visualstudio.com/vs/msft-android-emulator/


come si calcola amico? è un sistema operativo e ha bisogno di un sacco di RAM per funzionare. e 13 Mb È davvero stupido, per favore guarda di nuovo.
MSS,

@MSS Non conosco la storia di fondo dietro VS Emulator ma l'ho fatto praticamente e ho trovato quello che ho detto.
Anil8753,

Forse hai fatto un errore, volevo dire che è impossibile emulare il vero sistema operativo Android in un così piccolo pezzo di RAM e l'emulatore VS deve essere un semplice ambiente di debug per applicazioni realizzate in C # e probabilmente impossibile eseguire un'applicazione Android standard.
MSS

Sì, non sono sicuro che si tratti di una vera emulazione completa di Android o solo di una leggera emulazione delle funzionalità di base di Android. Per favore, lascialo provare. Esegui prima questo emulatore e successivamente distribuisci la tua app Android Studio.
Anil8753,

Sto sviluppando un'app per Android utilizzando Android Studio e distribuendola in modo simile ad altri dispositivi ADB. Basta provare
Anil8753,

20

Bene, poiché qualcuno ha suggerito Android x86 come emulatore di test alternativo, presenterò anche il mio preferito. Questa potrebbe non essere un'alternativa per tutti, ma per me è perfetta!

Usa il lettore Bluestacks . Funziona con Android 2.3.4 ed è molto fluido e veloce. A volte è persino più veloce di un normale dispositivo. L'unico aspetto negativo è che puoi semplicemente testare le app sull'API Level 10 e solo su una dimensione dello schermo, ma è perfetto solo per il test se funziona o no. Basta collegare il lettore con il adbeseguendo

adb connect 127.0.0.1 

Dopo la compilazione, si installa immediatamente. È molto impressionante, considerando che ho un hardware piuttosto medio (dual core con 4 GB di RAM).


È davvero molto veloce! Come posso modificarlo per requisiti come tablet da 7 '(800x480)? Ho provato a cambiare le dimensioni dell'app ma è già un tablet.
nesimtunc,

Penso che volevi dire "fluido e veloce" :) Comunque, grazie. Bel consiglio, peccato che funzioni Android 2.2
Rolf,

2
@Rolf Oh giusto, haha ​​:) Comunque, questa risposta è vecchia. Dovresti dare un'occhiata a Genymotion. È molto meglio.
Ahmad,

19

Ho avuto tempi di caricamento intermittenti dell'emulatore lento (SDK v8.0), fino a tre minuti su CPU Intel Core i7 920 2,67 GHz in esecuzione su Xubuntu 10.04 VirtualBox 3.2.12 con Eclipse (3.6.1) caricato. Ho cambiato la memoria del guest VirtualBox da 1024 MB a 2048 MB e da quel momento in poi non ho più sperimentato la lentezza (tempi di caricamento coerenti a 33 secondi, carico della CPU costante al 20%). Sia Eclipse che l'emulatore sono maiali della memoria.


16

Ho notato che il mio emulatore ( plug-in Eclipse ) è stato notevolmente rallentato dalle impostazioni di antialiasing della mia scheda grafica Nvidia . Rimuovere l'antialiasing 2x dal menu grafico e cambiarlo in un'applicazione controllata lo ha reso più reattivo. È ancora lento, ma meglio di prima.


16

Per ridurre il tempo di avvio dell'emulatore, è necessario selezionare "Disabilita animazione di avvio" prima di avviare l'emulatore. Fare riferimento alla documentazione di Android .

Se nel caso non lo sapessi, non è necessario chiudere l'emulatore ogni volta che esegui / esegui il debug della tua app. Se fai clic su Esegui / Debug quando è già aperto, il tuo file APK verrà caricato nell'emulatore e si avvierà praticamente immediatamente. L'emulatore impiega molto tempo solo quando è stato avviato per la prima volta.

Ecco alcuni suggerimenti per accelerare l'emulatore Android: Come accelerare l'emulatore Android fino al 400% .


15

Un buon modo per accelerare l'emulatore Android e i test delle app è Installa o aggiorna il tuo Android Studio alla versione di Android Studio 2.0 e poi vai all'app apri Impostazioni / Preferenze, vai a Build, Execution, Deployment → Instant Run. Fai clic su Abilita corsa istantanea. Dopodiché ciò assicurerà di disporre del plug-in gradle corretto affinché il progetto funzioni con Instant Run. inserisci qui la descrizione dell'immagine

E la corsa istantanea sarà simile a questa Nuove azioni Run & Stop in Android Studio per Instant Run

Tuttavia, Android Studio è ora in anteprima, puoi provarlo ora.


1
Android Studio 2.0 è stabile ora. La corsa istantanea aumenta la velocità di costruzione e non quella dell'emulatore, controlla per maggiori informazioni: < android-developers.blogspot.lt/2016/04/android-studio-2-0.html >
Arūnas Bedžinskas

Il nuovo emulatore funziona circa 3 volte più velocemente del precedente emulatore Android. e ora puoi ora trasferire app e dati 10 volte più velocemente nell'emulatore che in un dispositivo fisico. android-developers.blogspot.ae
Umer

1
Si noti che quando si utilizza Instant Run, ci sono alcuni problemi durante l'installazione su dispositivi <5.0. Se vedi che la tua app si arresta in modo anomalo sui dispositivi da kitkat e inferiori, disabilita l'esecuzione immediata e ricostruiscila. Dovresti essere bravo ad andare ..
Vamsi Challa,
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.