Dzięki czemu emulator Androida działa szybciej

Emulator Androida jest trochę powolny. W przypadku niektórych urządzeń, takich jak Motorola Droid I Nexus One, aplikacja działa szybciej w rzeczywistym urządzeniu niż emulator. Jest to problem podczas testowania gier i efektów wizualnych.

Jak sprawić, by emulator działał jak najszybciej? Bawiłem się jego parametrami, ale nie znalazłem konfiguracji, która pokazuje zauważalną poprawę.

Author: hpique, 2010-04-18

20 answers

Oficjalna strona

~50% faster

Windows:

  • zainstaluj "Intel X86 Emulator Accelerator (HAXM)" = > SDK-Manager / Dodatki
  • zainstaluj "obrazy systemu Intel X86 Atom" = > SDK-Manager/Android 2.3.3
  • Przejdź do folderu głównego Android SDK i przejdź do extras\intel\Hardware_Accelerated_Execution_Manager. Uruchom plik IntelHaxm.exe do instalacji. (w Android Studio można przejść do: Ustawienia - > Android SDK - > narzędzia SDK - > Intel X86 Emulator Accelerator (HAXM installer))

  • Tworzenie AVD z procesorem "Intel atom x86" / ABI

  • Uruchom emulator i sprawdź w konsoli, że HAXM działa (Otwórz okno wiersza polecenia i wykonaj polecenie: SC query intelhaxm)

Tutaj wpisz opis obrazka

Również nie zapomnij zainstalować tego

Tutaj wpisz opis obrazka

P. S. podczas tworzenia AVD dodaj pamięć emulacji: Hardware / New / Device RAM size / set up value 512 or więcej

Linux:

  • zainstaluj KVM: Otwórz GOOGLE, napisz "instalacja kvm"
  • Tworzenie AVD z procesorem" Intel atom x86 " / ABI
  • Uruchom z linii poleceń: emulator-avd avd_name-qemu-M 512-enable-kvm
  • lub uruchom z Eclipse: Uruchom / Uruchom konfiguracje / Zakładka "Target" - > sprawdź Intel x86 AVD i w oknie "Additional Emulator Command Line Options" dodaj:- qemu-M 512-enable-kvm (kliknij Uruchom)

Tutaj wpisz opis obrazka

P. S. dla Fedory, na Ubuntu

OS-X:

  • w Menedżerze SDK Androida zainstaluj obraz systemu Intel X86 Atom
  • W aplikacji Android SDK Manager zainstaluj Intel X86 Emulator Accelerator (HAXM)
  • w Finderze przejdź do lokalizacji instalacji akceleratora emulatora Intel i zainstaluj IntelHAXM (otwórz dmg i uruchom instalację). Możesz znaleźć lokalizację, umieszczając kursor myszy nad wpisem akceleratora emulatora w Menedżerze SDK.
  • Utwórz lub zaktualizuj AVD i określ Intel Atom x86 jako procesor. Intel X86 Emulator Accelerator (HAXM) wyświetlanie lokalizacji

P. S: sprawdź to narzędzie, bardzo wygodne nawet trial

 216
Author: zest,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-18 14:48:44

Aktualizacja: teraz, gdy obraz Intel x86 jest dostępny, najlepszą odpowiedzią jest zest powyżej.

Jak słusznie zauważył CommonsWare, emulator jest powolny, ponieważ emuluje PROCESOR ARM, który wymaga tłumaczenia na opcodes Intela. Ta wirtualizacja żuje procesor.

Aby emulator był szybszy, trzeba dać mu więcej CPU. Zacznij od szybkiego procesora lub uaktualnij, jeśli możesz.

Następnie daj emulatorowi więcej procesora jaki masz:

  1. Wyłącz Hyperthreading - ponieważ emulator nie wydaje się wykorzystywać więcej niż jeden rdzeń, hyperthreading faktycznie zmniejsza ilość całkowitego czasu procesora emulator będzie uzyskać. Wyłączenie HT spowolni aplikacje wykorzystujące wiele procesorów. Hyperthreading musi być wyłączony w BIOSie.
  2. spraw, aby emulator działał na CPU innym niż CPU 0 - ma to znacznie mniejszy wpływ niż wyłączenie HT, ale pomaga niektórym. W systemie Windows możesz określić, na którym proces będzie działał. Wiele aplikacji żuje CPU 0, a domyślnie emulator działa na CPU 0. Zmieniam emulator, aby działał na ostatnim. Zauważ, że na OS X nie można ustawić powinowactwa (zobacz: https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac).

Widzę gdzieś około 50% poprawę z tych dwóch zmian w miejscu.

Aby ustawić powinowactwo procesora w Windows 7:

  1. Open Task Manager
  2. Kliknij wyświetl wszystkie procesy (aby uruchomić jako administrator, w przeciwnym razie nie można ustawić powinowactwa procesora)
  3. Kliknij prawym przyciskiem myszy na emulatorze.exe i wybierz Ustaw powinowactwo...
  4. w oknie dialogowym Ustaw powinowactwo wybierz tylko ostatni procesor

Uwaga: Kiedy zmieniasz powinowactwo w ten sposób, zmienia się ono tylko na cały okres trwania procesu. Następny start, musisz zrobić to jeszcze raz.

Tutaj wpisz opis obrazka

 34
Author: mcohen75,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 10:18:14

Chciałbym zaproponować Genymotion obrót. Działa w VirtualBox Oracle i legalnie trafi 60 fps na umiarkowanym systemie.

[[0]} oto screencap z jednego z moich warsztatów, uruchomiony na niskim modelu MacBook Air 2012:

Emulator Nexus 7 działający z prędkością 56.6 fps

Jeśli nie możesz odczytać tekstu, jest to emulator Nexus 7 działający z prędkością 56.6 fps. Dodatkowy (duży!) bonus polega na tym, że usługi Google Play i Google Play są pakowane wraz z maszynami wirtualnymi.

(źródło demoed animacji można znaleźć tutaj.)

 16
Author: Paul Lammertsma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-11 16:40:26

Włącz akcelerację sprzętową GPU (oprócz HAXM firmy Intel), jeśli używasz API 15 V3 lub nowszego i SDK Tools v17+. Przyspieszanie grafiki dla emulatora wykorzystuje sprzęt graficzny komputera deweloperskiego, w szczególności jego procesor graficzny (GPU), aby przyspieszyć rysowanie ekranu. Daje to zauważalny wzrost prędkości.

Aby włączyć domyślnie akcelerację grafiki na emulatorze: podczas tworzenia AVD, w sprzęcie Sekcja, Kliknij Nowy, wybierz emulację GPU i ustaw wartość na tak.

Aby włączyć akcelerację tylko w czasie wykonywania : Użyj flagi-gpu podczas uruchamiania emulatora w następujący sposób:

emulator -avd <avd_name> -gpu on

Źródło: Google używa emulatora tutorial.

 11
Author: John Lehmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-28 19:21:20

Edytuj chociaż korzystanie z obrazów Intel zwiększa wydajność, wydajność uzyskana dzięki użyciu Genymotion jest znacznie większa. Zobacz odpowiedź Paula Lammertsmy .

Poprzednia Odpowiedź

Z ADT rev 17 emulator obsługuje uruchamianie obrazów systemu x86 w trybie wirtualizacji w systemach Windows i Mac OS X. ma to zauważalny wpływ na wydajność.

ADT rev 17 Przypisy: http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html

Konfigurowanie Akceleracji Maszyny Wirtualnej: http://developer.android.com/guide/developing/devices/emulator.html#accel-vm

 9
Author: ThomasW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:53

Niedawno przesiadłem się z core 2 @ 2.5 z 3GB ram na i7 @ 1.73 z 8GB ram (oba systemy działały Ubuntu 10.10) i emulator działa teraz co najmniej dwa razy szybciej. Rzucanie więcej sprzętu na pewno pomaga.

 7
Author: TripleG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-01 05:43:39

Chciałem tylko powiedzieć, że po zainstalowaniu akceleratora Intel HAXM i użyciu obrazu Intel Atom emulator wydaje się działać 50 razy szybciej. Różnica jest niesamowita, sprawdź to!

Http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html

 6
Author: sonicboom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-30 15:31:38

Zauważyłem, że emulator domyślnie jest tylko rdzeń 0, gdzie większość aplikacji Windows będzie domyślnie "dowolny" rdzeń. Ponadto, jeśli umieścisz go na innym rdzeniu (jak ostatni rdzeń), może to sprawić, że emulator oszaleje. Jeśli możesz, Możesz spróbować umieścić swoje aplikacje o dużym obciążeniu procesora na innych rdzeniach PROCESORA, aby zwiększyć prędkość.

Sprzętowo, zdobądź najszybszy procesor, który działa dla aplikacji jednordzeniowych. Więcej niż 2 rdzenie mogą nie doświadczyć ogromnej różnicy pod względem wydajność emulatora.

Eclipse + emulator Androida razem zjadają tonę pamięci RAM. Polecam 3 gigs of RAM przynajmniej dlatego, że używałem systemu z 2 gigs of RAM, i zwolnił, ponieważ system skończył się RAM i zaczął używać pliku strony.

Wydaje mi się, że najlepsze procesory do niego będą prawdopodobnie miały wysoki zegar (używaj tylko zegara jako miary dla procesorów z tej samej serii btw), dobrze radzą sobie z operacjami non-SIMD i mają mechanizm turbo boost. Nie ma wielu Benchmarki oparte na Javie, ale ogólnie wyglądają na benchmarki aplikacji, takie jak kompresja i office. Nie patrz na gry lub media, ponieważ SIMD ma na nie duży wpływ. Jeśli znajdziesz Javę, to jeszcze lepiej.

 4
Author: Joe P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-09 02:53:38

W tym roku Google I / O (2011), Google zademonstrował szybszy emulator. Problem polega nie tyle na kodzie bajtowym pomiędzy ARM i x86, co na renderowaniu oprogramowania wykonywanym przez QEMU. Omijają renderowanie QEMU i wysyłają renderowanie bezpośrednio na serwer X, jak sądzę. Pokazali grę samochodową z naprawdę dobrym performace i fps.

Ciekawe kiedy to będzie dostępne dla programistów...

 3
Author: Cesar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-14 18:38:54

Google niedawno ogłosił nowy emulator dla Androida. Jest znacznie szybszy i lepszy od Starego. Więcej informacji na ten temat znajdziesz tutaj.

 3
Author: Koc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-17 08:41:06

Myślę, że to dlatego, że clr virtual machine używa procesora bezpośrednio bez tłumaczenia kodu opcode. Może to być optymalizacja dla aplikacji clr lub może być windows mobile/Windows phone 7 uruchomiony na procesorze INTEL. Platforma Android oparta na Linuksie i teoretycznie można uruchomić Androida na maszynie wirtualnej w środowisku i686. W tym przypadku maszyny wirtualne, takie jak vmware, mogą bezpośrednio uruchamiać niektóre kody opcodes. Ale ta opcja będzie dozwolona tylko wtedy, gdy piszesz w Javie. Ponieważ Java interpretuje ich kod bajtowy lub prekompilować go przed wykonaniem. Zobacz też: http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks

 1
Author: assad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-20 19:30:25

Thank you @zest! Zadziałało jak zaklęcie. Kilka rzeczy na uwadze: trzeba zastosować hotfix Intela dla HAXM, aby poradzić sobie z problemem kernel panic: http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager Pamiętaj również, że jeśli masz więcej niż jeden abi, musisz odinstalować jeden z powodu błędu w najnowszej wersji Android API (r19): https://code.google.com/p/android/issues/detail?id=66740 (Usuń armeabi-v7a w tym przypadku, ponieważ chcesz x86 abi). Poza 45-minutami, które zajęło mi rozwiązanie tych problemów, było to bardzo satysfakcjonujące ćwiczenie pod względem zwiększonej wydajności emulatora.

 1
Author: horcle_buzz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-10 01:36:00

Oh the asylum...ten prowadzony przez szaleńców...biada mi...

Na moim blogu jest dość obszerna odpowiedź http://tenacious33.wordpress.com/2012/04/05/improving-android-emulator-performance/

Zajmę się "trybem przyspieszonym R17" w moim poście na blogu za tydzień lub dwa. Lista zastrzeżeń związanych z nim nie wzbudza zaufania ani dumy.

 0
Author: Tenacious,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-06 00:17:36

Używam procesora Intel(86) / ABI. Stworzyłem kolejny emulator przy użyciu ARM(armeabi-v7a)i znalazłem sporą poprawę z prędkością. Używam platformy 4.1.2 API level 16

 0
Author: strange_developer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-27 08:47:35

Alternatywą dla emulatora jest maszyna wirtualna AndroVM, która działa znacznie szybciej niż emulator i obsługuje akcelerację OpenGL:

Http://androvm.org/

Anegdotycznie, czuję, że działa szybciej niż rzeczywiste Urządzenia z Androidem.

 0
Author: Joel Malone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-18 03:12:30

Mam nadzieję, że to ci pomoże.

Goto to your BIOS settings. Enable your Virtualization technology in your settings..

To rozwiązało mój problem...
 0
Author: RajeshVijayakumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-25 05:11:02

Zaktualizuj swoje obecne Android Studio do Android Studio 2.0, a także zaktualizuj obrazy systemu.

Emulator Android Studio 2.0 działa ~3x szybciej niż poprzedni emulator Androida, a dzięki ulepszeniom ADB możesz teraz przesyłać aplikacje i dane 10x szybciej do emulatora niż do fizycznego urządzenia. Podobnie jak urządzenie fizyczne, oficjalny emulator Androida zawiera również wbudowane usługi Google Play, dzięki czemu można przetestować więcej funkcji API. Wreszcie, nowy emulator ma bogate nowe funkcje do Zarządzaj połączeniami, baterią, siecią, GPS i innymi.
 0
Author: Umar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-09 08:50:55

Możesz również wypróbować Emulator Visual Studio Android , który można również zainstalować jako samodzielny emulator (nie potrzebujesz Visual Studio). Należy pamiętać, że można go zainstalować tylko na systemach Windows Pro lub nowszych.

 0
Author: David Dostal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-30 10:47:56

Użyj Genymotion zamiast emulatora. Genymotion ma lepszą wydajność https://www.genymotion.com

 0
Author: Oleg Tarashkevich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-06 06:42:39

Wybierz emulator niskiej rozdzielczości (np: Nexus S) Jeśli nie masz dobrej karty graficznej (jak ja)

 0
Author: Dan Alboteanu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 13:39:19