performance genymotion - Perché l'emulatore Android è così lento? Come possiamo velocizzare l'emulatore Android?




emulators virtual (25)

Android SDK rev. 17 supporta l'accelerazione di macchine virtuali 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 ulteriori 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 X86 per Android (come descritto nella documentazione) dovresti essere in grado di creare un nuovo AVD usando l'immagine x86:

Per esempio:

  • Target: Intel Atom x86 System Image - Livello API 10
  • CPU / ABI: Intel Atom (x86)

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

La mia comprensione è che l' emulatore Android dovrebbe iniziare abbastanza velocemente su una macchina del genere, ma per me no. Ho seguito tutte le istruzioni per l'impostazione di IDE, SDK, JDK e simili e ho avuto un discreto successo nell'avviare l'emulatore rapidamente, ma ciò è molto raro. Come posso, se possibile, risolvere questo problema?

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


Ho notato che l'emulatore si avvia molto più velocemente se non è collegato il server di debug di Dalvik Monitor (DDMS). Quindi, se si avvia l'emulatore da Virtual Device Manager "SDK Setup.exe" e Eclipse non è avviato, l'emulatore funziona più velocemente.

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



Utilizzare Intel x86 Emulator Accelerator

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

Nella versione di Android Studio che ho utilizzato (0.8.9), Android SDK Manager scarica HAXM, ma in realtà non esegue l'installer (presumo che verrà risolto nelle versioni successive). Per eseguire l'installazione ho dovuto andare in 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.

Creare un nuovo AVD utilizzando Intel Atom x86

Ciò ha migliorato notevolmente le cose, ma l'emulatore si sentiva ancora un po 'lento. Il passaggio finale era selezionare Usa GPU host in Android Virtual Device Manager (AVD).

Dopo questi cambiamenti, l'emulatore Android è stato avviato in 5-10 secondi e in esecuzione senza alcun ritardo evidente. Si noti che queste funzionalità dipendono dall'hardware (CPU / GPU) e potrebbero non funzionare su alcuni sistemi.


Dopo aver sviluppato per un po ', il mio emulatore è diventato brutalmente lento. Ho scelto di cancellare i dati dell'utente , ed era molto meglio. Sto indovinando che ci vuole tempo per caricare ogni file APK che hai distribuito.


Puoi esaminare i problemi relativi all'emulatore su Google I / O 2011: gli strumenti di sviluppo Android parlano, a partire da 0:40:20.

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

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

A quel tempo hanno accennato al fatto che stanno sviluppando un'interfaccia che permetterebbe all'emulatore di instradare determinate istruzioni attraverso l'hardware dell'host, così alla fine sarete in grado di sfruttare le prestazioni dell'emulatore con la potenza pura dell'hardware desktop.


La versione 9 dell'emulatore Android ha una nuova funzione "istantanea". È possibile salvare lo stato dell'emulatore (creare un'immagine dell'emulatore) ed evitare l'avvio all'avvio dell'emulatore.


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 guest 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 mai più sperimentato la lentezza (tempi di caricamento costanti a 33 secondi, carico della CPU costante al 20%). Sia Eclipse che l'emulatore sono maiali di memoria.


L'emulatore Android è lento. Ci vogliono 800 MB di memoria durante l'esecuzione. Se sei su Windows, puoi usare Microsoft Emulatore Android. È superbo, offre funzionalità più di Android Studio Emulator. E la cosa più importante è veloce (consuma solo 13 MB). Viene fornito con l'anteprima tecnica di Visual Studio 2015. Lo sto usando e sono contento. Ho scaricato e installato l'intero pacchetto VS, ho bisogno di guardare come possiamo installare solo l'emulatore VS.

Emulatore di Visual Studio per Android

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


Per aggiungere ulteriori informazioni a questo.

Ho recentemente aggiornato la mia installazione di Ubuntu 10.04 a Ubuntu 10.04 LTS (Lucid Lynx), che a sua volta ha aggiornato la mia versione 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 iniziare) sembra correre più veloce di prima.

Potrebbe valere la pena che le persone aggiornino la loro JVM.


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

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

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


Ecco cosa ho notato che nessuno lo ha mai menzionato.

Assegna tutti i processori disponibili all'emulatore

Ecco cosa puoi provare. Accelera l'emulatore per me, soprattutto durante il 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 Processi, cerca "emulator-arm.exe" o "emulator-arm.exe * 32" ... Fai clic con il tasto destro del mouse su, Affinità processore e assegna all'emulatore tutto il processore che desideri.


A partire dalla versione 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 a:

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 della riga di comando dell'emulatore aggiuntive nella configurazione di 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.


Ho notato che il mio emulatore ( plug-in Eclipse ) è stato notevolmente rallentato dalle impostazioni di anti-aliasing della scheda grafica Nvidia . Rimuovendo 2x anti alias dal menu grafico e cambiandolo in applicazione controllata, è diventato più reattivo. È ancora lento, ma migliore di un tempo.


Aggiornare

Ora puoi abilitare l'opzione Avvio rapido per Emulatore Android. Ciò salverà lo stato dell'emulatore e inizierà l'emulatore rapidamente all'avvio successivo.

Fare clic sul pulsante Modifica emulatore, quindi fare clic su Mostra impostazioni avanzate . Quindi abilita Quick Boot come sotto l'immagine.

Android Development Tools (ADT) 9.0.0 (o successivo) ha una funzione che ti permette di salvare lo stato dell'AVD (emulatore), e puoi avviare immediatamente il tuo emulatore. È necessario abilitare questa funzione mentre si crea un nuovo AVD oppure è possibile crearlo in un secondo momento modificando l'AVD.

Inoltre ho aumentato la Device RAM Size del Device RAM Size a 1024 che si traduce in un emulatore molto veloce.

Fare riferimento agli screenshot riportati di seguito per ulteriori informazioni.

Creazione di un nuovo AVD con la funzione di snapshot di salvataggio.

Avvio dell'emulatore dall'istantanea.

E per accelerare il tuo emulatore puoi fare riferimento a Accelerare il tuo emulatore Android! :


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 / Altri Linux, 512 MB di RAM, HD 2 GB. Rete: PCnet-Fast III, collegato a NAT . È anche possibile utilizzare un adattatore a ponte, ma è necessario un server DHCP nel proprio ambiente.
  4. Installa Android x86 sull'emulatore, eseguilo.
  5. Premi Alt + F1 , digita netcfg , ricorda l'indirizzo IP, premi Alt + F7 .
  6. Esegui cmd sul tuo sistema Windows XP, cambia la directory nella directory degli strumenti Android, digita adb connect <virtual_machine_IP> .
  7. Avvia Eclipse, apri il plugin ADT, trova il dispositivo e divertiti!

Le versioni precedenti di Android sono molto più veloci. Quando sono sul mio netbook, utilizzo Android 1.5 (livello API 3). Ci sono però un paio di inconvenienti: le tue app devono supportare le piattaforme precedenti (ovviamente) e ndk-gdb richiede l'esecuzione di Android 2.2 (livello API 8) o superiore. Ma testare regolarmente le app su piattaforme precedenti è comunque una buona idea.


È possibile creare emulator.bat con il seguente comando per avviare l'emulatore. Si avvierà 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>

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


AGGIORNAMENTO: l'ultima versione di Android Studio (2.x) ha apportato importanti miglioramenti all'emulatore fornito 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. È disponibile anche un plugin per Eclipse:

L'installazione del plug-in può essere effettuata avviando Eclipse e andando al menu "Guida / Installa nuovo software", quindi aggiungere un nuovo sito di aggiornamento con il seguente URL: http://plugins.genymotion.com/eclipse . Segui 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.


Bene, dal momento che qualcuno ha suggerito Android x86 come emulatore di test alterantivo, presenterò anche il mio preferito. Questo potrebbe non essere un'alternativa per tutti, ma per me è perfetto!

Usa il lettore Bluestacks . Funziona su Android 2.3.4 ed è molto fluido e veloce. A volte è persino più veloce di un normale dispositivo. L'unico svantaggio è che puoi testare le app solo sul livello API 10 e solo su una dimensione dello schermo, ma è perfetto solo per testare se funziona o meno. Basta collegare il Player con il adbrunning by

adb connect 127.0.0.1 

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


L'emulatore sembra rallentare quando è inattivo. Ciò è reso evidente passando rapidamente il mouse sui tasti sul lato e osservando le risposte di illuminazione. Per ovviare al problema, -icount auto passaggio -icount auto da -icount auto a QEMU all'avvio dell'emulatore. Puoi creare un file batch chiamato my_avd.bat per farlo per te:

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

Ciò ha reso le animazioni burrose e rapide adb install dieci volte.


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



andare nella directory android-sdk / tools nel prompt dei comandi e quindi digitare

 adb install fileName.apk (Windows)

 ./adb install fileName.apk (Linux or Mac)




android performance android-emulator genymotion qemu