Android poradnik 4 – Konfiguracja emulatora Androida

androidpngTestowanie tworzonych aplikacji możliwe jest na dołączonym do SDK emulatorze. Porównując emulator z prawdziwym urządzeniem natkniemy się na kilka ograniczeń, np. wydajnościowe, funkcjonalne. Zaletą jednak jest stworzenie praktycznie dowolnej konfiguracji sprzętowo-programowej emulatora (dowolna rozdzielczość, pamięć ram, wersja systemu Android. itd.). W poradniku tym skupię się na stworzeniu i uruchomieniu emulatora oraz dodatkowo jego konfiguracji zoptymalizowanej na komputery z procesorem Intel.

1. Intel® HAXM

Intel Hardware Accelerated Execution Manager (Intel® HAXM) jest technologią wirtualizacji wykorzystującą Intel Virtualization Technology (Intel® VT) do przyśpieszenia działania emulatora Androida. Wymagane jest posiadanie procesora ze wsparciem dla Intel VT-x, EM64T, oraz Execute Disable Bit. Kompatybilność z tymi funkcjami można sprawdzić na tej stronie. HAXM dostępny jest na większość systemów (Windows od 7, Mac OS od 10.6 oraz Ubuntu). Osoby z niekompatybilnym komputerem powinny przejść do punktu 2. Plik instalacyjny można znaleźć na stronie Intela lub w katalogu sdk\extras\intel\Hardware_Accelerated_Execution_Manager\ po uprzednim pobraniu za pomocą SDK Manager.

Instalacja jest prosta i nie wymaga dodatkowej konfiguracji, dla dociekliwych szczegółowa instalacja krok po kroku znajduje się na stronie Intela.

2. Pobieranie obrazów emulatora

W celu instalacji nowych i aktualizacji starych obrazów emulatorów wykorzystuje się SDK Manager. Sposobów jego uruchomienia jest kilka. Najprostszym jest ikonka na pasku Android Studio:

Screen Shot 2014-05-01 at 14.15.05

Innym sposobem jest jego bezpośrednie wywołanie. W zależności od wersji i konfiguracji można go wywołać przez:

  • C:\developer\android-studio\sdk\SDK Manager.exe (analogicznie w przypadku instalacji w innej lokalizacji)

Jeśli tego pliku nie ma, można wywołać:

  • C:\developer\android-studio\sdk\tools\android.bat (analogicznie w przypadku instalacji w innej lokalizacji)

Bez tytułu2

Mamy możliwość pobrania emulatorów w wersji Androida od 1.5 do najnowszej (na chwilę obecną) 4.4.2. Po rozwinięciu danej wersji mamy do wyboru kilka obrazów (ang. System Image). Przede wszystkim rozróżniane są względem użytej architektury procesora (x86, ARM, mips). Dodatkowo każda wersja występuje w wersji zwykłej lub Google APIs (zostało to rozdzielone ze względów zamkniętego dostępu do kodu usług stworzonych przez Google (np. Google Play Service, itd.).

Które wybrać?

  • Jeśli planujemy wykorzystać jeden z mechanizmów Google (mapy, autoryzacja G+, itp.) wybierz wersje z dopiskiem Google APIs.
  • Co do wariantu architektury: ARM jest najczęściej spotykany w urządzeniach mobilnych, a wersja x86 (po zainstalowaniu Intel® HAXM) działa dość płynnie na komputerach.
  • Wersji poniżej 2.3.3 nie opłaca się już testować (około 1% popularności i ciągle spada).

 

3. AVD Manager

Do tworzenia i edycji emulatorów wykorzystuje się Android Virtual Device Manager. Sposobów jego uruchomienia jest kilka. Najprostszym jest ikonka na pasku Android Studio:

Screen Shot 2014-05-01 at 20.45.08

Innym sposobem jest jego bezpośrednie wywołanie. W zależności od wersji i konfiguracji można go wywołać przez:

  • C:\developer\android-studio\sdk\AVD Manager.exe (analogicznie w przypadku instalacji w innej lokalizacji)

screen046

4. Tworzenie emulatora

Mamy dwie możliwości tworzenia emulatora, samemu wybierając wszystkie opcje klikając New… w zakładce Android Virtual Devices. Drugą opcją jest wykorzystanie presetów ustawień (na podobieństwo urządzeń z serii Nexus) w zakładce Device Definitions wybierając interesujące nas urządzenie i klikając Create AVD…:

screen047W obu przypadkach mamy do dyspozycji wiele ustawień. Jedynym ograniczeniem jest maksymalny rozmiar pamięci ram 768MB dla systemu Windows, pozostałe opcje zależą tylko od naszych preferencji:

screen048

W przypadku Intel® HAXM należy pamiętać o zaznaczeniu CPU/ABI na Intel Atom (x86).

5. Uruchamianie emulatora

Pierwsze uruchomienie trwa dość długo, dlatego należy uzbroić się w cierpliwość. Aby przyśpieszyć uruchamianie w konfiguracji warto zaznaczyć Snaphot aby zapisać stan emulatora.

emulator

 

W okienku postępu zostanie wyświetlona informacja w jakim trybie został uruchomiony emulator. W przypadku komputerów  ze zgodnym procesorem, poprawnej instalacji HAXM oraz wybraniu procesora x86 powinniśmy ujrzeć „HAX is working and emulator runs in fast virt mode:

screen052

Jeśli popełniliśmy jakiś błąd ujrzymy „Failed to open the HAX device! HAX is not working and emulator runs in emulation mode„:screen053

6 thoughts on “Android poradnik 4 – Konfiguracja emulatora Androida

  1. Witam co robić kiedy mam tako problem z „preview”

    Rendering Problems The following classes could not be instantiated:
    – android.support.v7.widget.Toolbar (Open Class, Show Exception)
    Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE Exception Details java.lang.NoSuchFieldError: View_theme   at android.support.v7.internal.widget.ViewUtils.themifyContext(ViewUtils.java:124)   at android.support.v7.widget.Toolbar.(Toolbar.java:198)   at android.support.v7.widget.Toolbar.(Toolbar.java:192)   at java.lang.reflect.Constructor.newInstance(Constructor.java:422)   at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)   at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)   at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809)   at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)   at android.view.LayoutInflater.inflate(LayoutInflater.java:504)   at android.view.LayoutInflater.inflate(LayoutInflater.java:414)   at com.android.layoutlib.bridge.bars.BridgeActionBar.(BridgeActionBar.java:84)   at com.android.layoutlib.bridge.bars.AppCompatActionBar.(AppCompatActionBar.java:56) Copy stack to clipboard

  2. 1. Zaktualizować android studio i wszystkie biblioteki
    2.W podglądzie pozmieniać ustawienia (np. API z 22 na 21)
    3. Pobawić się minSdkVersion w build.gradle
    4. Nie sugerować się podglądem;)

  3. emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAX kernel module is not installed!

    Co zrobić z takim problemem? coś musze źle robić bo i na laptopie i na stacjonarnym mam ten sam problem :/

  4. Witaj,

    Błąd, który przytoczyłeś, może być spowodowany jedną z 2 rzeczy:
    1) nie zainstalowałeś programu HAXM (tu instalki dla Windows i Mac https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager dla ubuntu: https://software.intel.com/en-us/blogs/2012/03/12/how-to-start-intel-hardware-assisted-virtualization-hypervisor-on-linux-to-speed-up-intel-android-x86-emulator) lub szybciej your_sdk_folder\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm.exe (musisz to pobrac w sdk managerze)

    2) twój procesor jest na tyle stary, że nie wspiera wirtualizacji (możesz to sprawdzić np. dla Intela http://www.intel.com/support/processors/sb/cs-030729.htm)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *