Dlaczego emulator Androida jest taki wolny? Jak możemy przyspieszyć emulator Androida? [Zamknięte]


3399

Mam   procesor Celeron 2,67 GHz i 1,21   GB pamięci RAM na komputerze z systemem Windows XP Professional x86 .

Rozumiem, że emulator Androida powinien zacząć dość szybko na takim komputerze, ale dla mnie tak nie jest. Postępowałem zgodnie ze wszystkimi instrukcjami przy konfigurowaniu IDE, SDK, JDK i tym podobnych i odniosłem pewien sukces w szybkim uruchomieniu emulatora, ale jest to bardzo rzadkie. Jak mogę, jeśli to możliwe, rozwiązać ten problem?

Nawet jeśli uruchamia się i ładuje ekran główny, jest bardzo powolny. Próbowałem Eclipse IDE w wersji 3.5 (Galileo) i 3.4 (Ganymede).


79
Alternatywą jest Genymotion. genymotion.com . To jest o wiele szybciej. Prosta instalacja.
Sukitha Udugamasooriya

9
Znalazłem emulator, aby działał o wiele szybciej (a właściwie mam na myśli waaaay) na Linuksie. Mam laptopa z podwójnym uruchomieniem, w systemie Windows uruchomienie emulatora zajmuje około 15 minut, a Linux około 30 sekund. Nie wiem o innych systemach operacyjnych, takich jak OSX, ale wydaje mi się, że to kwestia Windows.
Daniël van den Berg

11
Android Studio 2.0 ma nie tylko znacznie szybszy emulator, ale stosuje „natychmiastowe uruchomienie”, co pozwala na wdrożenie pewnych zmian w źródle, takich jak XML, w kilka sekund w celu bez konieczności przebudowywania APK i przeniesiony. Zobacz android-developers.blogspot.co.uk/2015/11/…
Carl Whalley

12
Myślę, że twój baran jest bardzo mały, aby emulator działał szybciej.
Zia U Rahman,

5
Jednym ze sposobów uniknięcia pomylonych komentarzy może być małe okienko z informacją, że pytanie jest starsze niż, powiedzmy, 2 lata. Technologia szybko się zmienia i chciałbyś, aby wiek wpływał na pozycję w rankingu, nawet jeśli pytanie nie powinno być zamykane / archiwizowane, jak na mniejszych stronach.
Henrik Erlandsson

Odpowiedzi:


1436

Aktualizacja

Możesz teraz włączyć opcję szybkiego rozruchu dla emulatora Androida. Spowoduje to zapisanie stanu emulatora i szybkie uruchomienie emulatora przy następnym uruchomieniu.

Kliknij przycisk edycji Emulator, a następnie kliknij Show Advanced Setting. Następnie włącz Quick Bootjak na zrzucie ekranu.

Szybkie uruchamianie

Android Development Tools (ADT) 9.0.0 (lub nowszy) ma funkcję, która pozwala zapisać stan AVD (emulator) i można natychmiast uruchomić emulator. Musisz włączyć tę funkcję podczas tworzenia nowego AVD lub możesz po prostu utworzyć go później, edytując AVD.

Również zwiększyłem Device RAM Sizedo 1024czego skutkuje bardzo szybkim emulatorem.

Więcej informacji można znaleźć na poniższych zrzutach ekranu.

Tworzenie nowego AVD z funkcją zapisu migawki.

Emulator Androida z funkcją zapisywania migawek.

Uruchamianie emulatora z migawki.

Uruchamianie emulatora z migawki.

Aby przyspieszyć działanie emulatora, zapoznaj się z częścią Przyspieszenie emulatora Androida! :


23
Podczas aktualizacji i istniejącego urządzenia wyczyść dane użytkownika przy pierwszym uruchomieniu z migawki
Mark Bakker

16
Ustawiłem AVD w ten sposób, ale wydaje się nadal powolny po ponownym uruchomieniu AVD, dlaczego?
zhongshu,

9
@Peter Ehrlich: Po prostu przejdź do okna> Android SDK i AVD Manager i wybierz AVD, który chcesz uruchomić z listy, a następnie kliknij przycisk Start w prawym okienku. Otworzy się tak, jak chcesz.
Vikas Patidar

3
Podczas ustawiania 1024 otrzymałem komunikat „Nie udało się przydzielić pamięci”. Wyświetliło się również ostrzeżenie w dolnej części okna konfiguracji z informacją: „W systemie Windows emulacja pamięci RAM większej niż 768M może się nie powieść w zależności od ...” Próbowałem ustawić ją na 770 i wtedy zadziałało. Nie udało się ustawić go na 800.
zachwiał

5
@ Msmit1993: Możesz używać emulatora opartego na Intel x86 z narzędziem HAX. Uwierz mi, że będziesz zaskoczony tym emulatorem szybciej niż twoje rzeczywiste urządzenie.
Vikas Patidar

1134

WAŻNA UWAGA : Najpierw zapoznaj się z listą Intel dotyczącą VT, aby upewnić się, że Twój procesor obsługuje Intel VT.

HAXM przyspiesza powolny emulator Androida

HAXM oznacza - „Intel Hardware Accelerated Execution Manager”

Obecnie obsługuje tylko Intel® VT (Intel Virtualization Technology).

Emulator Androida oparty jest na QEMU . Interfejs między QEMU a sterownikiem HAXM w systemie hosta został zaprojektowany tak, aby był niezależny od dostawcy.

HAXM

Kroki konfigurowania środowiska programistycznego dla systemu Android dla HAXM

  1. Zaktualizuj Eclipse: Upewnij się, że instalacja Eclipse i wtyczki ADT są w pełni aktualne.

  2. Zaktualizuj narzędzia Android: Po każdej aktualizacji wtyczki Eclipse ważne jest, aby zaktualizować Narzędzia Android SDK. W tym celu uruchom Menedżera zestawu SDK systemu Android i zaktualizuj wszystkie składniki zestawu SDK systemu Android. Aby skorzystać z HAXM, musisz mieć co najmniej wersję 17.

Wpisz opis zdjęcia tutaj

  • Pobierz obrazy systemu Atom x86 i sterownik Intel Hardware Accelerated Execution Manager . Postępuj zgodnie z obrazkiem poniżej:

Wpisz opis zdjęcia tutaj

  • Zainstaluj sterownik HAXM, uruchamiając „IntelHaxm.exe”. Będzie się znajdować w jednej z następujących lokalizacji:

    • 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

    Jeśli instalator nie powiedzie się z komunikatem, że Intel VT musi być włączony, musisz włączyć to w systemie BIOS . Zobacz opis jak to zrobić w Włączanie technologii Intel VT (Virtualization Technology) .

Zainstaluj .exe lub .dmg

  • Utwórz nowy AVD x86: Postępuj zgodnie z obrazem poniżej:

Utwórz AVD

  • Lub jak w przypadku nowego zestawu SDK, Wpisz opis zdjęcia tutaj

19
Dobry opis. Jeśli szukasz dokumentów od Google (zawiera kilka różnic dla komputerów Mac), można je znaleźć tutaj: developer.android.com/tools/devices/emulator.html#accel-vm
Todd Price

103
Nie działa w systemie Linux.
Kshitiz Sharma

14
Wypróbowałem to rozwiązanie. Zadziałało. Jednak zainstalowałem za pomocą MonoDroid i nie mogłem znaleźć IntelHaxm.exe przez minutę. To było tutaj: C: \ Users \ jbarneck \ AppData \ Local \ Android \ sdk \ extras \ intel
Rhyous

11
Wow, nie mogę ci wystarczająco podziękować! Nie mogę uwierzyć, że cały czas żyłem z wolnym emulatorem. Myślałem, że to normalne. Naprawdę tęsknię za szybkim czasem uruchamiania, czy nie ma sposobu, aby włączyć migawkę obok przyspieszenia GPU?
Reda,

3
To działa świetnie. Dzięki za udostępnienie tego! Gdy opcja „Użyj GPU hosta” jest włączona, emulator mocno migocze, ale także bez włączonej GPU hosta jest teraz bardzo szybki.
user1619275,

595

Wypróbuj system Android x86 . Jest znacznie szybszy niż emulator Google Android. Wykonaj następujące kroki:

  1. Zainstaluj VirtualBox .
  2. Pobierz potrzebny plik ISO .
  3. Utwórz maszynę wirtualną jako Linux 2.6 / Other Linux, 512 MB RAM, HD 2 GB. Sieć: PCnet-Fast III, podłączony do NAT . Możesz także użyć mostkowanego adaptera, ale potrzebujesz serwera DHCP w swoim środowisku.
  4. Zainstaluj Androida x86 na emulatorze, uruchom go.
  5. Naciśnij Alt+ F1, wpisz netcfg, zapamiętaj adres IP, naciśnij Alt+ F7.
  6. Uruchom cmd w systemie Windows XP, zmień katalog na katalog narzędzi Androida, wpisz adb connect <virtual_machine_IP>.
  7. Uruchom Eclipse, otwórz wtyczkę ADT, znajdź urządzenie i ciesz się!

6
więc się połączyłem. Jak sprawić, by ekran był ustawiony pionowo? Nigdzie też nie widzę przycisków sprzętowych telefonu.
Alex


4
Aby przypomnieć wam, że chcecie korzystać z myszy w emulatorze, musicie włączyć integrację myszy w menu urządzenia!
kakopappa

13
Pamiętaj, że jeśli używasz czegoś, co jest specyficzne dla ARM (na przykład Mono dla Androida), nie będzie działać na Androidzie x86.
Matthew Groves,

11
Dla mnie netcfg pokazuje lo 127.0.0.1 255.0.0.0 0x00000049 Czy jest tutaj 127.0.0.1 IP, o którym powinienem wspomnieć w poleceniu adb? pokazuje „nie można połączyć się z 127.0.0.1:5555” Proszę o pomoc.
Riz

318

AKTUALIZACJA: Najnowsza wersja Androida Studio (2.x) znacznie poprawiła dołączony emulator. Jest responsywny i ma całą masę funkcji.

Dla tych, którzy nadal są zainteresowani: Spróbuj użyć Genymotion . Po rejestracji możesz pobrać wersję na Windows / Mac OS X / Linux. Dostępna jest również wtyczka do Eclipse:

Instalację wtyczki można wykonać, uruchamiając Eclipse i przechodząc do menu „Pomoc / Zainstaluj nowe oprogramowanie”, a następnie po prostu dodaj nową witrynę aktualizacji z następującym adresem URL: http://plugins.genymotion.com/eclipse . Postępuj zgodnie z krokami wskazanymi przez Eclipse.

Ten emulator jest szybki i responsywny.

GenyMotion pozwala kontrolować różne czujniki urządzenia, w tym poziom naładowania baterii, siłę sygnału i GPS. Najnowsza wersja zawiera teraz także narzędzia aparatu.


52
Genymotion to zdecydowanie najlepszy sposób na opracowanie / przetestowanie aplikacji. Jest nie tylko szybszy i lepszy niż tradycyjny emulator. Jest także szybszy niż prawdziwe urządzenie. Używam go do 99,99% moich wdrożeń, ponieważ oznacza to, że widzę wyniki w ułamku czasu. Oznacza to również, że mogę korzystać z OpenGL ES i innych rzeczy, które nie są dostępne w normalnym emulatorze.
Eurig Jones

2
Nowsze wersje Genymotion nie zawierają usług Google Play. Ten link pokazuje, jak zainstalować je ręcznie: forum.xda-developers.com/showthread.php?t=2528952
Apfelsaft

2
Wszystko w porządku, dopóki nie zainstalujesz ponownie VBoxa lub któregokolwiek z narzędzi, których używają, a potem przestanie działać - odinstalowanie nie pomaga. Ale było dobrze, dopóki trwało.
milosmns

5
Genymotion nie jest już darmowy (tak jak wtedy, gdy użyłem go ostatni raz), Nie jestem pewien, czy nadal jest to najlepszy wybór dla programistów
Zain Ali

6
Od Android Studio 2 emulator został ulepszony dziesięciokrotnie. Ma wiele funkcji i działa dobrze.
blaffie,

213

Emulator zawarty w (starej) wersji Eclipse działa bardzo wolno.

Najnowsze emulatory są szybsze niż w 2010 roku. Zaktualizuj SDK / IDE.

Osobiście używam prawdziwego telefonu do przeprowadzania testów. Jest szybszy, a testy bardziej realistyczne. Ale jeśli chcesz przetestować aplikację na wielu różnych wersjach Androida i nie chcesz kupować kilku telefonów, będziesz musiał od czasu do czasu korzystać z emulatora.


1
vmware działa z niezauważoną różnicą wydajności w porównaniu do prawdziwej maszyny. Nawet jeśli emulator emuluje ARM, powinien być szybszy, nawet na tej samej częstotliwości systemowej, a mój komputer ma 3,6 GHz, czyli wolniej niż telefon z Androidem 500 MHz.
NickSoft

@rds - Więc czy mój AVD powinien emulować dane wywiadowcze zamiast ARM, aby ładował się szybciej?
Trojan.ZBOT,

nie, nie jest to zoptymalizowane dla x86 ... emuluje sprzęt telefonu x86 - podczas gdy zwykły telefon obecnie łatwo przewyższa dane urządzenie :)
Martin Zeitler

Czy zdajesz sobie sprawę, że oba działają poprawnie na tym samym emulatorze? android-sdk \ tools \ emulator-x86.exe, nie ma nic wspólnego z Eclipse, prawdopodobnie dopiero zacząłeś używać obrazów Intel x86 z Intel HAXM.
Dan Dar3

Dobrze w porównaniu do tego, jak powolni byli w czasach, gdy lecą teraz błyskawicznie.
Bolling

138

Uruchomienie emulatora jest bardzo wolne. Dobrą rzeczą jest to, że wystarczy uruchomić emulator tylko raz. Jeśli emulator jest już uruchomiony i aplikacja zostanie ponownie uruchomiona, emulator stosunkowo szybko ją ponownie zainstaluje. Oczywiście, jeśli chcesz wiedzieć, jak szybko będzie działał na telefonie, najlepiej przetestuj go na prawdziwym telefonie.


40
Jeśli zajmie to kilka godzin, prawdopodobnie dzieje się coś innego. Zajmuje mi to tylko kilka minut.
Jay Askren,

jaka jest twoja konfiguracja sprzętu i system operacyjny?
Junior Mayhé

@Junior Mayhe: Programowałem dla Androida na Windowsie, Macu i Linuksie. Obecnie najczęściej używam komputera Mac. Komputery, których używałem, mają 2 do 4 gigabajtów pamięci RAM i dość nowoczesny procesor 2 do 3 GHz. We wszystkich przypadkach uruchomienie emulatora może potrwać kilka minut, ale późniejsza instalacja aplikacji jest dość szybka.
Jay Askren,

3
@ user286101: ładowanie nowej aplikacji do już uruchomionego emulatora zajmuje nie więcej niż 10 sekund w moim starym laptopie (dwurdzeniowy 1,6 GHz, 1 GB pamięci RAM), jedynym problemem jest to, że często zapomniałem pozostawić uruchomiony emulator, więc musiałem przejść przez powolny proces ponownego uruchamiania (co zajmuje 3-5 minut).
Lie Ryan,

@LieRyan „nie powinno to zająć więcej niż 10 sekund”, to niestety czas zbliżony do wielkości symulowanej projektu C ++ o do współczesnych.
kizzx2

129

15 maja 2012 r. Intel wydał zalecane instrukcje instalacji emulatora ICS . To zadziałało dla mnie. Emulator jest teraz szybki, a interfejs użytkownika jest płynny.

Pierwsza połowa instrukcji jest wystarczająco szczegółowa, więc założę, że udało się zainstalować obrazy systemu Intel Atom x86 Atom przy użyciu menedżera Android SDK, a także Intel HAXM.

Teraz, aby upewnić się, że wszystko inne zostało skonfigurowane, abyś mógł cieszyć się wysoce wydajnym emulatorem:

I zacznij:

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

Jeśli HAXM działa poprawnie, może pojawić się ten komunikat podczas uruchamiania emulatora:

HAX działa, a emulator działa w szybkim trybie wirtualnym

W przeciwnym razie możesz zobaczyć ten błąd:

HAX nie działa, a emulator działa w trybie emulacji:
Nie można otworzyć modułu hax

  • Użyj emulacji GPU. Nie można używać opcji Snapshot podczas korzystania z emulacji GPU od tego momentu. Upewnij się, że emulacja GPU jest ustawiona na „tak”.

  • Ustaw pamięć urządzenia na 1024 MB lub więcej , ale nie więcej niż ustawienie Intel HAXM. Używam 1024 MB na urządzenie i 2048 dla HAXM.

Zawsze po zapisaniu sprawdź dwukrotnie ustawienia! Emulator jest bardzo wybredny co do tego, co pozwala ci ustawić, i przywróci konfiguracje bez powiadomienia.

Przy tych ustawieniach klawiatura oprogramowania nie jest już wyświetlana, podobnie jak wstecz, menu i ostatnie klawisze ekranowe. Wydaje się, że jest to ograniczenie bieżącego obrazu systemu Intel x86 ICS. Musisz użyć skrótów klawiaturowych .

W systemie Mac OS należy przytrzymać klawisz fn+, controlaby klawisze F1- F12działały. Stronę w górę / w dół / w lewo / w prawo można wykonać za pomocą klawiszy sterowania + strzałek.


Zachowaj ostrożność podczas korzystania z maszyny wirtualnej z technologią Intel HAXM. Najwyraźniej środowisko wirtualne może ulec uszkodzeniu, jeśli pamięć systemowa zostanie wyczerpana.
James Wald

android-dev.ro/web/guest/home To kolejna dobra instrukcja krok po kroku do konfigurowania HAXM x86 AVD w Eclipse. Dodatkowo wyjaśnia, jak skonfigurować interfejsy API Google.
sulai

2
Nie jestem pewien, czy to ja robię coś złego, ale ściśle przestrzegałem instrukcji i otrzymałem: „HAX działa, a emulator działa w trybie szybkiego uruchamiania”, tuż przed uruchomieniem urządzenia, ale ... ładuje się nawet wolniej niż oryginalna wersja ramienia . Jestem na komputerze Mac, a procesor obsługuje VT.
jayarjo,

4
To właściwa odpowiedź. Mam zainstalowany procesor Intel x86 i mam włączony procesor graficzny. Emulator jest bardzo responsywny i płynny dzięki tym ustawieniom. WRESZCIE ! Jeśli potrzebujesz pomocy przy konfigurowaniu go w systemie Windows lub Mac, daj mi znać. Adios all
Tony

2
Dzięki za to, przetestowany na Windows 7 Pro, Intel Core i7 3770 i działa. W systemie Windows Intel Hardware Accelerated Execution Manager (HAXM) musi być zainstalowany, uruchomi się automatycznie. Wystarczy utworzyć AVD z Intel Atom x86 i upewnić się, że wybrano
opcję

111

Możesz utworzyć emulator.bat za pomocą następującego polecenia, aby uruchomić emulator. Zacznie się szybciej.

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

Lub w systemach Unix (wersje Mac lub Linux):

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

Dodanie -no-boot-animskróciło czas uruchamiania o około 38%. Dzięki!
Timothy003

3
(Android Studio) wybierz Uruchom> Konfiguracje ... Edit . W lewym panelu okna dialogowego Uruchamianie / debugowanie konfiguracji wybierz lub utwórz konfigurację. W obszarze Opcje urządzenia docelowego wybierz AVD. W zakładce Emulator wprowadź -no-boot-animw polu Dodatkowe opcje wiersza poleceń
Ivan Chau

103

Zauważyłem, że emulator uruchamia się znacznie szybciej, jeśli nie jest podłączony serwer monitorowania debugowania Dalvik (DDMS). Jeśli więc uruchomisz emulator z Menedżera urządzeń wirtualnych „SDK Setup.exe” i Eclipse nie zostanie uruchomiony, emulator będzie działał szybciej.

Jeśli uruchomisz emulator z Eclipse: DDMS już tam jest, więc czasami emulator jest bardzo wolny, ale czasem jest szybszy.


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

jeśli uruchomimy emulator za pomocą wiersza poleceń Cordova w Git Bash ... jak w ogóle wyłączyć serwer Dalvik Debug Monivor Server?
gumuruh

61

Emulatory są wolne. Naprawdę nic nie możesz na to poradzić, ale istnieją alternatywy dla emulatora.

  1. Genymotion - Preferowane

  2. VirtualBox

  3. BlueStacks

  4. YouWave

  5. Emulator systemu Windows Android

  6. Jar of Beans

  7. Andy

Aby przyspieszyć działanie emulatora, możesz hostować procesor graficzny i używać lżejszej wersji Androida ( Android 2.3 (Gingerbread)). Lepsze byłoby opracowanie na komputerze Mac. Dlaczego warto korzystać z emulatora BTW? Korzystanie z prawdziwego telefonu ma większy sens.


Użyłem Genymotion i muszę powiedzieć, że jest on stosunkowo szybki niż domyślny emulator Androida.
Anurag,

„Po co używać emulatora, BTW? Korzystanie z prawdziwego telefonu ma większy sens”. Jestem w pracy i nie mamy wystarczającej liczby telefonów do obejrzenia. Nie jestem testerem, więc nie mam dla nich pierwszeństwa.
Almo

emulator nie jest wolny, ale twoja maszyna. Sugerowane obrazy x86.
Martin Zeitler

@Almo, Prawdziwe telefony to dobry wybór, ale emulator daje miejsce na dostosowanie aplikacji do większości wersji Androida + projekt na różnych ekranach, ... w ten sposób pozwalasz aplikacji działać z mniejszą liczbą błędów, zanim przejdzie do testowania z prawdziwymi telefonami. Osobiście widziałem, że niektóre problemy z projektowaniem można łatwo naprawić, sprawdzając je w różnych emulatorach ... Nie wszyscy mogą sobie pozwolić na co najmniej 1 telefon o różnych rozmiarach systemu
operacyjnego

50

Począwszy od wersji 17 narzędzi SDK systemu Android, emulator może korzystać z akceleracji graficznej i rozszerzeń zapewnianych przez procesor w celu zwiększenia wydajności. Wymagania wstępne oraz pełna konfiguracja i uwagi dla użytkownika znajdują się w:

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

Aby włączyć przyspieszenie GPU , uruchom emulator z wiersza polecenia lub dodaj „-gpu on” do dodatkowych opcji wiersza polecenia emulatora w konfiguracji AVD.

emulator -avd <avd_name> -gpu on

Aby korzystać z rozszerzeń komputera procesora, musisz zainstalować sterownik (uwaga, ponieważ może powodować konflikt z istniejącymi sterownikami VirtualBox lub VMware ). Po zainstalowaniu będzie on używany automatycznie przy każdym użyciu AVD opartego na x86.


Właśnie to odkryłem. Sprawia, że ​​emulator działa prawie tak dobrze, jak prawdziwe urządzenie!
gak

Pamiętaj, że aby użyć przyspieszenia GPU, musisz używać Androida 4.0 lub nowszego. Ponadto przy obecnych narzędziach nie można używać OBU migawek i przyspieszenia GPU w tym samym czasie, musisz wybrać (osobiście wolę przyspieszenie GPU i wolne uruchamianie emulatora).
mav

46

Spróbuj wyłączyć swój program antywirusowy. Może sprawi to, że emulator będzie trochę szybszy.


7
Stwierdziłem, że to również prawda - usunąłem AVG Free i zainstalowałem MS Security Essentials, a emulator uruchamia się zauważalnie szybciej. YMMV.
Guy Starbuck,

4
wciąż jest bardzo powolny na systemach linuxowych ... które oczywiście nie mają av
alex.pilon

3
Nie mam ŻADNEGO programu antywirusowego. Nadal trwa wieki ..
Robin Maben

Mój emulator działa tak wolno na moim systemie Linux bez AV, że po prostu otwiera czarne okno i zawiesza się. Mój inny komputer z systemem Windows nie obsługuje vt-x, więc nie działa.
Suici Doga

Spróbuj ponownie uruchomić komputer. Może sprawi to, że emulator będzie trochę szybszy.
vk.edward.li

44

Android SDK rev. 17 obsługuje akcelerację maszyn wirtualnych przy użyciu technologii wirtualizacji AMD i Intel.

Ta funkcja może znacznie poprawić wydajność emulatora!

Aby uzyskać więcej informacji, zobacz następującą sekcję dokumentacji emulatora Androida: Konfigurowanie przyspieszenia maszyny wirtualnej

Nie zapomnij zainstalować odpowiedniego sterownika dla swojego systemu operacyjnego:

Po zainstalowaniu sterowników i pobraniu obrazu systemu Android X86 (zgodnie z opisem w dokumentacji) powinieneś być w stanie utworzyć nowy AVD za pomocą obrazu x86:

Na przykład:

  • Cel: Obraz systemu Intel Atom x86 - API Poziom 10
  • Procesor / ABI: Intel Atom (x86)

niestety obecnie AMD-V jest obsługiwany tylko w systemie Linux (SDK rev 17).
Amir Ali Akbari

Intel HAXM sprawił, że mój x86 AVD był o 200% ~ 300% szybszy niż wcześniej! Świetny!
Lcsky,


40

Emulator wydaje się zwalniać, gdy jest bezczynny. Widać to po szybkim najechaniu myszką na klawisze z boku i obserwowaniu zapalających się reakcji. Jako obejście, przechodzę -icount autodo QEMU podczas uruchamiania emulatora. Możesz utworzyć plik wsadowy, my_avd.bataby to zrobić za Ciebie:

emulator @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd - uruchom wirtualne urządzenie o nazwie „my_avd”
  • -no-boot-anim - wyłącz animację dla szybszego rozruchu
  • -qemu args... - przekazywać argumenty do qemu
  • -icount [N|auto] - włączyć wirtualny licznik instrukcji z 2 ^ N taktami zegara na instrukcję

To sprawiło, że animacje stały się gładkie i przyspieszyły adb installdziesięciokrotnie.


dlaczego icount auto przyspiesza?
Pacerier

Dziękuję Ci. -no-boot-anim wydaje się szybciej uruchamiać Androida!
Ajay

Imponujące .... W szczególności utknąłem z bardzo niską prędkością transferu „adb”. Teraz jest naprawdę szybki, tak samo szybki jak obraz x86. Dziękuję
Mohsen Afshin,

Używam zaćmienia. Czy wiesz, jak skonfigurować te opcje w moim środowisku?
kta

1
@MSS Nie mam pojęcia ... Minęły lata, odkąd korzystałem z emulatora Androida. Przepraszam!
Timothy003


34

Możesz sprawdzić problemy z emulatorem w Google I / O 2011: Android Development Tools talk, rozpoczynając 0:40:20.

Emulator działa wolno, ponieważ całe środowisko Androida działa na emulowanym sprzęcie, a instrukcje są wykonywane również na emulowanym procesorze ARM.

Głównym punktem dławienia jest rendering, ponieważ nie działa na żadnym dedykowanym sprzęcie, ale w rzeczywistości jest wykonywany przez renderowanie programowe. Zmniejszenie rozmiaru ekranu znacznie poprawi wydajność emulatora. Zdobycie większej / szybszej pamięci nie pomoże.

Wspomnieli wtedy, że opracowują interfejs, który pozwoliłby emulatorowi przesyłać określone instrukcje przez sprzęt hosta, więc w końcu będziesz mógł wykorzystać wydajność emulatora przy użyciu surowej mocy sprzętu komputerowego.


30

Obecna (maj 2011 r.) Wersja emulatora jest powolna, szczególnie w systemie Android 3.0 (Honeycomb), głównie dlatego, że emulator nie obsługuje sprzętowego GL - oznacza to, że kod GL zostaje przetłumaczony na oprogramowanie (w rzeczywistości oprogramowanie ARM), które następnie dostaje emulowane w oprogramowaniu w QEMU . To jest szalenie powolne. Pracują nad tym problemem i mają go częściowo rozwiązać, ale nie przy żadnej jakości wydania.

Obejrzyj film Google I / O 2011: Android Development Tools, aby zobaczyć, jak działa - przejdź do około 44 minut.


Czy to oznacza, że ​​jeśli kupimy najnowszą wersję Raspberry Pi z procesorem ARM, będziemy mogli korzystać z emulatora ARM Androida bez powolności emulacji ARM na x86 / x86_64? Czy najnowszy procesor i GPU Raspberry Pi jest wystarczająco dobry, aby mieć szybki emulator? Czy Google udostępnia wersję ARM systemu Android SDK-Tools w celu korzystania z emulatora ARM?
baptx

30

Użyj akceleratora emulatora Intel x86

Najpierw zainstaluj Intel x86 Emulator Accelerator (HAXM). Można go pobrać bezpośrednio z firmy Intel lub za pomocą Menedżera SDK systemu Android. W menedżerze SDK znajduje się w części Dodatki.

Zrzut ekranu Menedżera SDK

W wersji Android Studio, z której korzystałem (0.8.9), Android SDK Manager pobiera HAXM, ale tak naprawdę nie uruchamia instalatora (zakładam, że zostanie to naprawione w późniejszych wydaniach). Aby uruchomić instalator, musiałem przejść do C: \ Program Files (x86) \ Android \ android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager i ręcznie uruchomić intelhaxm.exe.

HAXM współpracuje z urządzeniami Intel, dlatego stworzył nowy emulator z procesorem Intel.

Utwórz nowy AVD za pomocą Intel Atom x86

To znacznie poprawiło sytuację, ale emulator nadal czuł się nieco ospały. Ostatnim krokiem było wybranie opcji Użyj GPU hosta w Android Virtual Device Manager (AVD).

Zrzut ekranu opcji tworzenia AVD

Po tych zmianach emulator Androida został uruchomiony w ciągu 5-10 sekund i działał bez zauważalnego opóźnienia. Należy pamiętać, że te funkcje są zależne od sprzętu (CPU / GPU) i mogą nie działać w niektórych systemach.


Kluczem jest użycie GPU hosta! dzięki zastanawiałem się, dlaczego na jednej maszynie miałem szybkie emu, a na innej nie
Keoz

należy włączyć wirtualizację w systemie BIOS, jeśli masz procesor AMD, a następnie włącz Vt-x
Anu Martin

Zauważ, że ten HAXM jest potrzebny (i dostępny) tylko w systemie Windows, a nie w systemie Linux.
suther

28

Czy to tylko dla systemu Windows?
Robert

Tak - używa funkcji Hyper-V, która jest dostępna tylko w systemie Windows.
John Kemnetz

Zgadzam się z twierdzeniem - najlepszym emulatorem na świecie. Jestem świadkiem po wielu latach używania innych emulatorów. Jest o wiele lepszy niż inne, szczególnie jeśli chodzi o debugowanie. Genymotion nie jest zły, ale wymaga VirtualBox, który powoduje konflikt z Hyper-V. Ta odpowiedź musi przejść na górę.
Hong

2
@JohnKemnetz mogę dodać tylko w systemie Windows Professional lub nowszym.
skorek


27

Aby dodać do tego dalsze informacje.

Niedawno zaktualizowałem moją instalację Ubuntu do Ubuntu 10.04 LTS (Lucid Lynx), co z kolei zaktualizowało moją wersję Java do:

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)

A teraz emulator (choć uruchomienie zajmuje trochę czasu) wydaje się działać szybciej niż poprzednio.

Być może warto aktualizować JVM.


64-bitowa Java jest szybsza (~ 2 razy) niż 32-bitowa Java na tym samym komputerze.
Mostowski Zwiń

15
Nie rozumiem, dlaczego szybkość emulatora powinna zależeć od wersji Java. Emulator nie jest napisany w Javie i nie działa na JVM.
Lena Schimmel

Używam 64-bitowej wersji Oracle Java 1.6.0_26, a mój emulator jest wolniejszy niż żółw ... to bolesne. Core2Quad, 64-bitowa Java + Ubuntu 11.10, 8 GB pamięci RAM.
djangofan,

Jeśli nie jest napisany w Javie i nie działa na JVM, to dlaczego wymaga Java (a także żadnej wersji Java!)
Rolf

25

Oto, co zauważyłem, nikt w ogóle o tym nie wspominał.

Przypisz wszystkie dostępne procesory do emulatora

Oto, czego możesz spróbować. Przyspiesza to dla mnie emulator, szczególnie podczas ładowania. Zauważyłem, że emulator używa tylko jednego rdzenia dostępnego procesora. Ustawiam go tak, aby korzystał ze wszystkich dostępnych procesorów.

Korzystam z systemu Windows 7.

Gdy uruchamia się emulator Androida, otwórz Menedżera zadań, spójrz na kartę Proces, poszukaj „emulator-arm.exe” lub „emulator-arm.exe * 32” ... Kliknij go prawym przyciskiem myszy, wybierz Koligację procesora i przypisz dowolną liczbę procesorów do emulatora.

Wpisz opis zdjęcia tutaj


3
Przyspieszyło to trochę na mojej maszynie z Windows 7
Rocco The Taco,

Jak to zrobić w systemie Windows 8?
Eng.Fouad

Przypuszczam, że możesz użyć Menedżera zadań Windows 8, aby zrobić to samo? Niestety nie mam w tej chwili systemu Windows 8.
Harvey Darvey

2
W systemie Windows 10, a także zakładam, że Windows 8, musisz przejść do Detailszakładki w tym Task Managercelu. Chociaż w moim przypadku wszystkie 4 rdzenie zostały już wybrane. Chciałbym, aby zezwalały również urządzeniom AMD na uruchamianie obrazów x86, nawet bez sterownika HAXM powinny być szybsze niż obrazy ARM.
A.Grandt

20

Po pewnym czasie rozwijania mój emulator stał się brutalnie wolny. Wybrałem czyszczenie danych użytkownika , a było o wiele lepiej. Zgaduję, że załadowanie każdego pliku APK , który wdrożyłeś, zajmuje trochę czasu .


20

Emulator Androida działa bardzo wolno. Podczas pracy zajmuje 800 MB pamięci. Jeśli korzystasz z systemu Windows, możesz użyć emulatora Microsoft Android. Jest znakomity, zapewnia więcej funkcjonalności niż emulator Android Studio. A co najważniejsze, jest szybki (zużywa tylko 13 MB). Pochodzi z Visual Studio 2015 Technical Preview. Korzystam z tego i jestem z tego zadowolony. Pobrałem i zainstalowałem cały pakiet VS, muszę sprawdzić, jak możemy zainstalować tylko emulator VS.

Emulator Visual Studio dla Androida

EDYCJA: Spróbuj https://www.visualstudio.com/vs/msft-android-emulator/


jak obliczyć koleś? to system operacyjny i do uruchomienia potrzeba dużo pamięci RAM. i 13 Mb To naprawdę głupie, proszę obejrzeć ponownie.
MSS

@MSS Nie znam historii VS Emulatora, ale zrobiłem to praktycznie i znalazłem to, co powiedziałem.
Anil8753

Być może popełniłeś błąd, o którym myślę, że nie jest możliwe emulowanie prawdziwego systemu operacyjnego Android w tak małym kawałku pamięci RAM, a emulator VS musi być prostym środowiskiem debugowania dla aplikacji wykonanych w języku C # i prawdopodobnie nie można uruchomić standardowej aplikacji na Androida.
MSS

Tak, nie jestem pewien, czy to jest prawdziwa pełna emulacja Androida, czy tylko lekka emulacja podstawowych funkcji Androida. Niech spróbuje. Uruchom ten emulator, a następnie wdróż aplikację Android Studio.
Anil8753,

Tworzę aplikację na Androida za pomocą Android Studio i wdrażam ją podobnie do innych urządzeń ADB. Spróbuj
Anil8753,

20

Cóż, skoro ktoś zaproponował Androida x86 jako alternatywny emulator testowy, przedstawię też mój ulubiony. To może nie być alternatywa dla wszystkich, ale dla mnie jest idealna!

Użyj odtwarzacza Bluestacks . Działa pod kontrolą Androida 2.3.4 i jest bardzo płynny i szybki. Czasami jest nawet szybszy niż normalne urządzenie. Jedynym minusem jest to, że możesz po prostu testować aplikacje na poziomie API 10 i tylko na jednym ekranie, ale jest idealny tylko do testowania, czy działa, czy nie. Wystarczy podłączyć odtwarzacz adb, uruchamiając

adb connect 127.0.0.1 

Po kompilacji instaluje się natychmiast. Jest to bardzo imponujące, biorąc pod uwagę, że mam raczej przeciętny sprzęt komputerowy (dwurdzeniowy z 4 GB pamięci RAM).


To jest naprawdę bardzo szybkie! Jak mogę go zmodyfikować pod kątem wymagań takich jak tablet 7 '(800x480)? Próbowałem zmienić rozmiar aplikacji, ale to już tablet.
nesimtunc

Myślę, że miałeś na myśli „płynny i szybki” :) W każdym razie dzięki. Dobra wskazówka, szkoda, że ​​działa na Androidzie 2.2
Rolf

2
@Rolf O tak, haha ​​:) Jednak ta odpowiedź jest stara. Powinieneś sprawdzić Genymotion. Jest o wiele lepiej.
Ahmad

19

Miałem okresowe ładowanie powolnego emulatora (SDK 8.0), do trzech minut na procesorze Intel Core i7 920 2,67 GHz działającym na gościu Xubuntu 10.04 VirtualBox 3.2.12 z załadowanym Eclipse (3.6.1). Zmieniłem pamięć gościa VirtualBox z 1024 MB na 2048 MB i od tego momentu już nigdy nie doświadczyłem spowolnienia (czasy ładowania zgodne w 33 sekundach, obciążenie procesora w 20%). Zarówno Eclipse, jak i emulator to świnie pamięci.


16

Zauważyłem, że mój emulator ( wtyczka Eclipse ) został znacznie spowolniony przez ustawienia wygładzania karty graficznej Nvidia . Usunięcie 2x antyaliasingu z menu grafiki i zmiana go na kontrolowane przez aplikację sprawiły, że jest bardziej responsywny. Wciąż jest powolny, ale lepszy niż kiedyś.


16

Aby skrócić czas uruchamiania emulatora, przed uruchomieniem emulatora należy zaznaczyć opcję „Wyłącz animację rozruchową”. Zobacz dokumentację Androida .

Jeśli nie wiesz, nie musisz zamykać emulatora za każdym razem, gdy uruchamiasz / debugujesz swoją aplikację. Jeśli klikniesz polecenie Uruchom / debuguj, gdy jest już otwarty, plik APK zostanie przesłany do emulatora i rozpocznie się prawie natychmiast. Emulator zabiera irytująco długo dopiero po pierwszym uruchomieniu.

Oto kilka wskazówek, jak przyspieszyć emulator Androida: Jak przyspieszyć emulator Androida nawet o 400% .


15

Dobrym sposobem na przyspieszenie emulatora Androida i testowania aplikacji jest instalacja lub uaktualnienie Androida Studio do wersji Android Studio 2.0, a następnie przejście do aplikacji otwórz Ustawienia / Preferencje, przejdź do Kompilacja, wykonanie, wdrożenie → Natychmiastowe uruchomienie. Kliknij opcję Włącz natychmiastowe uruchamianie. A potem zapewni to, że masz odpowiednią wtyczkę stopniową do swojego projektu do pracy z Instant Run. wprowadź opis zdjęcia tutaj

Natychmiastowy przebieg będzie wyglądał tak Nowe akcje uruchamiania i zatrzymywania w Android Studio do natychmiastowego uruchamiania

Jednak Android Studio jest teraz w wersji zapoznawczej, możesz wypróbować teraz.


1
Android Studio 2.0 jest teraz stabilny. Natychmiastowe uruchomienie zwiększa prędkość kompilacji, a nie prędkość emulatora, sprawdź więcej informacji: < android-developers.blogspot.lt/2016/04/android-studio-2-0.html >
Arūnas Bedžinskas

Nowy emulator działa około 3 razy szybciej niż poprzedni emulator Androida. a teraz możesz teraz przesyłać aplikacje i dane 10 razy szybciej do emulatora niż do urządzenia fizycznego. android-developers.blogspot.ae
Umer

1
Należy pamiętać, że podczas korzystania z Instant Run występują pewne problemy podczas instalacji na urządzeniach <5.0. Jeśli zauważysz, że aplikacja ulega awarii na urządzeniach z KitKata i niższych, wyłącz natychmiastowe uruchamianie i ponownie go skompiluj. Powinieneś być dobry.
Vamsi Challa,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.