HAXM
In dieser Lektion sind Schritte zur Beschleuning des Emulators mit HAXM kurz beschrieben. Da die Schritte hier nur kurz beschrieben sind, richtet sich diese Lektion eher an fortgeschrittenere Leser. Der Emulator kann auch ohne HAXM verwendet werden, eventuell ist er dann etwas langsamer.
Der Android -Emulator kann durch eine Hardware-Unterstützung beschleunigt werden.
Um diese Unterstützung zu aktivieren, sind die folgenden Schritte zu durchlaufen:
HAXM-Software
Zunächst einmal muß die Intel-HAXM-Software für die Hardware-Beschleunigung auf dem Rechner installiert werden. Diese Software sollte nach der ersten Installation gelegentlich aktualisiert werden (auf dem neusten Stand gehalten werden).
Eine geeignete Datei war beispielsweise die folgende:
- Datei (relativ klein)
http://dl.google.com/android/repository/extras/intel/haxm-windows_r05.zip
Es sollte aber nach der neuesten Revision dieser Software gesucht werden und dann diese installiert werden.
Im ZIP-Archiv findet sich die folgende Datei.
- Datei
intelhaxm.exe
Falls die Software nicht installiert werden kann, könnte dies daran liegen, daß die Unterstützung für die Hardware-Beschleunigung noch in den BIOS-Einstellungen freigeschaltet werden muß.
Falls dies nicht möglich ist oder die Software dann immer noch nicht installiert werden kann, könnte es auch sein, daß der im physikalischen Rechner vorhandenen Prozessor eine HAXM-Hardware-Beschleunigung gar nicht unterstützt. Informationen dazu können dem Datenblatt des Prozessor-Herstellers entnommen werden.
Emulator-x86
Eine Datei wie »sysimg_x86_64-22_r01.zip«-Datei ist zu beschaffen und zu entpacken. Bei einem 32-Bit-Betriebssystem entfällt »_64«, die Versionsnummern im Dateinamen sind an das verwendete SDK anzupassen, weiterhin ist normalerweise die neueste Revision zu verwenden. Pfade waren beispielsweise:
- Dateien (relativ groß)
http://dl.google.com/android/repository/sys-img/x86/sysimg_x86-18_r09.zip
http://dl.google.com/android/repository/sys-img/android/sysimg_x86_64-22_r01.zip
http://dl.google.com/android/repository/sys-img/android/sysimg_x86_64-22_r05.zip
Das im Archiv enthaltene Verzeichnis »x86_64« wird nun in das folgende Ziel kopiert; dorthin, wo sich vielleicht auch schon »armeabi-v7a« befindet.
- Ziel
%LOCALAPPDATA%\android-sdk_r24.0.2-windows\android-sdk-windows\system-images\android-22
Anpassen von »Please.java«
Nun sind in der Datei »Please.java« die folgenden Änderungen vorzunehmen:
- entfernen
hw.cpu.arch=arm
- statt dessen einfügen
hw.cpu.arch=x86_64
- entfernen
out.println( "hw.cpu.model=cortex-a8\n" );
- entfernen
out.println( "image.sysdir…armeabi…" );
- statt dessen einfügen
out.println( "image.sysdir.1=system-images\\android-22\\x86_64\\\n" );
Sicherheitshalber sollte die bisherige »Please.class« gelöscht werden.
Anpassen von »20_first.cmd«
Nun sind in der Datei »20_first.cmd« die folgenden Änderungen vorzunehmen:
An das Ende der Zeile, die mit »CALL "%ANDROID_SDK%\tools\android.bat"« beginnt, sollte angefügt werden: » --abi x86_64«.
Anschließend kann die Datei »20_first.cmd« gestartet werden.
Eine eventuelle Fehlermeldung »Invalid --abi x86_64 for the selected target« kann anscheinend ignoriert werden, denn nach dem Start des Emulators erscheint auf der Konsole »HAX is working and emulator runs in fast virt mode«.
Alternativ könnte auch versucht werden, den Ordner »armeabi-v7a« aus
%LOCALAPPDATA%\android-sdk_r24.0.2-windows\android-sdk-windows\system-images\android-22
zu entfernen, so daß der Emulator dort nur das Verzeichnis »x86_64« findet. Dann wäre die Angabe »--abi x86_64« möglicherweise nicht nötig.