Der Android-Emulator ist in Android Studio enthalten.
Versionen des Emulators vor 25.3.0 wurden als Teil der Android SDK-Tools vertrieben.
Prüfen Sie im SDK Manager, ob Sie die neueste Version verwenden.
Frühere Versionen des Android-Emulators finden Sie im Emulator-Downloadarchiv.
Versionshinweise zu Emulatorversionen vor 25.3.0 finden Sie in den Versionshinweisen zu Android SDK-Tools.
Informationen zu bekannten Problemen und zur Fehlerbehebung finden Sie unter Fehlerbehebung für den Emulator.
35.2.10 (1. Oktober 2024)
- Neue Pixel-AVDs hinzugefügt, darunter Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL und Pixel 9 Pro Fold
- Neues Tablet-System-Image für Vanilla Ice Cream (API 35) hinzugefügt
35.1.20 (29. August 2024)
- Pixel 8a-AVD hinzugefügt
- Diverse Fehlerkorrekturen für faltbare Smartphones
- Qt-Update und Fehlerkorrekturen im Zusammenhang mit Abstürzen und Verzögerungen von Qt
- [Fehlerbehebung] Behebung von Abstürzen und Einfrieren unter Windows bei Anwendungen, die Vulkan verwenden
34.2.16 (9. Juli 2024)
- [Fehlerkorrektur] Beim Auf- und Zuklappen von Pixel Fold bleibt die Benutzeroberfläche hängen
- [Fehlerkorrektur] Die Android-Version wurde auf Mac M1 fälschlicherweise als Android Vanilla Ice Cream Preview statt als API 35 angezeigt.
- [Fehlerkorrektur] Problem #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE gibt im Pixel C-Tablet-Emulator „wahr“ zurück
34.2.15 (31. Mai 2024)
- Mehrere Fehlerkorrekturen im Zusammenhang mit dem Swangle-Modus und der Bereinigung von Werbetreibenden
34.2.14 (20. Mai 2024)
Mit Android Studio Jellyfish Stable Patch 1 getestet.
- [Fehlerbehebung] Snapshot hängt manchmal im eingebetteten Emulator
- [Fehlerkorrektur] Die Schaltflächen „Nein“ und „Abbrechen“ funktionieren im Snapshot nicht richtig
- [Fehlerbehebung] Die Richtungstasten funktionieren nicht
- [Fehlerbehebung] Das Problem wurde behoben, das unter Windows dazu führte, dass der Emulator unter bestimmten Bedingungen nicht gestartet werden konnte, wenn GPU-Modi mit ANGLE verwendet wurden, und die Fehlermeldung „Failed to initialize GL emulation“ (GL-Emulation konnte nicht initialisiert werden) im Protokoll zurückgegeben wurde. Wenn Sie den Emulator über die Befehlszeile mit der Option
-gpu swangle_indirect
starten, wird dieser Fehler möglicherweise auch mit dieser Version generiert. Wenn Sie den Emulator mit dieser Version weiterhin über eine Befehlszeile unter Windows mit Software-Grafikrendering starten möchten, verwenden Sie-gpu swiftshader_indirect
. - [Fehlerbehebung] Durch die Tastenkombination für die Standortsuche auf der Tastatur wird eine unbrauchbare Karte geladen
- [Fehlerbehebung] Beim Festlegen des Standorts fehlt das Dialogfeld „Route speichern“
34.2.13 (30. April 2024)
Getestet mit Android Studio Jellyfish Stable.
- Update auf Qt 6.5.3
- Kompatibilität mit den Google Maps API-Updates, die Ende Mai in den Standortfunktionen in den erweiterten Steuerelementen des Emulators verwendet werden.
- Wichtige Fehlerkorrekturen
- Verschiedene Fehlerkorrekturen für Pixel-AVDs
- Grafikbibliothek für das Software-Rendering aktualisieren
- [Fehlerkorrektur]Problem 225541819 Starten des Chrome-Absturz-Emulators unter x86_64
- [Fehlerkorrektur]Problem 314614435
-http-proxy
-Switch wurde falsch geparst.
34.1.20 (1. April 2024)
Getestet mit Android Studio Iguana Stable.
- [Fehlerkorrektur] Problem #314614435: Problem behoben, durch das der Schalter
-http-proxy
falsch geparst wurde
34.1.19 (7. März 2024)
Mit Android Studio Iguana Stable getestet.
- [Fehlerkorrektur] Problem Nr. 312677259: Einfrieren des Bildschirms im eingebetteten Emulator nach der Größenanpassung des Fensters wurde behoben.
34.1.18 (29. Februar 2024)
Getestet mit Android Studio Iguana Stable.
- Dem Emulator wurden folgende Geräte hinzugefügt:
- Google Pixel Fold
- Pixel Tablet
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel 7a
- gRPC-Integrationstest: gRPC-Endpunkte sind jetzt für instrumentierte Tests verfügbar, die im Emulator ausgeführt werden und realistische Szenarien ermöglichen. Mit dieser Funktion können Entwickler innerhalb von Android-Instrumentierungstests sicher mit dem vom Android-Emulator gehosteten gRPC-Endpunkt interagieren.
- Diverse Fehlerkorrekturen
- Fehlerkorrektur: Verbesserungen bei der Nutzerfreundlichkeit von faltbaren Geräten
- Fehlerbehebung: Position des Emulators nach der Drehung anpassen
- Korrekturen von Abstürzen
33.1.24 (28. Dezember 2023)
Getestet mit Android Studio Hedgehog Stable und Iguana Beta 1.
- Problem mit der Webcam des Emulators behoben, bei dem Bildschirmaufzeichnungen im MP4-Format nicht zulässig sind
- Der Absturz des Emulators beim Aufklappen des Pixel Fold AVD während einer Bildschirmaufzeichnung wurde behoben.
- Problem behoben, bei dem Pixel Fold bei getrennter Tastatur ein anderes Design für das Smartphone anzeigt und nicht verwendbar ist (Fehler unter Windows, Mac Intel und Linux behoben)
- Ein Fehler bei der Darstellung der virtuellen Sensoren im Standalone-Modus wurde behoben (unter Windows, Mac Intel und Linux)
- Einige Abstürze, insbesondere beim Schließen des Emulators, wurden behoben.
33.1.23 (30. November 2023)
Getestet mit Android Studio Giraffe Patch 4 und Hedgehog Stable.
- Neue faltbare Implementierung zur besseren Emulation von Pixel Fold, funktioniert mit der neuesten API 34
- Grafik-Backend-Upgrade: Wir haben das gfxstream-Protokoll für unser Grafik-Backend implementiert. Diese Verbesserung erhöht die Grafikleistung und Stabilität Ihres Systems insgesamt. Neu: Unterstützung von Vulkan 1.3, beginnend mit System-Image mit API 34
- Funktionsanfrage: Option zum Deaktivieren der Touch-Geste zum Zoomen auseinander- und zusammenziehen oder zur Neuzuweisung des Hotkeys
- [Fehlerbehebung] Problem #302562962: Absturz der Webcam des Emulators bei Verwendung von macOS Sonoma behoben
- [Fehlerbehebung] Problem #293503871: Problem behoben, durch das die Einstellung „Mikrofon“ nicht gespeichert wurde, wenn der Emulator neu gestartet wurde
- [Fehlerkorrektur] Problem #270386314: Animationsfehler behoben, bei dem die Seitenleiste geöffnet bleibt, nachdem der AVD-Bildschirm minimiert wurde
- [Fehlerkorrektur] Problem #154896775 Tool zum Einreichen von Fehlern behoben
32.1.15 (29. August 2023)
Getestet mit Android Studio Giraffe Patch 1 und Hedgehog Canary 16.
- GAS-Hardwareanforderungen für Sensoren im AAE-Emulator erfüllen
- [Fehlerkorrektur] Problem #266201208: Hebräische SMS werden über API 33 nicht gesendet
- [Fehlerbehebung] Problem #257097404: Der Emulator zeigt nach dem Aufwecken des Hosts unter API 29 und 30 nicht die richtige Uhrzeit an
- [Fehlerbehebung] Problem #228201899: Google Maps wird in den erweiterten Steuerelementen des Android-Emulators nicht angezeigt
32.1.14 (27. Juni 2023)
Getestet mit Android Studio Hedgehog Canary 8, Giraffe Beta 5 und Flamingo Stable.
- Kameraausrichtung und -verzerrungen des Emulators korrigieren
- [Fehlerkorrektur] Problem #257097404 "Der Emulator zeigt nach der Aktivierung des Hosts nicht die richtige Zeit an." Dieser Fehler ist für API 29 und API 30 weiterhin reproduzierbar.
- [Fehlerbehebung] Problem #243456582: „Android-Releases nach API 30 werden auf Mac M1-Computern möglicherweise nicht richtig im Emulator gestartet“
32.1.13 (22. Mai 2023)
Getestet mit Android Studio Hedgehog Canary 2, Giraffe Beta 1 und Flamingo Stable.
- Unterstützung für AVDs von Pixel Fold und Pixel Tablet hinzufügen
- gLinux-Absturzproblem verbessern
- [Fehlerbehebung] Problem 215231636: „Emulator mit API über API 30 funktioniert nicht auf Intel-Prozessoren der 12. Generation“.
- [Fehlerkorrektur] Problem 275397905: Häufige Abstürze des Android Emulators M1, wenn der Cursor wiederholt zwischen dem Emulator und anderen Fenstern bewegt wird.
- Bekanntes Problem beim Starten einer AVD Problem 281725854 Weitere Informationen finden Sie unter Fehlerbehebung für den Emulator.
32.1.12 (21. März 2023)
Getestet mit Android Studio Giraffe Canary 10, Flamingo RC und Electric Eel Patch 2.
- [Fehlerbehebung] Problem #267647323: Netzwerk funktioniert nicht in einem Emulator, der über Android Studio gestartet wurde
- [Fehlerkorrektur] Problem #268498686: Der Emulatorbildschirm flackert
- [Fehlerkorrektur] Problem #270034824: Die Emulatorleistung hat sich nach dem Upgrade auf Version 33.1.1 verschlechtert
- [Fehlerbehebung] Problem #225541819: Beim Starten von Chrome stürzt der Emulator unter x86_64 ab
- [Fehlerbehebung] Problem #257097404 Der Emulator zeigt nach dem Aufwecken des Hosts nicht die richtige Uhrzeit an
- Absturzberichte für Apple M1-Geräte hinzufügen
32.1.11 (8. Februar 2023)
Getestet mit Android Studio Giraffe Canary 2, Flamingo Beta 1 und Electric Eel Patch 1.
- Netzwerkgeschwindigkeit optimieren
- Mausunterstützung im eingebetteten Emulator
- Verbesserungen bei Virtio-snd
- Verwendung von Symlinks beim Entpacken des Android-Emulators während der Installation deaktivieren
- Absturz in Emulatorprüfung beheben
31.3.14 (13. Dezember 2022)
Getestet mit Android Studio Dolphin, Electric Eel RC1 und Flamingo Canary 9.
- [Fehlerbehebung] AVD-Abstürze beim Anmelden im Play Store wurden behoben.
31.3.13 (27. Oktober 2022)
Getestet mit Android Studio Dolphin, Electric Eel Beta 2 und Flamingo Canary 5.
- [Fehlerbehebung] Problem #249948338:Der Zeitzonenparameter funktioniert nicht
- [Fehlerbehebung] Problem #249366543:Die Option „emulator -dns-server“ funktioniert nach API 31 nicht mehr
31.3.12 (10. Oktober 2022)
Getestet mit Android Studio Dolphin und Electric Eel Beta 1.
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- [Fehlerkorrektur] Problem Nr. 247843000: Fehler bei der relativen AVD-Pfadbehandlung
- Laufwerkgröße für API 24 und höher erhöhen
31.3.11 (23. September 2022)
Getestet mit Android Studio Dolphin und Electric Eel Canary 10.
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- [Fehlerkorrektur] Eingebetteter Emulator-AVD stürzt im Fenster „Erweiterte Steuerelemente“ ab
- [Fehlerkorrektur] Problem #183139207:Audioprobleme im Zusammenhang mit der Aktivierung des Mikrofons durch den Emulator
- [Fehlerkorrektur] Problem #229764024:Fehler bei der Touchbedienung in AVDs, der zu Problemen mit dem Verhalten der Benutzeroberfläche führt
- [Fehlerbehebung] Fehler beim Starten einer API 33-AVD auf einem Mac M1.
- [Fehlerkorrektur] Problem #243053479: Langsame Netzwerkgeschwindigkeit nach Aktualisierung des Emulators
- [Fehlerbehebung] Problem #244617627:Der Standort in Google Maps funktioniert unter Windows und Linux nicht
- [Fehlerkorrektur] Problem #232971796:Die Schaltfläche „Gerät anrufen“ auf der Seite „Erweiterte Einstellungen“ > „Telefon“ funktioniert nicht.
- Android-Emulator auf minigbm aktualisieren
- Migration von Build-Scripts zu Python 3
31.3.10 (18. August 2022)
Getestet mit Android Studio Dolphin Beta 5 und Electric Eel Canary 9.
Es sind jetzt eigenständige Downloads des Emulators verfügbar. Wenn bei dieser neuesten stabilen Version Probleme oder Abstürze auftreten, melden Sie bitte einen Fehler und laden Sie gegebenenfalls eine zuvor funktionierende Version aus den Emulator-Downloadarchiven herunter.
Dieses Update enthält folgende Verbesserungen und Fehlerkorrekturen:
- Bessere Unterstützung von Unicode-Pfaden unter Windows
- Bessere Verwaltung des Emulator-Shutdowns, damit eine neue Ausführung derselben AVD erfolgreich sein kann.
- Aktualisiertes Design und Standardeinstellungen für faltbare AVDs
- Aktualisierte Schaltflächen für den Wear-Emulator
- Verbesserungen beim gRPC-Audiostreaming
- Emulator-Konsolenbefehl zum Ändern der Größe hinzugefügt
- Chrome-Fehlerkorrektur für API 31
- [Fehlerkorrektur] Google-Konto-Authentifizierung mit GmsCore-Version 21.42.18 fehlgeschlagen
31.2.10 (20. April 2022)
Getestet mit Android Studio Dolphin Canary 8 und Chipmunk RC 1.
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Dienstprogramm zum Laden von Vulkan-Funktionen mit Fallbacks hinzufügen
- [Fehlerkorrektur] Fehler beim gcc8-Build beheben
31.2.9 (23. März 2022)
Getestet mit Android Studio Dolphin Canary 7.
Dieses Update enthält die folgende Korrektur:
- [Fehlerkorrektur] Arbeitsspeichermangel beim Speichern eines Snapshots auf M1 ignorieren
31.2.8 (7. Februar 2022)
Getestet mit Android Studio Bumblebee Patch 1 und Chipmunk Canary 6.
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- [Fehlerbehebung] Anmeldung in den Apps nicht möglich
- [Fehlerbehebung] Problem #215368358: „adb reboot“ auf Intel-Plattform führt zum Absturz der virtuellen Android-Geräte mit der Meldung „vcpu shutdown request“
31.2.7 (1. Februar 2022)
Getestet mit Android Studio Bumblebee Patch 1 und Chipmunk Canary 6.
Dieses Update enthält folgende Korrektur:
- [Fehlerkorrektur] Fehler beim Anhängen des Emulators auf M1-Maschinen
31.2.6 (20. Januar 2022)
Getestet mit Android Studio Arctic Fox, Bumblebee Beta 4 und Chipmunk Canary 6.
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Wear OS-Emulatoren wurden Wear OS-Schaltflächen hinzugefügt.
- Alle Fahrzeugeigenschaften auf dem Tab „VHAL“ können bearbeitet werden.
- [Fehlerkorrektur] Google-Konto-Authentifizierung mit GmsCore-Version 21.42.18 fehlgeschlagen.
- [Fehlerkorrektur] Netshaper funktionierte nicht gut mit VirtioWifi.
- [Fehlerbehebung] Der Console-Befehl „event mouse“ funktionierte nicht.
- KVM-Prüfung für die lokale Erstellung von AVDs hinzugefügt
31.1.3 (18. Januar 2022)
Dieses Update enthält folgende Verbesserungen und Fehlerkorrekturen:
- Konsolenports für Fuchsia aktiviert.
- Wenn Sie die Größe eines Fensters mit mehreren Bildschirmen ändern, wird die Ausrichtung ignoriert.
- WLAN: Es wurde die Unterstützung für das Ausfiltern von Unicast-Paketen basierend auf der MAC-Adresse von MAT hinzugefügt.
- WLAN: Das Problem mit dem Absturz bei Verwendung von vmnet wurde behoben.
30.9.5 (15. Dezember 2021)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Neue Funktion zur einfachen Größenanpassung an ein Fenster in der Größe eines Desktops oder Tablets.
- Multi-Touch-Eingabe über kompatible Hostgeräte wird jetzt unterstützt.
- VirtioWifi: Unterstützung für das Tap-Netzwerk hinzugefügt.
- Drehknopf-Eingabe für Wear-System-Images aktiviert
- Das Problem mit der gRPC-Audiokonfiguration wurde behoben.
- Die SensorReplay-Emulatorwiedergabe wurde aktualisiert, um standardmäßige Android-Sensoren zu unterstützen.
- Verbinden Sie den Emulator über USB mit USB-Passthrough mit Peripheriegeräten und Geräten.
30.4.5 (23. Februar 2021)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- macOS: Probleme mit der Verzerrung der Audioeingabe wurden behoben.
- Unterstützung für virtio-vsock im Userspace hinzugefügt.
- Künftige System-Images verwenden virtio-console für Logcat- und Kernel-Nachrichten.
- Vulkan-Rendering beschleunigen
- Unterstützung für das Snapshot-Debugging bei einem Testfehler hinzugefügt.
- virtio-gpu: Definitionen wurden aktualisiert, um die neuesten Enumerationen für Blob-Ressourcen zu unterstützen.
- Unterstützung für Snapshots für den Grafiktransporttyp „asg“ hinzugefügt.
- macOS: Unterstützung für die Erstellung mit macOS SDK 11.1 und höher wurde hinzugefügt.
- KVMclock ist auf neueren System-Images standardmäßig aktiviert.
- Wear-Emulatoren unterstützen jetzt einen Herzfrequenzsensor.
- Das libportability-Vulkan-Backend wurde entfernt.
- Unterstützung für weitere Funktionen im Modemsimulator hinzugefügt.
30.0.26 (16. August 2020)
Dieses Update enthält mehrere neue Funktionen, Verbesserungen an bestehenden Funktionen und Fehlerkorrekturen.
Unterstützung für faltbare Geräte mit virtuellem Scharniersensor und 3D-Ansicht
Unterstützung für Scharniersensoren für faltbare Geräte. Dafür sind ein zukünftiges Android 11-System-Image und eine AVD-Konfiguration erforderlich. Die 3D-Ansicht und die Scharnierparameter für faltbare Geräte sind jetzt in die vorhandenen Voreinstellungen für faltbare Geräte integriert. Folgendes kann beispielsweise mit der
config.ini
-Datei des faltbaren AVDs 7.3 verwendet werden:hw.sensor.hinge = yes hw.sensor.hinge.count = 1 hw.sensor.hinge.type = 1 hw.sensor.hinge.ranges = 180-360 hw.sensor.hinge.defaults = 180 hw.sensor.hinge.areas = 54.7-0 hw.sensor.posture_list=4, 3 hw.sensor.hinge_angles_posture_definitions=210-360, 180-210 hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
Für faltbare Geräte gibt es jetzt auch einen Untertypparameter. Das
config.ini
-Attributhw.sensor.hinge.sub_type = hinge/fold
ist jetzt verfügbar. Weitere Informationen finden Sie im Blogpost Entwicklung für Android 11 mit dem Android-Emulator.Der Scharniersensor ist jetzt standardmäßig aktiviert.
Wenn ein faltbares Gerät konfiguriert ist, sendet der Emulator jetzt Updates zu Scharnierwinkelsensoren und Änderungen der Haltung an den Gast. Bei vorhandenen faltbaren Geräten werden der Winkel und die Position des Scharniersensors jetzt aktualisiert, wenn die Schaltflächen zum Auf- und Zuklappen in der Symbolleiste gedrückt werden.
Emulator für ARM64-Hosts
Der Linux-Emulator-Quellcode unterstützt jetzt die Cross-Kompilierung von x86_64- zu arm64-Hosts, sodass arm64-System-Images mit KVM-Virtualisierung ausgeführt werden können. Derzeit wird nur
-gpu swiftshader_indirect
(Swiftshader arm64-Host-Rendering) unterstützt. Es kann aber auch eine kompatible Gruppe von libEGL/libGLESv2-Bibliotheken für die Host-GPU verwendet werden. Dazu müssen Sie lib64/gles_swiftshader durch diese Bibliotheken ersetzen und dann mit-gpu swiftshader_indirect
neu starten. Möglicherweise funktionieren auch Snapshots nicht. Fügen Sie in diesem Fall-no-snapshot
zur Befehlszeile hinzu. Anleitung:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Apple Silicon wird derzeit unterstützt.
virtio-gpu-Unterstützung
- Unterstützung auf Hostseite für die kommenden virtio-gpu-host-kohärenten Blob-Ressourcen hinzugefügt.
- Aufgrund der Funktionsweise des Emulator-Renderings verarbeiten wir die Virtio-GPU-VirtQueue jetzt im VCPU-Thread, da das Rendering ohnehin auf andere Threads ausgelagert wird. Das Virtio-GPU-Rendering wird in einer zukünftigen System-Image- und Emulatorversion aktiviert.
- In einem zukünftigen System-Image kann der Emulator alle Grafiken mit einem Virtio-GPU-basierten Stack ausführen.
Weitere neue Funktionen und Verbesserungen
- USB-Passthrough ist jetzt unter Windows mit
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
verfügbar. (Dies sollte auch unter Linux und macOS bereits funktionieren.) - WebRTC-Bibliotheken auf M83 aktualisiert
- Der Emulator unterstützt jetzt das Audiostreaming in Containern über WebRTC.
- Der Darwinn-Pipe-Endpunkt wurde entfernt.
- Die CUDA VPx-Decodierung für Videos ist jetzt über die Umgebungsvariable
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
verfügbar, sofern die CUDA VPx-Decodierung auf der Hardware verfügbar ist. - Unter macOS sind SSE 4.1 und 4.2 jetzt im Android-Gast verfügbar.
- Unter macOS ist INVTSC jetzt standardmäßig aktiviert. Dies kann die Genauigkeit der Zeitmessungen der Gäste verbessern.
- Wir erfassen jetzt, welcher erweiterte Steuerbereich vom Nutzer in den Messwerten ausgewählt wurde.
- Der Linux-Emulator verwendet jetzt die paravirtualisierte KVM-Taktzeit, wenn die Gastkernelversion mindestens 5.4 ist (R-System-Images oder höher).
- Der Emulator verwendet jetzt LZ4 zum Dekomprimieren von Gastkerneln, wodurch er mit der modernen Kernel-Pipeline kompatibel ist.
Es wurden Konsolenbefehle hinzugefügt, um das AVD-Verzeichnis des Emulators, den Pfad der Discovery-Datei im eingebetteten Studio-Use-Case und den Pfad zu Snapshots abzurufen:
adb emu avd path # Obtains path to AVD directory adb emu avd discoverypath # Obtains path to discovery file adb emu avd snapshotspath # Obtains path to snapshots folder adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
Um den vertikalen Bildschirmbereich besser nutzen zu können, haben wir unter Erweiterte Steuerelemente > Einstellungen eine Option hinzugefügt, mit der sich der Geräterahmen für die aktuelle AVD ausblenden lässt. Um Geräteframes für alle AVDs global auszublenden, haben wir das
NoDeviceFrame
-Funktionsflag verfügbar gemacht. Es kann aktiviert werden, indem Sie den Emulator über die Befehlszeile mit dem Frame-feature NoDevice
starten. Wenn Sie es fixieren möchten, fügen SieNoDeviceFrame = on
zu~/.android/advancedFeatures.ini
hinzu. Erstellen Sie diese Datei, falls sie noch nicht vorhanden ist.Auf der Seite „Mobilfunk“ wurde ein Drop-down-Menü hinzugefügt, mit dem die Unterstützung der Begrenzung der Datennutzung aktiviert und deaktiviert werden kann. Bei älteren System-Images, die die Option für die Begrenzung der Datennutzung für 5G nicht unterstützen, ist diese Option nicht verfügbar.
- Außerdem wurde der Befehl
gsm meter on|off
hinzugefügt.
- Außerdem wurde der Befehl
Toolchain / Build auf C++17 umgestellt.
Fehlerkorrekturen: Eingebetteter Emulator
- Die Zwischenablage sollte jetzt funktionieren.
- Ein Problem wurde behoben, durch das Großbuchstaben im Emulator als Kleinbuchstaben gesendet wurden.
- Das Laden des Konsolenzeichens aus einem Unicode-Pfad unter Windows wurde behoben.
SO_REUSEPORT
-Fehlermeldung unter Linux wurde behoben.- Ein Problem mit der Beschädigung von Snapshots beim Senden von Snapshot-Befehlen über gRPC sowie beim Drücken der Schaltfläche zum Speichern von Snapshots im eingebetteten Emulator von Android Studio wurde behoben.
Bei der Verwendung des in Studio eingebetteten Linux-Emulators haben wir festgestellt, dass bei der Verwendung über Chrome Remote Desktop ein Fehler auftritt, bei dem
XDG_RUNTIME_DIR
nicht festgelegt ist. Dies kann dazu führen, dass der eingebettete Emulator nicht angezeigt wird, da die Emulator-Erkennungsdateien inXDG_RUNTIME_DIR
abgelegt werden. Den Status des entsprechenden Problems können Sie im Chrome-Problem-Tracker einsehen.Als Problemumgehung verwendet der Emulator jetzt Discovery-Dateien in einem möglicherweise anderen Verzeichnis, das auf der Nutzer-UID basiert:
/run/user/<uid>
.Eingebetteter Emulator: Geräte mit abgerundeten Ecken/Einkerbungen ändern jetzt ihr Layout korrekt, um Platz für die Ecken und Einkerbungen zu schaffen. Dies erfordert einen Kaltstart dieser Emulatoren.
Der gRPC-Endpunkt unterstützt jetzt das Senden von SMS an das Gerät.
Allgemeine Fehlerkorrekturen
- Wir haben Kompatibilitätsprobleme beim Ausführen des Windows-Emulators mit aktiviertem Riot Vanguard festgestellt. Der Windows-Emulator erkennt jetzt Vanguard Anti-Cheat und zeigt eine Warnmeldung an, wenn Vanguard erkannt wird.
- Der Fehler
FD_SETSIZE
unter Windows wurde behoben. Zum Herstellen von nicht blockierenden Verbindungen zu Loopback-Servern verwenden wir jetztWSAEventSelect()
anstelle vonselect()
. - Dem Linux-Emulator wurde die Unterstützung der F16C-CPUID-Funktion hinzugefügt. Außerdem wurden Probleme beim Ausführen einiger ARM64-Anwendungen über die NDK-Übersetzung behoben. macOS/Windows wird derzeit unterstützt.
- Die Wiedergabe von GPX-/KMZ-Routen folgt jetzt den Zeitstempeln.
- Das Springen des Symbols beim Starten unter macOS wurde behoben.
- Wenn
hw.audioInput=no
undhw.audioOutput=no
inconfig.ini
stehen, ist die Audioausgabe des Emulators jetzt richtig deaktiviert. - Ein Problem wurde behoben, bei dem das Fenster mit den erweiterten Steuerelementen beim Minimieren des Emulatorfensters geöffnet, aber nicht aktiv war. In diesem Fall wurde das Fenster mit den erweiterten Steuerelementen beim Ändern der Größe des Emulatorfensters immer wieder angezeigt. Dieses Verhalten (das aktive Fenster mit erweiterten Steuerelementen) wird in einem zukünftigen Update vollständig entfernt.
- Ein Fehler wurde behoben, durch den beim Starten des Emulators keine WLAN-Verbindung hergestellt wurde.
- Ein Problem wurde behoben, durch das der Emulator beim Beenden hängen blieb, wenn er Shell-Befehle mit langen oder unbestimmten Zeitüberschreitungen ausführte.
- Das PC-BIOS wurde mit Fehlerkorrekturen aktualisiert, um große Bilder, die an
-initrd
übergeben werden, besser zu unterstützen. Das vorherige BIOS verwendete eine sehr ineffiziente Methode. - Ein Absturz bei der Beendigung wurde behoben, wenn die Option
-wifi-server-port
verwendet wird. - Der Emulator gibt jetzt eine Warnung aus, wenn nicht unterstützte Optionen an
-prop
übergeben werden. Nur qemu.*-Properties werden unterstützt. - Beim Erstellen des Emulators unter Windows ist die Wahrscheinlichkeit, dass das Schreiben in Dateien fehlschlägt, geringer. Weitere Informationen finden Sie in der Anleitung für Windows-Builds.
- Die Schaltfläche „Zoomen“ für faltbare AVDs wurde deaktiviert, da sie Probleme verursachte.
- Der Emulator meldet jetzt korrekt die Bootzeit nach einem Geräteneustart.
- Linux: Wenn nicht genügend KVM-Berechtigungen vorhanden sind, druckt der Emulator jetzt schneller eine Anleitung zur Fehlerbehebung aus.
- Ein Problem wurde behoben, durch das der Emulator aktuelle Systembilder ohne Beschleunigung nicht starten konnte.
- Behoben wurde ein Speicherbeschädigungs- oder Absturzproblem beim Starten über einen Boot-Abschluss-Detektor.
- Ein Speicherleck bei langen Bildschirmaufzeichnungen wurde behoben.
- Emulatorsymbole wurden an das Branding von Studio 4.1 angepasst.
- Die Erkennung von Remote-Sitzungen unter Windows wurde verbessert.
Korrekturen: Grafik- und Videodecodierung
- Ein Problem wurde behoben, durch das das neueste Asphalt 9-Spiel mit einem schwarzen Bildschirm gerendert wurde.
- Spam zum Leeren des zugeordneten Buffers mit
NULL
wurde entfernt. - Eine Race-Bedingung beim Aufheben des Vulkan-Status nach dem Beenden einer Gast-Vulkan-App wurde behoben.
- Vulkan-ASTC/ETC2-Emulations-Shader sind jetzt in der libOpenglRender-Bibliothek eingebunden. Das ist zuverlässiger als das Lesen aus dem Dateisystem.
- Ein Problem in Vulkan wurde behoben, bei dem bei Ausführung mit einer Vulkan 1.0-Instanz auf dem Host das Feld
pNext
des zurückgegebenenVkMemoryRequirements2
-Structs fälschlicherweise vonvkGetImageMemoryRequirements2KHR
gelöscht wurde. - Ein Speicherleck im Vulkan-Renderer wurde behoben.
- Behebung einer kürzlich aufgetretenen Regression, bei der GLSL ES 1.00-Shader mit Variablennamen wie
isampler2D
nicht kompiliert werden konnten. - Der ANGLE-Shader-Übersetzer wurde mit verschiedenen Fehlerkorrekturen aktualisiert, die mögliche Fehler beim Kompilieren von Shadern unter Linux beheben.
- Wir bringen jetzt den Emulator zum Absturz, wenn der grundlegende Framebuffer-Blit-Shader nicht kompiliert werden kann, um dieses Phänomen zu verfolgen.
- Der ANGLE-Shader-Übersetzer wurde aktualisiert, um mit der Upstream-ANGLE-Version Schritt zu halten. Dadurch wurde ein Problem mit Speicherbeschädigungen beim Übersetzen und Konstantenfalten von OpenGL ES-Shadern behoben, die nicht quadratische Matrizen verwendeten. Der Shader-Übersetzer ist jetzt eine separate freigegebene Bibliothek,
libshadertranslator.dll
. - Ein Problem bei der Vulkan-Initialisierung bei einigen GPU-Treibern wurde behoben, bei dem bestimmte Gerätefunktionen der Version 1.1 nicht gefunden wurden.
- Vulkan: Wir sind zum vorkonfigurierten Loader zurückgekehrt, da der Vulkan-Systemloader in einigen Konfigurationen Probleme verursacht hat. Wir werden eine bessere Lösung finden.
- Problem bei der Verwendung von externem Vulkan-Speicher behoben, bei dem es zu nicht übereinstimmenden Arbeitsspeichertypindexen auf dem Host kommen konnte.
- Ein Problem bei der Emulation von
GL_ALIASED_POINT_SIZE_RANGE
wurde behoben, bei dem das Enum nicht vom Host unterstützt wurde. - Behoben: Auf einigen Host-GPUs konnten Skia-Shader aufgrund von Fehlern im Zusammenhang mit
GL_EXT_shader_framebuffer_fetch
nicht kompiliert werden. - Da unsere Kopie des D3D9 ANGLE-Renderers vor einigen Versionen entfernt wurde, wechseln wir Nutzer, die diesen Renderer verwendet haben, jetzt automatisch zu d3d11 ANGLE, wenn diese Option in den UI-Einstellungen ausgewählt wurde.
- Der WGL-Initialisierung unter Windows wurden weitere Informationen zur Fehlerbehebung hinzugefügt.
- Bei
hw.gltransport=virtio-gpu-pipe
wird die Leistung verbessert, da bei Übertragungen vom Host zum Gast nicht gedreht wird. - Es wurde mehr Debugging-Protokollierung hinzugefügt, wenn die OpenGLES-Emulation nicht initialisiert werden kann.
- Ein Problem wurde behoben, bei dem YouTube-Videos beim Laden des Snapshots flackerten oder nicht angezeigt wurden.
- Wir sind vorerst wieder zur Software-Decodierung für libvpx zurückgekehrt, da es Probleme mit der CUDA-Hardware-Decodierung von libvpx gab. Wenn Sie auf der Hostseite eine unterstützte CUDA-Hardware-Decodierungsimplementierung haben, kann die Hardware-Decodierung von libvpx über die Umgebungsvariable
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
wieder aktiviert werden.
30.0.10 (30. April 2020)
Dieses Update umfasst die Unterstützung für die Ausführung des Emulators direkt in Android Studio und virtuelle Geräte, bei denen der Modus für Freiformfenster standardmäßig aktiviert ist.
Emulator in Android Studio ausführen
Der Android-Emulator kann jetzt direkt in Android Studio ausgeführt werden. Mit dieser Funktion können Sie den Bildschirmplatz sparen, mit Hotkeys schnell zwischen dem Emulator und dem Editorfenster wechseln und Ihren IDE- und Emulator-Workflow in einem einzigen Anwendungsfenster organisieren.
Freiform-Fenstermodus
Sie können jetzt eine AVD mit aktiviertem Freeform-Fenstermodus erstellen.Wählen Sie dazu beim Erstellen eines virtuellen Geräts in Android Studio das Hardwareprofil „13,5" Freeform Tablet“ aus. Für dieses Hardwareprofil ist ein System-Image mit Android 11 Developer Preview 3 oder höher erforderlich.
Bekannte Probleme
Das Ändern der Größe von Freiformfenstern funktioniert derzeit nicht, da der Fokus nicht auf den Fenstermanager übertragen werden kann. Dies wird in einer zukünftigen Version des System-Images von Android 11 behoben.
30.0.0 (19. Februar 2020)
Dieses Update umfasst System-Images von Android 11 (API-Level 30) und eine verbesserte Leistung beim Ausführen von ARM-Binärdateien.
System-Images für Android 11
Sie können jetzt eine AVD mit Android 11 erstellen, indem Sie eines der verfügbaren Systemimages für API-Level 30 auswählen:
- x86: Umfasst sowohl x86- als auch ARMv7-ABIs.
- x86_64: Enthält die ABIs x86, x86_64, ARMv7 und ARM64.
Unterstützung von ARM-Binärprogrammen in System-Images von Android 9 und 11
Wenn Sie den Android-Emulator bisher nicht verwenden konnten, weil Ihre App auf ARM-Binärdateien angewiesen war, können Sie jetzt das Android 9-x86-System-Image oder ein beliebiges Android 11-System-Image verwenden, um Ihre App auszuführen. Es ist nicht mehr erforderlich, ein bestimmtes System-Image zum Ausführen von ARM-Binärdateien herunterzuladen. Diese System-Images von Android 9 und Android 11 unterstützen standardmäßig ARM und bieten im Vergleich zu denen mit vollständiger ARM-Emulation eine erheblich verbesserte Leistung.
Bekannte Probleme
- Einige ARMv7-Binärdateien können nicht auf Android 11-x86- und x86_64-System-Images ausgeführt werden. Wenn Sie Ihre App auf Android 11 ausrichten, sollten Sie sie für ARM64 entwickeln.
29.0.11 (29. Mai 2019)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Windows: Der Emulator verwendet jetzt die von uns versendete
libgcc
-DLL und muss nicht statisch mitlibgcc
kompiliert werden. - Linux: Die gRPC API unterstützt jetzt Logcat. Weitere Informationen zu gRPC finden Sie unter gRPC-Streaming-Emulator (Linux).
- Der Emulator enthält jetzt einen headless Build für 32-Bit-x86-Gäste (
qemu-system-i386
). Mit dieser Funktion können x86-32-Bit-Images für API-Ebenen 26 und niedriger mit dem headless Build ausgeführt werden. Bei 32-Bit-x86-Gasten mit API 27 und höher verwendet der Emulator die 64-Bit-Engine (qemu-system-x86_64
), da in diesen System-Images der Userspace zwar 32-Bit, der Kernel aber 64-Bit ist. Android Studio verwendet den Kernel, um Emulationen auszuwählen. - Sie können jetzt benutzerdefinierte Qt-Bibliothekspfade mithilfe der Umgebungsvariablen
ANDROID_QT_LIB_PATH
angeben. - Sie können den Emulator jetzt mit vorherigen Binärdateien ausführen, die QEMU1 verwenden, wenn die QEMU1-Ausführprogramme (
emulator[64]-[x86|arm|etc]
) im Emulatorverzeichnis abgelegt sind. - Windows: Ein Problem wurde behoben, das manchmal dazu führte, dass der Emulator nicht gestartet werden konnte und die Meldung „Anfrage zum Ausschalten der vCPU“ angezeigt wurde.
- Ein Problem mit einer unnötigen Pipelinebarriere in emulierten komprimierten Texturen in Vulkan wurde behoben.
- Ein Fehler bei HTTP-Proxyanfragen wurde behoben, der bei der Verwendung der Blockbasierten Übertragungscodierung auftrat. Weitere Informationen finden Sie in den Commit-Details.
29.0.9 (7. Mai 2019)
Dieses Update enthält folgende Korrektur:
- Windows: Ein Problem wurde behoben, durch das die Kamera der virtuellen Szene und die Webcam im Emulator nicht funktionierten.
29.0.8 (6. Mai 2019)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Unterstützung für mehrere virtuelle Hardware-Displays hinzugefügt, wenn ein Gastdienst zum Auflisten und Festlegen der einzelnen Displays vorhanden ist. Mehrere virtuelle Hardware-Displays werden in einem zukünftigen Update des Emulator-System-Images enthalten sein.
- Neue Befehlszeilenoption hinzugefügt:
-delay-adb
. Mit dieser Option wird die Verarbeitung von ADB-Paketen unterdrückt, bis der Gastbetriebssystem vollständig gestartet wurde (nach einem Kaltstart). Mit dieser Option können Probleme behoben werden, die auftreten können, wenn Sie den Emulator in einer CI-Umgebung verwenden, in der der Emulator neu gestartet und gleichzeitig DDMS verwendet wird. - Ein Fehler beim Laden von Snapshots wurde behoben, bei dem
glIsRenderbuffer
den falschen Wert zurückgab. - Einige Probleme mit dem inaktiven Status beim Neustart des Android-Gasts wurden behoben.
- Windows: Probleme wurden behoben, durch die der Emulator nicht gestartet werden konnte, wenn der Windows-Nutzername Nicht-ASCII-Zeichen oder Leerzeichen enthielt.
Bekannte Probleme
- Die Benutzeroberfläche für Snapshots ist für System-Images für die Automobilbranche deaktiviert, da Snapshots für diese System-Images derzeit nicht unterstützt werden.
29.0.6 (1. Mai 2019)
Dieses Update enthält mehrere neue Funktionen, Verbesserungen an bestehenden Funktionen und Fehlerkorrekturen.
Entfernung der Unterstützung für QEMU1 und 32-Bit-Windows
Um den Emulator besser verwalten zu können, werden QEMU1 und 32-Bit-Windows-Binärdateien nicht mehr bereitgestellt. Wenn Sie Windows 32-Bit verwenden, können Sie kein Upgrade auf Version 29.0.6 durchführen.
Anforderungen an Android Q-Systemimages
Wenn Sie ein AVD ausführen möchten, das ein Android Q-System-Image verwendet, müssen Sie jetzt Version 29.0.6 (diese Release-Version) oder höher verwenden.
Verbesserungen bei Project Marble
Mit diesem Update setzen wir unsere Arbeit an der Initiative Project Marble fort, die im November 2018 auf dem Android Developer Summit angekündigt wurde. Weitere Informationen zu anderen Verbesserungen von Project Marble in früheren Releases finden Sie unter Android-Emulator: Verbesserungen durch Project Marble.
Bei diesem Update haben wir uns bei Project Marble hauptsächlich darauf konzentriert, die Ressourcennutzung des Emulators zu reduzieren, z. B. die CPU-Auslastung des Emulators im Leerlauf. Außerdem haben wir Änderungen vorgenommen, die die Arbeit mit dem Emulator in einer größeren Vielfalt von Umgebungen erleichtern. Außerdem haben wir allgemeine Qualitätsprobleme behoben.
In den folgenden Abschnitten werden die Verbesserungen für Project Marble beschrieben, die in diesem Update enthalten sind:
Verbesserungen beim Verhalten von Host-Audio
Ab Version 28.0.3 blockiert der Emulator standardmäßig die Audioeingabe vom Host.
Wenn Sie die Audiodaten des Hosts verwenden möchten, können Sie diese Option aktivieren. Gehen Sie dazu zu Erweiterte Einstellungen > Mikrofon und aktivieren Sie Virtuelles Mikrofon verwendet die Audioeingabe des Hosts. Diese Option wird automatisch deaktiviert, wenn der Emulator neu gestartet wird.
Wenn Sie die Befehlszeile verwenden, können Sie Hostaudio auch mit der Option -allow-host-audio
aktivieren. Mit den folgenden ADB-Befehlen können Sie Hostaudiodaten aktivieren oder deaktivieren:
adb emu avd hostmicon
adb emu avd hostmicoff
Verbesserungen für monitorlose Emulator-Builds
Ab Version 28.0.25 enthält der Emulator eine Headless-Build-Option, die ohne Benutzeroberfläche ausgeführt werden kann. Sie können Headless-Builds verwenden, um den Emulator für Docker- und CI-Workflows (Continuous Integration) einzurichten.
Mit diesem Update haben wir weitere Verbesserungen vorgenommen, damit der Emulator mit einer minimalen Anzahl von Abhängigkeiten ausgeführt werden kann. Unter Linux enthalten headless-Builds nicht mehr die pulseaudio
- oder libX11
-Bibliotheken. Die systemabhängigen freigegebenen Bibliotheken, die nicht im Emulator enthalten sind, wurden auf die folgende Liste reduziert:
Linux-vdso.so.1
Libutil.so.1
Libm.so.6
Libdl.so.2
Librt.so.1
Libpthread.so.0
Libgcc_s.so.1
Libc.so.6
ld-linux-x86-64.so.2
Aktualisierung der Qt-UI-Bibliotheken auf Version 5.12 LTS
Dieses Update enthält die folgenden Verbesserungen aus der Qt 5.12 LTS-Version:
- Um Abstürze bei der
libpng
-Dekodierung von Qt beim Starten bestimmter System-Images zu vermeiden, verwendet der Emulator jetzt eine eigene Kopie vonlibpng
, um PNG-Bilder zu decodieren. - Um Probleme mit einigen Linux-Installationen zu beheben, die inkompatible Versionen einiger Qt-abhängiger Bibliotheken enthalten, werden
libfreetype
,libsoftokn
,libsqlite3
undlibxkbcommon
jetzt mit dem Emulator verpackt. - Der Emulator verwendet jetzt die nativen Fensterbibliotheken der Plattform, um die Monitorabmessungen zu erhalten, anstatt die Qt-Bibliotheken, die unzuverlässige Ergebnisse lieferten.
Automatische CPU-Optimierungen nach Kaltstart
Um die CPU-Auslastung zu verringern, führt der Emulator jetzt nach Erhalt eines boot complete
-Signals die folgenden ADB-Befehle bei einem Kaltstart aus:
adb shell settings put screen_off_timeout 214783647
- Dieser Befehl erhöht das Zeitlimit für das Ausschalten des Bildschirms, sodass der Emulator ohne Aufladen im Akkumodus verwendet werden kann. Im Akkumodus wird die CPU-Nutzung im Hintergrund stark reduziert.
- Im Lademodus mit Netzteil können GMSCore-Hintergrundvorgänge wie App-Updates alle CPU-Kerne des Geräts und damit auch das Gerät des Nutzers ohne Warnung übernehmen.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
- Mit diesem Befehl werden die Mikrofonberechtigungen für die Google Suche widerrufen. Dadurch wird die CPU-Auslastung im Hintergrund auf dem Startbildschirm und im Launcher erheblich reduziert, wenn die Google Suche aktiv ist.
- Dieser Befehl wird zusätzlich zum Standardverhalten des Emulators ausgeführt, bei dem die Hostaudioausgabe deaktiviert wird. Darüber hinaus wird damit automatisch die ab Version 28.0.23 beschriebene Reduzierung der CPU-Auslastung für die Hotword-Erkennung beschrieben.
Neue Umgebungsvariablen für die Leistungsüberwachung
Mit zwei neuen Umgebungsvariablen können Sie die Leistung und Ressourcennutzung des Emulators jetzt noch genauer im Blick behalten.
SHOW_PERF_STATS=1
- Mit dieser Umgebungsvariablen können Sie sowohl die CPU- als auch die RAM-Nutzung erfassen. Bei der RAM-Nutzung wird zwischen der Grafiknutzung und dem gesamten residenten Arbeitsspeicher unterschieden.
ANDROID_EMU_TRACING=1
- Mit dieser Umgebungsvariablen wird jedes Mal gedruckt, wenn ein Eingabe- oder Grafikvorgang lange dauert (länger als 1 ms).
- Außerdem verwenden wir diese Umgebungsvariable, um Probleme zu diagnostizieren, die Windows-Nutzer mit mehr Rucklern (ausgelassene Frames) haben als Nutzer unter macOS oder Linux.
Allgemeine Verbesserungen bei Project Marble
Dieses Update enthält auch die folgenden allgemeinen Verbesserungen, die Teil der Initiative „Project Marble“ sind:
- Sie können jetzt alle vCPUs auf dem Emulator sofort über die folgenden Konsolenbefehle pausieren:
adb emu avd pause
adb emu avd resume
- Deutlich reduzierter Overhead bei OpenGL-Zeichnen. Diese Verbesserung reduziert die CPU-Auslastung, während der Emulator Animationen abspielt.
- Unterstützung für das virtuelle Netzwerkgerät e1000 der Mainline-QEMU wiederhergestellt. Sie können dieses Gerät verwenden, um den Emulator in einer bridged Netzwerkumgebung einzurichten. In einer Brücken-Netzwerkumgebung wird der Emulator im Hostnetzwerk und das Hostnetzwerk im Emulator angezeigt.
- Zum Starten des Emulators werden jetzt BIOS-Binärdateien verwendet, die für QEMU 2.12 geeignet sind.
- Die
ffmpeg
-Version wurde für die Videocodierung und -decodierung auf 3.4.5 aktualisiert. - Der Aufwand für die E/A der QEMU-Hauptschleife konnte unter macOS erheblich reduziert werden, indem die auf
select()
basierende Hauptschleife durch eine aufkqueue
basierende Hauptschleife ersetzt wurde. - Die Größe des Logcat-Buffers wurde auf 2 MB erhöht, um Probleme mit unerwartetem EOF beim Ausführen von Logcat mit dem Emulator zu beheben.
- Der Emulator exportiert jetzt standardmäßig die Umgebungsvariable
LC_ALL=C
. Durch diese Änderung werden Abstürze und Inkompatibilitätsprobleme behoben, die beim Ausführen des Emulators in verschiedenen Gebietsschemas auftreten. - Sie können jetzt die CPU- und RAM-Nutzung des Emulators mithilfe von Leistungsstatistiken im Bereich Erweiterte Steuerelemente > Einstellungen > Erweitert > Leistungsstatistiken im Blick behalten. Anhand dieser Statistiken können Sie schnell Probleme diagnostizieren, wenn der Emulator zu viel CPU oder RAM beansprucht.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
verwendet jetzt das Ergebnis der Host-GPU anstelle eines emulierten. Durch diese Änderung können Probleme behoben werden, bei denen Bilder und Assets aufgrund eines falschen Formats für die Rückgabe nicht angezeigt werden.- Unterstützung für die OpenGL ES-Erweiterungen
GL_EXT_texture_format_BGRA8888
undGL_APPLE_texture_format_BGRA8888
hinzugefügt, sofern diese vom Host unterstützt werden. - Der Benutzeroberfläche für den Fehlerbericht wurden weitere Diagnoseinformationen hinzugefügt. Darüber hinaus können Sie mit den folgenden Befehlen über die Konsole auf Fehlerberichte zugreifen:
telnet localhost 5554
avd bugreport
- In Android Q-System-Images erhöht der Emulator die RAM-Mindestgröße auf 2 GB.
- Zusätzliches Logging und Drucken hinzugefügt, wenn OpenGL oder der Hypervisor nicht initialisiert werden können.
- Wenn der Emulator keine gleichzeitige
-read-only
-Instanz einer AVD starten kann, versucht er jetzt, die-read-only
-AVD noch dreimal innerhalb von drei Sekunden neu zu starten. Durch diese Änderung ist es wahrscheinlicher, dass der Emulator gleichzeitige-read-only
-Instanzen einer AVD starten kann, wenn andere beschreibbare Instanzen dieser AVD noch nicht alle veralteten Dateien bereinigt haben. - Für zukünftige System-Images unterstützt der Emulator jetzt Hardware Composer 2.0. Durch diese Änderung sollte der Treiber-Overhead beim Ausführen der meisten Animationen reduziert werden.
- Der Emulator-Build basiert jetzt auf CMake/Ninja.
- In der Benutzeroberfläche der erweiterten Steuerelemente des Emulators wurden Trennlinien in der Tabelle mit den Tastenkürzeln wiederhergestellt.
- Nutzer können jetzt festlegen, dass unser Team Messwerte zur CPU- und RAM-Nutzung in einem Intervall von 10 Sekunden erhält. Mithilfe dieser Messwerte können wir unsere Daten zur Ressourcennutzung des Emulators um verschiedene Anwendungsfälle unserer Nutzer ergänzen. So können wir den Emulator effizienter und reaktionsfähiger machen.
Allgemeine Fehlerkorrekturen für Project Marble
Dieses Update enthält auch die folgenden allgemeinen Korrekturen, die Teil der Project Marble-Initiative sind:
- Probleme mit Rucklern und falschen Frames, die auf Systemen mit Intel-GPUs bei Verwendung von Android Q-Systembildern angezeigt wurden, wurden behoben.
- Es wurden Probleme behoben, bei denen bei Verwendung von Android Q-Systembildern mit Pixel 2 XL-Skins (oder Skins mit Einkerbungen oder abgerundeten Ecken) ein schwarzer Bildschirm angezeigt wurde.
- Ein Problem wurde behoben, bei dem die Größe der Datenpartition nicht mit der Befehlszeilenoption
-partition-size
festgelegt werden konnte. - Ein Problem wurde behoben, bei dem pulseaudio im Linx-Emulator in einigen Situationen einen ganzen CPU-Kern beanspruchte.
- Probleme mit dem außerhalb des gültigen Speicherzugriffs bei der Verarbeitung komprimierter Texturen wurden behoben.
- GL-Fehler behoben, die in
glTexSubImage2D
auf dem Host beim Aktualisieren bestimmter Gralloc-Buffer (mit den Formaten RGB 565, RGB10A2 und RGB(A)16F) aufgetreten sind. - Ein Displayproblem in Android Q-Systembildern mit Snapshots wurde behoben, bei dem die Geometrie der Benachrichtigungsleiste mit einer falschen Einstellung für den Instanzdivisor gerendert wurde.
- Einige schwer zu reproduzierende Absturz- und Einfrierensprobleme beim Start wurden behoben, die aufgrund von verlorenen Qt-Signalen oder unzuverlässigen, inkonsistenten Status beim Start aufgetreten sind.
- Zahlreiche Probleme mit Parallelität wurden behoben. Wir können den Linux-Emulator jetzt mit ThreadSanitizer (TSAN) erstellen, wodurch sich leicht Fehler finden lassen, die sonst schwer zu reproduzieren sind.
- Für Linux-Nutzer: Wir haben festgestellt, dass bei bestimmten Hostkernels der Android-Gastkernel einen Fehler auslösen und in KVM mit einem generischen Hardwarefehler abstürzen kann. Der Emulator
abort()
jetzt in diesem Fall, um die Fehlerbehebung zu verbessern. Bisher blieb der Emulator einfach hängen. - Für Linux-Nutzer: Mit der neuen Befehlszeilenoption
-stdouterr-file <file-name>
können Sie sowohlstdout
als auchstderr
auf eine Datei umleiten, um die Einrichtung von CI-Umgebungen zu vereinfachen. - Ein Problem wurde behoben, bei dem
SO_REUSEADDR
fälschlicherweise verwendet wurde. Weitere Informationen finden Sie in den Commit-Details. - Ein seit langem bestehendes Problem mit dem Windows-Emulator wurde behoben, bei dem untergeordnete Prozesse wie ADB-Befehle nicht gestartet wurden, wenn der Nutzername Leerzeichen enthielt.
- Ein Problem mit fehlender Initialisierung der RCU in HAXM-vCPU-Threads wurde behoben. Mit dieser Fehlerbehebung können möglicherweise einige Abstürze und Race-Bedingungen behoben werden.
- Ein Absturz, der bei bestimmten Mustern beim Speichern und Laden von Snapshots über die Snapshot-Benutzeroberfläche mit aktuellen Android Q-System-Images auftrat, wurde behoben.
- Ein Problem wurde behoben, bei dem die Kamera der virtuellen Szene leer war, wenn der Emulator von einem Snapshot initialisiert wurde und beim Speichern dieses Snapshots ein AR-Makro wiedergegeben wurde.
- Ein Problem wurde behoben, bei dem einige Nutzer mit Remote-Desktop-Konfigurationen beim Starten des Emulators unter Linux einen schwarzen Bildschirm sahen. Um dies zu vermeiden, wird
MESA_RGB_VISUAL
jetzt vom Emulator explizit konfiguriert. Weitere Informationen finden Sie in den Commit-Details. - Ein Problem wurde behoben, bei dem die Schaltflächen zum Drehen in AVDs auf Fernsehern angezeigt wurden.
- Ein Problem wurde behoben, bei dem das Fenster mit den erweiterten Steuerelementen jedes Mal angezeigt wurde, wenn der Emulator gedreht wurde, wenn der Emulator immer oben angezeigt wurde.
Hardwareprofile für faltbare Geräte
Der Emulator enthält jetzt Hardwareprofile für faltbare Geräte. Um diese neuen Hardwareprofile zu verwenden, benötigen Sie Android Studio 3.5 Canary 10 oder höher.
Es gibt zwei faltbare Hardwareprofile, mit denen Sie eine AVD erstellen können:
- 7,3" faltbar: 1.536 × 2.152 Pixel (aufgeklappt), 4,6" 840 × 1.960 Pixel (zugeklappt)
- 8" faltbar: 2200 × 2480 Pixel (aufgeklappt), 6,6" 1480 × 2480 Pixel (zugeklappt)
Wenn Sie den Emulator mit einem dieser Hardwareprofile ausführen, können Sie das Gerät mithilfe der Aktionen zum Zusammen- und Aufklappen in der Symbolleiste des Emulators, Konsolenbefehlen oder den folgenden Tastenkürzeln zusammen- und aufklappen:
- Zusammenklappen:
Ctrl + F
(Command + F
unter macOS) - Maximieren:
Ctrl + U
(Command + U
unter macOS)
AR-Makros
Der Emulator enthält jetzt AR-Makros, mit denen Sie gängige AR-Aktionen testen können. Mit einem Makro können Sie beispielsweise alle Sensoren des Geräts auf den Standardzustand zurücksetzen.
Weitere Informationen finden Sie unter Gängige AR-Aktionen mit Makros testen.
Vulkan-Unterstützung (Windows, Linux)
Windows- und Linux-Nutzer können jetzt Vulkan-Apps mit dem Android-Emulator bis Vulkan 1.1 testen, wenn sie ein kompatibles System-Image (Android Q Beta 3 oder höher für Vulkan 1.1, Android Q Beta 2 für Vulkan 1.0) und eine kompatible Host-GPU verwenden (z. B. die meisten Intel-, NVIDIA- und AMD-GPUs ab 2014).
Wenn Sie die Vulkan-Unterstützung aktivieren möchten, müssen Sie der Datei ~/.android/advancedFeatures.ini
die folgenden Funktions-Flags hinzufügen (erstellen Sie die Datei, falls sie noch nicht vorhanden ist):
Vulkan = on
GLDirectMem = on
Erste Unterstützung für ROM-Entwickler
ROM-Entwickler, die die Ziele sdk_phone_x86
oder sdk_phone_x86_64
(userdebug
, eng
-Varianten) im AOSP-Zweig master
erstellen, können jetzt einen Vulkan-fähigen Emulator ausführen.
Diese Unterstützung befindet sich noch in der Testphase und ist hauptsächlich für Entwickler gedacht, die an System-Images, Treibern und Spiel-Engines arbeiten. Viele Erweiterungen fehlen.
Allerdings wird HOST_COHERENT
Arbeitsspeicher unterstützt und Sie sollten jetzt die Anleitungsbeispiele für die Vulkan API ausführen können.
Wenn Sie Linux verwenden, können Sie die folgenden Befehle ausprobieren:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Skia-Rendering mit Vulkan
NVIDIA- und AMD-GPUs, die Vulkan unterstützen, unterstützen auch die Zero-Copy-Interoperabilität mit OpenGL über die GL_EXT_memory_objects
-Erweiterung. Der Emulator nutzt diese Funktion, um die Android-Benutzeroberfläche mit den Skia Vulkan APIs vollständig zu rendern.
Wenn Sie eine NVIDIA- oder AMD-GPU haben, die Vulkan unterstützt, können Sie das Skia-Rendering mit den folgenden Befehlen mit einem kompatiblen System-Image (Android Q Beta 3 und höher) testen:
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
macOS-Unterstützung für Vulkan
Die macOS-Unterstützung ist noch experimentell, aber der Emulator enthält bereits die Swiftshader, MoltenVK und die Libportability APIs (gfx-rs). Sie können diese APIs ausprobieren, indem Sie die folgenden Umgebungsvariablen festlegen:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk
- libportability:
ANDROID_EMU_VK_ICD=portability
Bekannte Probleme
HAXM kann manchmal nicht in der Lage sein, Vulkan-kohärenten Arbeitsspeicher dem Gast zuzuordnen, und schaltet den Emulator aus. Dieses Problem wird in einem zukünftigen HAXM-Update behoben.
gRPC-Streaming-Emulator (Linux)
Wir versuchen immer, den Emulator so vielseitig wie möglich zu gestalten, indem wir das GPU-Rendering und die Interaktivität des Hosts in möglichst vielen Laufkontexten zulassen. Bei CI- und Remote Desktop-Nutzern treten seit Langem folgende Probleme auf:
- Wenn Sie Eingabebefehle programmatisch an den Emulator senden möchten, müssen Sie entweder ADB-Shell-Befehle ausführen, die einen hohen Aufwand verursachen können, oder die Verwendung der Telnet-Konsole. Dies ist schneller, funktioniert aber möglicherweise nicht mit bestimmten Netzwerkkonfigurationen.
- CI-Nutzer führen Emulatoren häufig ohne Display aus. Das kann es schwierig machen, Probleme zu erkennen, bei denen der Bildschirm sichtbar oder interaktiv sein muss.
- Nutzer von Remote Desktops können oft nicht mit dem Emulator interagieren, wenn sie Host-GPU-Rendering verwenden, da das GPU-Rendering oft an die nicht virtuellen Bildschirme des Hosts gebunden ist.
Um dieses Problem zu beheben, stellt der Emulator bei der Ausführung auf einem Linux-Computer jetzt einen gRPC-Dienst bereit. gRPC ist ein allgemeines Framework für RPC, das über HTTP arbeitet.
Der gRPC-Dienst des Emulators ist standardmäßig deaktiviert. Sie können ihn jedoch mit der folgenden Befehlszeilenoption aktivieren. Dabei ist <port>
der Port, über den der Emulator gRPC-Anfragen bedienen soll (normalerweise 5556
):
-grpc <port>
Sobald der Dienst gestartet wurde, können gRPC-Befehle von Clients ausgegeben werden. Mit den aktuellen Befehlen können sowohl Eingabeereignisse gesendet als auch Screenshots empfangen werden. Mit diesen Befehlen können Sie die folgenden Probleme beheben:
- Eingabebefehle können mit geringem Overhead über HTTP an den Emulator gesendet werden. Mit HTTP können Befehle auch in zusätzlichen Netzwerkkonfigurationen gesendet werden.
- Screenshot-Befehle können gesendet werden, um den aktuellen Bildschirm abzufragen, auch wenn der Emulator monitorlos ausgeführt wird. Für Interaktivität können Eingabeereignisse auch an den Emulator zurückgesendet werden.
- Nutzer von Remote-Desktops können den Emulator ohne Benutzeroberfläche auf dem Hauptbildschirm mit GPU-beschleunigtem Rendering ausführen und mit gRPC Screenshots erstellen und Eingabeereignisse senden, um mit dem Emulator zu interagieren.
Eine vollständige Liste der verfügbaren Befehle finden Sie in diesem protobuf.
Um Ihnen den Einstieg in gRPC zu erleichtern, haben wir einige Beispielclients zusammengestellt, die Sie als Referenz verwenden können.
Dazu gehören derzeit die folgenden Beispiele:
- Ein Go-basierter Dienst, mit dem Emulatorstatus abgefragt werden können.
- Eine React-App, die Remote-Interaktivität über Screenshots und Eingabe-RPCs demonstriert. Für dieses Beispiel ist protobuf Version 3.7.0 oder höher erforderlich.
- Ein Python-Beispiel, das die VM-Konfiguration des Emulators abfragt und dann eine Reihe von Befehlen sendet.
28.0.25 (29. März 2019)
Dieses Update enthält folgende Verbesserungen und Fehlerkorrekturen:
Headless-Emulator erstellen
Der Emulator war aufgrund der impliziten Erwartungen an das System, Qt zusammen mit seinen Abhängigkeiten von freigegebenen Bibliotheken unterstützen zu können, unter anderem schwer mit Docker und anderen CI-Workflows (Continuous Integration) einzurichten.
Als ersten Schritt zur Behebung dieses Problems haben wir eine Variante des Emulator-Starters mit ausführbaren QEMU-Dateien eingeführt, die nicht von Qt. Unter Linux gibt es noch einen Link zu libX11
. Wir hoffen aber, auch diesen bald entfernen zu können.
Wenn Sie den headless-Emulator verwenden möchten, führen Sie ihn wie gewohnt über die Befehlszeile aus, ersetzen Sie aber die Aufrufe der Emulator-Binärdatei durch emulator-headless
. Weitere Informationen finden Sie im Release-Update vom 28.1.8.
- Behebung von Rucklern und falscher Frameanzeige auf Intel-GPUs beim Ausführen von Android Q-Systembildern.
- Probleme, bei denen bei Verwendung von Android Q-Systembildern mit Pixel 2 XL-Skins ein schwarzer Bildschirm angezeigt wurde, wurden behoben.
- Zum Starten des Emulators werden jetzt die neuesten BIOS-Binärdateien verwendet. Durch diese Änderung können Fehler vom Typ „Anfrage zum Herunterfahren von vCPUs“ reduziert werden, die manchmal beim Starten des Emulators unter Windows auftreten können.
- Backport-Fehlerbehebung für das Problem „Falsche Anzeige beim Fortsetzen von Android Q-Systembildern aus einem Snapshot“
- Aufgrund einer inkompatiblen Änderung in ADB in den Plattformtools 28.0.2 hatten Nutzer Probleme mit „nicht autorisierten“ Emulatoren. Sie können ADB jetzt sicher über die Plattformtools-Version 28.0.2 mit dem Emulator verwenden. Wenn du Probleme mit „nicht autorisierten“ Emulatoren hast, führe die folgenden Schritte zur Fehlerbehebung aus:
- Beenden Sie alle Emulatoren.
- Löschen Sie sowohl die Datei
~/.android/adbkey
als auch~/.android/adbkey.pub
. - Führen Sie dazu diesen Befehl aus:
adb kill-server
- Führen Sie dazu diesen Befehl aus:
adb devices
- Löschen Sie die AVD-Daten.
- Starten Sie den Emulator neu.
28.0.23 (29. Januar 2019)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
Host-Audioeingabe standardmäßig deaktiviert
In einem neueren Beitrag auf Reddit wurde beschrieben, wie das Gast-Android-Betriebssystem immer das Mikrofon des Hosts verwendet und dadurch „Hey Google“ unerwartet funktioniert. Wir bedauern das und werden mit dem Android-Team zusammenarbeiten, um sicherzustellen, dass die Hotword-Erkennung auch im System-Image deaktiviert ist.
Wir haben deshalb die folgenden Änderungen vorgenommen:
- Die Audiodaten des Hosts werden jetzt standardmäßig unterdrückt. Wenn der Gast das Mikrofon verwendet, wird anstelle des Audiosignals des Hosts Stille übertragen.
- Wenn Sie die Hostaudiodaten verwenden möchten, können Sie diese Option jetzt aktivieren. Rufen Sie dazu Erweiterte Steuerelemente > Mikrofon auf und aktivieren Sie Virtuelles Mikrofon verwendet Host-Audioeingabe. Diese Option wird automatisch deaktiviert, wenn der Emulator neu gestartet wird.
Updates zu Untersuchungen der CPU-Nutzung
Während unserer Project Marble-Untersuchungen haben wir festgestellt, dass eine hohe CPU-Auslastung im Emulator im Allgemeinen in die folgenden drei Kategorien fällt:
Im Ruhemodus: Automatische App-Updates in Play Store-Images
Wir haben festgestellt, dass alle installierten Apps in zufälligen Intervallen aktualisiert werden, auch wenn der Nutzer nicht angemeldet ist. Während des Prozesses wird die CPU-Auslastung in GMSCore und dex2oat auf die Anzahl der Kerne × 100% (in der Regel etwa 400%) erhöht. Sie können dieses Problem minimieren, indem Sie automatische App-Updates in der Play Store App deaktivieren.
Im Ruhemodus: Hotword-Erkennung
Wenn Sie sich auf dem Startbildschirm befinden und keine App im Vordergrund ist, kann die CPU stark beansprucht werden (ca. 25% mit Spitzen bis 50%). Das liegt an der Hotword-Erkennung, die ständig einen Ping an den Host sendet. Sie können dieses Problem nicht durch Deaktivieren der Audioeingabe des Hosts beheben, da die CPU-Kosten hauptsächlich durch die Zeit verursacht werden, die vom Host zum Gast benötigt wird. Sie können dieses Problem jedoch beheben, indem Sie die Mikrofonberechtigungen für die Google App widerrufen.
Bei aktiver Nutzung, manchmal auch im Leerlauf: Animationen
Die dritte Ursache für eine hohe CPU-Auslastung sind Animationen. Wir haben festgestellt, dass wir durch die Optimierung des Grafiktreiber-Stacks auch die CPU-Auslastung reduzieren können, auch wenn der Emulator nicht inaktiv ist. Wir führen die Optimierungen der Grafiktreiber im Rahmen von Project Marble schrittweise ein.
28.0.22 (21. Dezember 2018)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Ein langwieriges Problem wurde behoben, bei dem der Mac-Emulator bei einigen Einstellungen beim Speichern des Quickboots neu gestartet wurde oder eine Kernel-Panik auftrat. (Problem 120951634)
- Wenn eine zugeordnete Datei als RAM-Snapshot verwendet wird, löst der Emulator die Dateizuordnung beim Beenden jetzt explizit auf.
28.0.20 (11. Dezember 2018)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
- Ein Problem unter Windows, bei dem der Emulator bei bestimmten Intel-GPU-Modellen beim Laden eines Snapshots hängen blieb, wurde behoben.
- Ein Problem wurde behoben, das bei der Verwendung eines nicht standardmäßigen
ANDROID_SDK_HOME
-Speicherorts zu einemunauthorized
-ADB-Gerätestatus geführt hat. - Ein Problem unter Windows wurde behoben, durch das der Emulator beim Starten von System-Images mit deaktivierter CPU-Beschleunigung abstürzte.
- Das Problem mit dem pixeligen Display des Emulators wurde behoben. Das Downsampling sollte jetzt funktionieren.
- Es wurde ein Problem unter macOS 10.14 und höher behoben, bei dem die Maussteuerung der Kamera in der virtuellen Szene aufgrund einer Interaktion mit den neuen Sicherheitseinstellungen für die Barrierefreiheit zu empfindlich werden konnte.
- Ein Fehler bei der Zeitzonenberechnung wurde behoben, der dazu führen konnte, dass sich die Emulatoruhr sporadisch änderte.
- Renderingfehler in verschiedenen Cocos2d- und Unreal-Engine-Anwendungen wurden behoben.
- Unterstützung für Wi‑Fi-Peer-to-Peer im Emulator hinzugefügt.
Zwei Emulatoren können jetzt direkt über WLAN miteinander kommunizieren, wenn sie das neueste Pie Play Store-Image verwenden. Wenn Sie Wi‑Fi-Peer-to-Peer verwenden möchten, starten Sie zwei AVDs mit denselben
-wifi-server-port
- und-wifi-client-port
-Argumenten:emulator @<server-avd-name> -wifi-server-port 9999
emulator @<client-avd-name>-wifi-client-port 9999
- Unterstützung für mehr Webcams unter Windows hinzugefügt. Inkompatible Framegrößen werden dynamisch an die Kameraeinstellung im Android-Gast angepasst.
28.0.16 (November 2018)
Dieses Update enthält mehrere neue Funktionen, Verbesserungen an bestehenden Funktionen und Fehlerkorrekturen.
Ressourcennutzung
Der Emulator benötigt jetzt insgesamt weniger RAM, insbesondere bei der Verwendung von System-Images mit API-Level 28 oder höher. Diese System-Images bieten eine verbesserte Arbeitsspeichernutzung für gästeseitige Grafiktreiber.
Außerdem haben wir die Ressourcennutzung in den folgenden Bereichen verbessert:
- Reduzierte Arbeitsspeichernutzung des Emulators bei lang andauernden Tests. Wenn bei längeren Tests weiterhin Probleme mit der Speichernutzung auftreten, erstellen Sie bitte im Issue Tracker ein Problem, in dem Sie Ihren Anwendungsfall beschreiben.
- Die CPU-Auslastung wird beim Ausführen von Apps mit Animationen reduziert.
- Das Problem, dass der QEMU-AIO-Kontext unter Windows auslaufen konnte, wurde behoben.
Mehrere Instanzen einer einzelnen AVD gleichzeitig ausführen
Sie können jetzt mehrere Instanzen desselben AVD starten und gleichzeitig ausführen. Instanzen, die Sie nach der ersten Instanz starten, sind schreibgeschützt und ihre Änderungen am virtuellen Gastlaufwerk werden beim Beenden verworfen.
Wenn Sie mehrere Instanzen desselben AVD gleichzeitig ausführen möchten, starten Sie über die Befehlszeile alle Instanzen nach der ersten Instanz mit dem Flag -read-only
.
Diese Funktion wird durch Kopieren der QCOW2-Dateien ermöglicht, die mit den beschreibbaren Teilen des Android-Images verknüpft sind. Zur Verwaltung des Speicherplatzes haben wir auch das qemu-img
-Befehlszeilentool hinzugefügt, mit dem Sie QCOW2-Dateien vorab verbindlich festlegen können, bevor Sie mehrere Instanzen starten.
Wenn die Funktion Dateibasierte Snapshots des Gast-RAM verwendet wird, teilen sich mehrere AVD-Instanzen den primären AVD-Schnellstart-Snapshot als gemeinsame Quelle für Copy-on-Write-Gast-RAM. Diese Eigenschaft bedeutet, dass die Instanzen einen Großteil ihres RAM gemeinsam nutzen. Verwenden Sie diese Funktion, um Tests durchzuführen, bei denen mehrere Geräte parallel ausgeführt werden müssen.
Wir freuen uns über Ihr Feedback zu möglichen Anwendungsfällen, die Teil Ihres normalen interaktiven oder CI-Workflows sind. In der Problemverfolgung können Sie Probleme erstellen oder hochwählen.
Dateigestützte Gast-RAM-Snapshots
Durch die Voralokation und Zuordnung des Gast-RAM als Datei kann der Emulator jetzt Quickboot-Snapshots während der Laufzeit speichern, anstatt die gesamte Arbeit beim Beenden auszuführen. Wenn beim Schließen Ihrer Emulatoren derzeit lange Speicherzeiten auftreten, aktivieren Sie diese Funktion, um die Leistung des Schnellstarts zu verbessern. Standardmäßig wird ein Quickboot-Snapshot beim Beenden gespeichert und jedes Mal wieder geladen, ähnlich wie bei der Aussetzung und Aktivierung eines echten Geräts.
Da das Android-Gast-RAM jetzt standardmäßig automatisch gespeichert wird, müssen Sie dem Emulator mitteilen, dass er nach jeder Sitzung Änderungen verwerfen soll, wenn Sie einen Gerätestatus definieren und wiederholt aus diesem Status laden möchten. Dazu haben Sie folgende Möglichkeiten:
- Verwenden Sie das Flag
-no-snapshot-save
oder-read-only
, wenn Sie den Emulator über die Befehlszeile starten. - Gehen Sie zu Erweiterte Einstellungen > Snapshots > Einstellungen und setzen Sie Aktuellen Status automatisch als Schnellstart speichern? auf Nein.
- Nachdem Sie diese Option ausgewählt haben, müssen Sie den Emulator neu starten. Wenn der Emulator auf „Automatisch speichern“ gesetzt ist, können Sie mit dem folgenden Befehl einen Checkpoint festlegen:
adb emu avd snapshot remap 0
Nachdem Sie diesen Befehl ausgeführt haben, bleibt der Emulator-Quickboot-Snapshot bei diesem Checkpoint. Führen Sie denselben Befehl noch einmal aus, um den Emulator aus dem Checkpoint zu laden.
Snapshots, die wie bisher über die Snapshot-Benutzeroberfläche aufgenommen und geladen werden, ohne Dateizuordnung.
Da dies eine große Änderung an der Funktionsweise von Quickboot ist, würden wir uns sehr über Ihr Feedback freuen, ob sich die Leistung von Quickboot dadurch verbessert und welche Probleme bei der Verwendung auftreten. Wenn Probleme auftreten, können Sie diese Funktion deaktivieren, indem Sie der Datei ~/.android/advancedFeatures.ini
die folgende Zeile hinzufügen:
QuickbootFileBacked = off
Wenn Sie den Emulator über einen Snapshot starten (entweder über die Befehlszeilenoption -snapshot
oder über einen Snapshot im AVD-Manager), deaktiviert der Emulator sowohl das automatische Speichern von Quickboot-Snapshots als auch das Speichern von Quickboot-Snapshots beim Beenden. So wird das Risiko verringert, dass der Quickboot-Snapshot versehentlich überschrieben wird, und es werden langsame Fallback-Pfade vermieden, die keine dateibasierten Quickboot-Snapshots verwenden.
QEMU 2.12
Wir haben unsere QEMU-Variante von QEMU 2.9 auf QEMU 2.12 umgestellt. Dieses Update enthält die folgenden Änderungen an QEMU:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
Hier sind einige der wichtigsten Änderungen, die sich auf den Android-Emulator auswirken:
- x86:
gdbstub
bietet jetzt Zugriff auf SSE-Register. - Laufwerk-Images: Die Image-Sperre wird standardmäßig hinzugefügt und aktiviert. Mehrere QEMU-Prozesse können nicht in dasselbe Image schreiben, solange der Host OFD- oder POSIX-Sperrungen unterstützt, sofern keine anderen Optionen angegeben werden.
qemu-img: qemu-img resize
unterstützt die Vorabzuweisung der neuen Teile des Images.- Das Schrumpfen von QCOW2-Dateien wird jetzt in
qemu
undqemu-img
unterstützt.
Bedienungshilfen
- Probleme mit Screenreadern wurden behoben und die Unterstützung für diese Tools in der Bildschirmaufzeichnungs- und Snapshot-Benutzeroberfläche wurde verbessert.
- Die Benachrichtigungssymbole für den Schnellstart wurden für Nutzer mit Farbfehlsichtigkeit optimiert.
Grafik
- Ein Problem mit dem Speicherzugriff außerhalb des gültigen Bereichs, das bei OpenGL ES-Vertex-Array-Zeigern auftreten konnte, wurde behoben.
- Einige ältere GPUs unterstützten nicht OpenGL 2.1 oder höher (erforderlich) oder hatten andere Zuverlässigkeitsprobleme. Diese Probleme können dazu führen, dass der Emulator beim Start abstürzt, einfriert oder bei der Standard-GPU-Einstellung unbrauchbar ist. Der Emulator wechselt jetzt automatisch zum Swiftshader-Renderer, wenn er erkennt, dass diese GPUs verwendet werden.
- Ein Problem wurde behoben, durch das der Emulator nicht den richtigen Framebuffer postete, wenn
FBO != 0
zum Zeitpunkt voneglSwapBuffers
gebunden war. - Es wurde ein Problem behoben, durch das das virtuelle Android-Display nur oben links angezeigt wurde. Wir glauben, dass dies auf falsch konfigurierte Qt-Umgebungsvariablen zurückzuführen ist. Der Emulator überschreibt jetzt alle Umgebungsvariablen mit der Qt-Skalierung.
- Ein Problem wurde behoben, bei dem der Emulator in einigen Fällen beim Laden von GLES1-Apps aus einem Snapshot abstürzte.
- Nebenläufigkeitsprobleme in OpenGL und das Starten von Renderingthreads wurden behoben, die zu doppelten Freischaltungen oder beschädigten Daten führen konnten.
- Der Android-Emulator unterstützt jetzt die Unterstützung komprimierter ASTC-LDR-Texturen (
GL_KHR_texture_compression_astc_ldr
) für System-Images, die API-Level 28 oder höher verwenden. - Die meisten modernen GPUs sollten jetzt in der Lage sein, den Emulator mit standardmäßig aktiviertem OpenGL ES 3.x zu starten, ohne das
GLESDynamicVersion
-Funktionsflag zu verwenden. -gpu guest
(Software-Rendering im Gastmodus) wurde eingestellt. Bei Systemabbildern für API-Ebene 28 oder höher wird jetzt automatisch auf Swiftshader umgestellt (-gpu swiftshader_indirect
).- Wenn der Emulator über die Befehlszeile mit dem Flag
-no-window
gestartet wird, ist Swiftshader jetzt der Standard-Renderer.
Standort
- Der Emulator kann jetzt die Peilung zusammen mit der Breiten- und Längengradposition aktualisieren. Der virtuelle Magnetfeldsensor passt sich dynamisch an den magnetischen Norden an, indem er Bewegungen bei der Wiedergabe einer GPX- oder KML-Datei ableitet.
- Die Gerätegeschwindigkeit kann jetzt auf der Seite „Standort“ festgelegt werden.
- Bei der Wiedergabe einer GPX- oder KML-Datei wird die Geschwindigkeit automatisch festgelegt und nach Ende der Wiedergabe auf null gesetzt.
- Die Höhe ist nicht mehr auf -1.000 bis +10.000 Meter beschränkt.
- Ein Problem wurde behoben, durch das der virtuelle GPS-Standort nur dann regelmäßig aktualisiert wurde, wenn das Fenster „Erweiterte Steuerelemente“ mindestens einmal geöffnet wurde.
Kamera
Unter Windows werden jetzt mehr Webcams unterstützt, da der Emulator die Größe der Kameraframes, die von der Webcam gesendet werden, dynamisch anpasst. Außerdem verhindert diese Funktion, dass Fehler bei der Frame-Auslieferung zum Absturz des Emulators führen.
Play Store
Um Probleme zu beheben, bei denen der Speicherplatz auf Play Store-Images aufgebraucht wird, ändert der Emulator die Größe der userdata-Partition jetzt automatisch auf 6 GB, wenn er mit einer neuen Play Store-AVD ausgeführt wird.
Allgemeine Qualitätsverbesserungen und Fehlerkorrekturen
- Einige Nutzer haben gemeldet, dass der Emulator langsam ausgeführt wird. Wir haben eine mögliche Ursache gefunden, bei der das temporäre Verzeichnis für den Emulator zu viele veraltete Dateien enthält. Als Behelfslösung speichert der Emulator ADB-Dateien zur Liveness-Prüfung nicht mehr in diesem Verzeichnis. Es kann jedoch auch hilfreich sein, den Inhalt dieses Ordners zu löschen. Der Ordner befindet sich je nach Betriebssystem an einem der folgenden Speicherorte:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS oder Linux:
/tmp/android-<username>/*
- Windows:
- Wenn der Emulator aufgrund von zu wenig kostenlosem RAM nicht gestartet werden kann, wird jetzt eine Fehlermeldung angezeigt. Wenn Sie Windows verwenden und feststellen, dass kein RAM kostenlos ist, Sie den Emulator aber trotzdem nicht starten können, wurde möglicherweise die Commit-Gebühr überschritten. Hilfe zu diesem Problem finden Sie auf der Seite zur Fehlerbehebung für den Emulator.
- Die Befehlszeilenoption
-sysdir
überschreibt jetzt das abgeleitete Systemabbildverzeichnis ordnungsgemäß. - Das virtuelle Modem unterstützt jetzt die
+MAI
-Abfrage der Modellaktivitätsinformationen. - Es wurden verschiedene Probleme mit Speicherlecks, Speicherbeschädigungen und CPU-Auslastung behoben. Wenn es zu Abstürzen, Speicherlecks oder einer anderen hohen Ressourcennutzung kommt, erstellen Sie bitte im Issue Tracker ein Problem.
- Ein Problem, das unter macOS 10.14 wieder aufgetreten ist, bei dem die Audioqualität bei Verwendung von Bluetooth-Kopfhörern mit dem Emulator global beeinträchtigt wurde, wurde behoben. Um dies zu verhindern, verwendet der Emulator jetzt keine Bluetooth-Audiofunktionen, wenn er unter macOS ausgeführt wird. (Problem 37070892)
- Es wurde ein Problem unter Windows behoben, bei dem die Uhr des Emulators nicht in der richtigen Zeitzone stand.
- Behobene Verlangsamungen und Abstürze des Emulators auf Linux-Systemen mit rotierenden Festplatten (HDDs).
- Einige Kompilierungswarnungen, die unter macOS zu einer Beschädigung des Stacks führen können, wurden behoben.
- Probleme behoben, die zu irreführenden Berichten über das Aufhängen führen können.
- Es wurde ein Problem beim Löschen von Threadpools behoben, das zu einem Absturz führen konnte, wenn einer der Threads nicht erfolgreich erstellt wurde.
- Ein Problem unter macOS wurde behoben, bei dem Timer unzuverlässig wurden, was zu Abstürzen und anderem merkwürdigem Verhalten führte. Wenn der Emulator unter macOS hängt, erstellen Sie bitte ein Problem im Issue Tracker.
- Ein Problem wurde behoben, bei dem beim Schließen des Emulators die Benutzeroberfläche deaktiviert, der Emulator aber nicht geschlossen wurde.
- Es wurden Probleme mit sporadischen Abstürzen behoben, darunter ein Abbruch aufgrund des Öffnens zu vieler Instanzen von
/dev/urandom
. - Es wurde ein Problem behoben, durch das der Emulator nach dem ersten Mal nicht gestartet wurde, wenn ADB erzwungen wurde.
- Der MIPS-Build wurde entfernt. Wenn Sie weiterhin MIPS benötigen, erstellen Sie ein Problem in der Problemverfolgung.
- Es wurde ein Problem behoben, bei dem ADB-Verbindungen beim Laden von Snapshots beschädigt wurden.
- Ein Problem wurde behoben, durch das im Emulatorfenster ein Nachbild oder ein Teleportieren außerhalb des Bildschirms zu sehen war, wenn ein Snapshot fortgesetzt wurde, bei dem sich die Geräteausrichtung von der Standardausrichtung der AVD unterschied.
- Probleme mit Abstürzen beim Speichern von Snapshots wurden behoben.
- Unter Linux können btrfs-Dateisysteme zu extremen Verzögerungen führen, da der Emulator automatisch Snapshots speichert und für seine virtuellen Laufwerke die Kopier-bei-Schreiben-Methode verwendet. Wir empfehlen, das Verzeichnis
~/.android/avd
zu bereinigen und den folgenden Befehl für das leere Verzeichnis~/.android/avd
auszuführen:chattr +C
. Dadurch werden neue Snapshots in einem Ordner erstellt, in dem die Funktion „Kopieren bei Schreibvorgang“ deaktiviert ist.
HAXM 7.3.2
Wir möchten HAXM 7.3.2 noch einmal erwähnen, da es installiert werden muss, damit aktuelle System-Images korrekt auf dem Emulator ausgeführt werden. HAXM 7.3.2 sollte bereits im Stable-Release verfügbar sein. Sie können es auch manuell unter https://github.com/intel/haxm/releases installieren.
Hier sind einige der Probleme, die mit dieser Version von HAXM behoben wurden:
- Zufällige Abstürze von Gastbetriebssystemen mit neuer Linux-Kernel-Version (ab Version 4.6) wurden behoben. Beispiel: Ubuntu 18.04 (#39, #74)
- Ein Fehler im X86-Instruction-Emulator, der zu einem Hostabsturz führen konnte, wurde behoben (#93).
Einstellung der 32-Bit-Windows
Aufgrund der geringen Nutzung und der hohen Wartungskosten planen wir, die 32-Bit-Version des Android-Emulators für Windows einzustellen. Für die 32-Bit-Version des Android-Emulators werden wir einen Umstellungsplan für die 32-Bit-Version des Android-Emulators einführen. Wir freuen uns aber über Feedback zu dieser zukünftigen Änderung.
Bitte teilen Sie uns über den Issue Tracker mit, ob Sie derzeit die 32-Bit-Version des Android-Emulators unter Windows verwenden, und teilen Sie uns mit, wie wir in Zukunft am besten mit Ihnen zusammenarbeiten können.
27.3.10 (August 2018)
Dieses Update enthält die folgende Fehlerkorrektur:
Korrektur der Konfiguration der RAM-Größe
Einige Nutzer haben gemeldet, dass der Emulator langsam läuft. Wir haben eine mögliche Ursache gefunden, bei der die AVD-RAM-Größe in der config.ini
-Datei der AVD falsch festgelegt wurde.
Um dies zu vermeiden, erhöht der Emulator den Mindest-RAM-Wert für Images, die API-Level 26 oder höher verwenden, auf den Android Studio-Standardwert von 1.536 MB. Wenn in der config.ini
-Datei Ihrer AVD keine hw.ramSize
in Megabyte aufgeführt ist, erstellen Sie bitte ein Problem im Issue Tracker.
Sie finden die Datei config.ini
an folgendem Speicherort:
~/.android/avd/<avdname>.avd/config.ini
27.3.9 (Juli 2018)
Dieses Update enthält die folgenden Verbesserungen und Fehlerkorrekturen:
Verbesserte Fehlermeldungen für die Windows-Hypervisor-Plattform
Einige Nutzer hatten Schwierigkeiten, herauszufinden, warum die Windows-Hypervisor-Plattform (WHPX) nicht initialisiert werden konnte, als sie einen WHPX-Emulator aktiviert haben. Um Ihnen bei der Diagnose dieser Probleme zu helfen, haben wir aussagekräftigere Fehlermeldungen hinzugefügt. Sie können diese Fehlermeldungen aktivieren, indem Sie den Emulator über die Befehlszeile mit dem Flag -verbose
ausführen.
Allgemeine Fehlerkorrekturen
- OpenGL-Fehler, die beim Laden eines Schnappschusses in der Kamera-App aufgetreten sind, wurden behoben.
27.3.8 (Juli 2018)
Dieses Update enthält mehrere neue Funktionen, Verbesserungen an bestehenden Funktionen und Fehlerkorrekturen.
Snapshots
Sie können jetzt mehrere AVD-Snapshots für eine bestimmte Gerätekonfiguration speichern und auswählen, welche der gespeicherten Snapshots beim Starten des Emulators geladen werden sollen.
Ab Android Studio 3.2 Canary 13 enthält jede Gerätekonfiguration in den erweiterten Einstellungen des Dialogfelds „Virtuelle Gerätekonfiguration“ ein Steuerelement, mit dem Sie angeben können, welcher AVD-Snapshot beim Starten des AVD geladen werden soll.
Um dieser Erweiterung der Snapshot-Funktionen Rechnung zu tragen, haben wir dem Dialogfeld Erweiterte Steuerelemente die Kategorie Snapshots hinzugefügt. Dieser neue Bereich enthält Steuerelemente zum Speichern und Laden von AVD-Snapshots, einschließlich der Steuerelemente zum Speichern und Laden des Schnellstart-Snapshots, die sich zuvor im Bereich Einstellungen befanden.
Sie können den Namen und die Beschreibung jedes gespeicherten Snapshots bearbeiten.
Weitere Informationen finden Sie unter Snapshots.
HAXM 7.2.0
HAXM 7.2.0 ist jetzt in allen Kanälen verfügbar.
Dieses Update umfasst Fehlerbehebungen und eine verbesserte Unterstützung für große Arbeitsspeichermengen. Außerdem wird mit diesem HAXM-Update und Emulator 27.3 und höher der Inhalt von Snapshots bei Bedarf in den RAM geladen, anstatt den gesamten Snapshot beim Starten des virtuellen Geräts zu laden. Dadurch sollte sich die Zeit zum Laden eines Snapshots erheblich verkürzen.
Weitere Informationen finden Sie unter VM-Beschleunigung konfigurieren.
27.2.9 (Mai 2018)
Dieses Update enthält mehrere neue Funktionen, Verbesserungen an bestehenden Funktionen und Fehlerkorrekturen.
Bildschirmaufzeichnung
Sie können jetzt Video und Audio über den Android-Emulator aufzeichnen und die Aufzeichnung als WebM- oder animierte GIF-Datei speichern.
Die Steuerelemente für die Bildschirmaufzeichnung befinden sich im Fenster Erweiterte Einstellungen auf dem Tab Bildschirmaufzeichnung.
Tipp:Sie können die Steuerelemente für die Bildschirmaufzeichnung auch öffnen, indem Sie Strg + Umschalttaste + R (Befehlstaste + Umschalttaste + R auf einem Mac) drücken.
Klicken Sie auf dem Tab Bildschirmaufzeichnung auf die Schaltfläche Aufzeichnung starten, um mit der Aufzeichnung zu beginnen. Klicken Sie auf Aufzeichnung beenden, um die Aufzeichnung zu beenden.
Die Steuerelemente zum Abspielen und Speichern der Videoaufzeichnung finden Sie unten auf dem Tab Bildschirmaufzeichnung. Wählen Sie zum Speichern des Videos unten auf dem Tab im Menü WebM oder GIF aus und klicken Sie auf Speichern.
Sie können auch eine Bildschirmaufzeichnung aus dem Emulator mit dem folgenden Befehl in der Befehlszeile aufzeichnen und speichern:
adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm
Screenshots
Sie können Screenshots über die Befehlszeile mit einem der folgenden Befehle erstellen:
screenrecord screenshot [destination-directory]
adb emu screenrecord screenshot [destination-directory]
Screenshots werden im PNG-Format gespeichert.
Kamera für virtuelle Szenen und ARCore
Mit der neuen Kamera für virtuelle Szenen ist es jetzt noch einfacher, Augmented-Reality-Apps (AR) mit ARCore zu entwickeln und zu testen. So können Sie Ihre AR-Inhalte in einer virtuellen Umgebung ausprobieren.
Informationen zur Verwendung der virtuellen Szenenkamera im Emulator finden Sie unter AR-Apps im Android-Emulator ausführen.
Bilder des Google Play Store auf Pixel-Geräten
Der Google Play Store ist jetzt für Pixel- und Pixel 2-Gerätebilder aktiviert. In Android Studio 3.2 und höher wird dies im AVD Manager durch das Google Play-Logo in der Spalte Play Store angezeigt. AVDs mit aktiviertem Google Play Store haben im Dialogfeld Erweiterte Steuerelemente den Tab Google Play mit einer praktischen Schaltfläche zum Aktualisieren der Google Play-Dienste auf dem Gerät.
Snapshots
Sie können jetzt einen Snapshot für den Schnellstart laden, ohne den Emulator neu starten zu müssen. Wenn Sie einen Snapshot laden möchten, öffnen Sie das Fenster Erweiterte Steuerelemente auf der Seite Einstellungen und klicken Sie auf die Schaltfläche Jetzt laden.
Wir haben viele Verbesserungen am Laden und Speichern von Snapshots vorgenommen, um die Effizienz der Ressourcennutzung zu verbessern und die Zeit für die einzelnen Vorgänge zu minimieren. Wenn weiterhin ungewöhnlich lange Speichervorgänge auftreten, melden Sie ein Problem und geben Sie dabei Details zu CPU, RAM und den Einstellungen aller aktiven Antiviren-, Firewall- oder Sicherheitssoftware an.
Rendering mit Skia
Wenn Sie Images für API 27 oder höher verwenden, kann der Emulator die Android-Benutzeroberfläche mit Skia rendern, was zu einer flüssigeren und effizienteren Darstellung führt.
Momentan können Sie Skia nur verwenden, wenn Sie es explizit aktivieren.
Verwenden Sie zum Aktivieren des Skia-Renderings die folgenden Befehle in der ADB-Shell:
su setprop debug.hwui.renderer skiagl stop start
Kamera
Unter Windows verwendet Android Emulator Media Foundation als Webcam-Back-End, was die Leistung und die Framerate für Webcam-Aufnahmen erheblich verbessert (bis zu 720p und 30 fps).
Auf einem Mac können Sie jetzt webcam0 und webcam1 gleichzeitig verwenden.
Sonstiges
Die Befehlszeilenoption -phone-number-prefix
wurde in -phone-number [number]
geändert. Damit kann die vollständige Telefonnummer festgelegt werden.
Sie können jetzt alphanumerische SMS-Adressen verwenden.
Fehlerkorrekturen
- Die Linux-Version des Android-Emulators wird jetzt mit einer modernen Clang-C++-Toolchain erstellt. Durch diese Änderung wird das Problem behoben, dass der Emulator aufgrund von libGL- und libstdc++-Fehlern nicht gestartet werden konnte.
- Es wurden mehrere Ursachen für Abstürze und Ruckler behoben.
- Um Abstürze und Verzögerungen zu vermeiden, die durch zu wenig freien Speicherplatz verursacht werden, prüft der Emulator jetzt beim Start, ob genügend freier Speicherplatz vorhanden ist. Er startet nur, wenn mindestens 2 GB kostenlos sind.
- Ein Problem wurde behoben, durch das einige Unity-Spiele nicht gerendert werden konnten.
- Ein DNS-Problem wurde behoben, das dazu führte, dass der Emulator keine Verbindung zum Netzwerk herstellen konnte.
- Ein Problem wurde behoben, durch das Änderungen am internen Speicher, der einer AVD über das Dialogfeld „Virtuelle Gerätekonfiguration“ zugewiesen wurde, nicht funktionierten.
- Ein Problem wurde behoben, bei dem viele adb-Prozesse erstellt und nicht ordnungsgemäß beendet wurden.
- Es wurde ein Problem behoben, bei dem die Schaltflächen zum Drehen und andere Teile der Benutzeroberfläche nur dann reagierten, wenn das Fenster für erweiterte Steuerelemente geöffnet war.
- Ein Problem wurde behoben, durch das das Kopieren und Einfügen vom Host nur funktionierte, wenn das Dialogfeld „Erweiterte Steuerelemente“ mindestens einmal geöffnet wurde.
- Das Rechteck zum Ändern der Größe des rahmenlosen Emulators wurde aktualisiert, um dem visuellen Design des Emulators besser zu entsprechen.
- Telefonieren und SMS werden jetzt richtig deaktiviert, wenn der Flugmodus aktiviert ist.
- Ein Problem wurde behoben, durch das SMS und die Mobilfunkfunktionen nach dem Laden eines Snapshots deaktiviert wurden.
- Sie erhalten keine gefälschten Warnungen mehr, die besagen, dass
“Unable to open... \pstore.bin. Permission denied.”
- Auf einigen Mac-Bildschirmen konnte das AVD nicht neu positioniert werden. Dieses Problem wurde behoben.
- Probleme mit flackernden und leeren Bildschirmen auf neueren MacBook Pro-Computern wurden behoben, wenn AVDs mit Pixel 2 XL-Skins ausgeführt wurden.
- Probleme mit leeren Bildschirmen beim Wechsel in den Zoommodus, während ein frameless-Emulator aktiv war, wurden behoben.
- Ein Problem wurde behoben, durch das die Geräteoberfläche und der Emulatorinhalt beim Heranzoomen nicht mehr synchron gescrollt wurden.
Wenn weiterhin Ruckler oder andere Instabilitäten auftreten, melden Sie bitte das Problem.
27.1.12 (März 2018)
Dieses Update enthält Fehlerkorrekturen für die folgenden Probleme:
- Die Bluetooth-Audioqualität hat sich nach dem Starten des Emulators verschlechtert. (Problem 37095756)
- Standorte, die an einen Emulator gesendet wurden, wurden an alle gesendet. (Problem 73450633)
- Der über die Console festgelegte GPS-Standort wurde durch Werte überschrieben, die über die Option Erweiterte Steuerelemente > Standort auf der grafischen Benutzeroberfläche festgelegt wurden. (Problem 73471760)
Wenn weiterhin Ruckler oder andere Instabilitäten auftreten, melden Sie bitte das Problem.
Mit diesem Update, einem aktuellen System-Image und einer Vorabversion von Android Studio können Sie den Android-Emulator verwenden, um mit ARCore erstellte Augmented-Reality-Apps auszuführen. Ausführliche Anforderungen und eine Anleitung finden Sie unter AR-Apps im Android-Emulator ausführen.
27.1.10 (Februar 2018)
Auflösung der Kameraaufnahme
720p-Frames können jetzt mit einer angeschlossenen Webcam aufgenommen werden.
Damit System-Images mit Android 8.1 (API-Level 27) und höher funktionieren, muss die angeschlossene Webcam 720p-Frames aufnehmen können.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das bei der Webcam-Aufnahme manchmal ein verzerrtes oder komplett grünes Bild ausgegeben wurde.
- Behoben: Die folgende Meldung wurde auch dann angezeigt, wenn kein tatsächlicher Absturz aufgetreten war: „emulator: ERROR: detected a hanging thread 'Qt event loop'. Keine Antwort nach 15.000 ms“
Wenn weiterhin Ruckler oder andere Instabilitäten auftreten, melden Sie bitte das Problem.
27.1.7 (Februar 2018)
Frameless-Emulatorfenster:
Emulatoren mit Geräte-Skin-Dateien werden jetzt standardmäßig ohne Fensterrahmen angezeigt. Wenn der umgebende Window Frame angezeigt werden soll, aktivieren Sie im Fenster Erweiterte Steuerelemente im Bereich „Einstellungen“ die Option Fensterrahmen um das Gerät anzeigen.
Verbesserungen beim Schnellstart, um die Arbeit mit AVD-Snapshots effizienter zu gestalten:
- Sie können einen AVD-Snapshot jederzeit über die Schaltfläche Jetzt speichern im Bereich „Einstellungen“ des Dialogfelds Erweiterte Steuerelemente speichern.
- Der Emulator verkürzt in vielen Fällen die Zeit, die zum Speichern eines Snapshots benötigt wird, da nur die Differenz zwischen dem aktuellen Status und dem zuvor gespeicherten Snapshot gespeichert wird.
Weitere Informationen finden Sie in der Dokumentation zum Schnellstart.
Der Emulator wurde auf QEMU 2.9 aktualisiert.
Zu den wichtigsten Verbesserungen gehören:
- Optimierte E/A-Vorgänge und eine detailliertere Sperrung von E/A-Threads für eine bessere Leistung.
- Behobene Fehler seit QEMU 2.8 (26.1.4).
- Neue Implementierung des HAXM-Backends.
Eine vollständige Liste der Änderungen finden Sie im Änderungsprotokoll für QEMU 2.9.
Swiftshader-Implementierung gemäß OpenGL ES 3.0:
Der Swiftshader-Renderer des Emulators entspricht jetzt vollständig OpenGL ES 3.0. Weitere Informationen zum Swiftshader-Renderer finden Sie unter Erweiterte Steuerelemente im Bereich Einstellungen > Erweitert.
Fehlerkorrekturen
- Ein Problem wurde behoben, durch das die Zwischenablagefreigabe nur funktionierte, wenn die Option Zwischenablagefreigabe aktivieren deaktiviert und wieder aktiviert wurde.
- Ein Absturz bei der Verwendung des Swiftshader-Rendering-Back-Ends mit AVDs mit niedriger Auflösung wurde behoben.
27.0.5 (Januar 2018)
ANGLE für das Rendering unter Windows ist jetzt standardmäßig deaktiviert.
Wenn ANGLE für Sie besser funktioniert, können Sie es mit dem Befehlszeilenflag
-gpu angle_indirect
wieder aktivieren. Alternativ können Sie das Fenster „Erweiterte Steuerelemente“ öffnen, zu Einstellungen > Erweitert gehen und ANGLE D3D11 für die OpenGL ES-Renderer-Einstellung auswählen.Ein Problem wurde behoben, durch das mit der Tastenkombination „Umschalttaste + B“ kein Großbuchstabe „B“ eingegeben wurde.
27.0.2 (Dezember 2017)
Die neue Quick Boot-Funktion bietet schnellere Startzeiten des Emulators, die auf einem Snapshot Ihrer AVD-Instanz basieren.
Quick Boot ist standardmäßig für alle AVDs aktiviert. Beim ersten Starten eines AVD muss ein Kaltstart durchgeführt werden (genau wie beim Einschalten eines Geräts). Alle nachfolgenden Starts sind jedoch schnell und das System wird in den Zustand zurückversetzt, in dem Sie den Emulator geschlossen haben (ähnlich wie beim Aufwecken eines Geräts).
Wenn Sie festlegen möchten, wann der Emulator einen Snapshot speichert, öffnen Sie das Fenster „Erweiterte Steuerelemente“ des Emulators und klicken Sie auf Einstellungen. Hier können Sie eine der folgenden Einstellungen für Save Quick Boot State on Exit auswählen:
- Ja: Speichern Sie immer einen Schnellstart-Snapshot, wenn Sie den Emulator schließen. Das ist die Standardeinstellung.
- Nein: Es wird kein Quick Boot-Snapshot gespeichert. Führen Sie immer einen Kaltstart durch.
- Fragen: Sie werden gefragt, ob der Schnellstart-Snapshot beim Schließen des Emulators gespeichert werden soll.
Ihre Auswahl gilt nur für die aktuell geöffnete AVD.
Weitere Informationen finden Sie in der Quick Boot-Dokumentation.
Unterstützung für Mac OpenGL ES 3 hinzugefügt (für Systemabbilder mit API-Level 24 und höher, Google APIs und x86-ABI)
Für zusätzliche Stabilität in OpenGL ES 2+-Apps verwendet der Emulator jetzt das OpenGL-Kernprofil, sofern verfügbar.
Neue Optionen für das Rendern mit Swiftshader / ANGLE:
-gpu swiftshader_indirect
: Schnellere, stabilere Variante von Swiftshader, die mit Quick Boot funktioniert.-gpu angle_indirect
(nur Windows): Stabilere Variante von ANGLE D3D, die auch mit Quick Boot funktioniert.
Die älteren Optionen
-gpu swiftshader
und-gpu angle
werden jetzt eingestellt. Im Fenster „Erweiterte Steuerelemente“ werden für die Optionen „SwiftShader“ und „ANGLE“ für die OpenGL ES-Renderer-Einstellung unter Einstellungen > Erweitert jetzt die*_indirect
-Varianten verwendet.Diverse andere Fehlerkorrekturen.
26.1.4 (August 2017)
Diese Version enthält Fehlerkorrekturen und die folgenden Verbesserungen bei der GPU-Konfiguration:
- Startanimation bei Ausführung auf dem ANGLE-Renderer aktivieren
- GLES3 deaktivieren, wenn der ANGLE-Renderer verwendet wird
26.1.3 (August 2017)
Dies ist eine Nebenversion mit Fehlerkorrekturen, Leistungsverbesserungen und geringfügigen Funktionsänderungen.
- Diese Version ist jetzt erforderlich, um die aktuellen System-Images von Android 8.0 zu verwenden.
Sie sind Treble-kompatibel und haben separate
vendor.img
-Partitionen. - Die neue HAXM-Version 6.2.0 ist jetzt verfügbar (im SDK-Manager). Sie enthält die folgenden Updates:
- Verbesserte Arbeitsspeichernutzung. Der Arbeitsspeicher, der von HAXM angepinnt wird, entspricht nicht mehr der Größe des RAM der AVD. Stattdessen wird der Arbeitsspeicher bei Bedarf ausgelagert. Dadurch sollte der Emulator auf Computern mit weniger RAM zuverlässiger laufen.
- Der Emulator mit HAXM 6.2.0 kann jetzt unter macOS schneller starten, da eine langwierige Initialisierungsphase übersprungen wird.
- Verbesserungen an der GPU-Konfiguration
- Probleme mit einem schwarzen Bildschirm beim Starten bei der Ausführung von Gast-Software-Rendering wurden behoben, indem auf das hostseitige Software-Rendering mit Swiftshader zurückgegriffen wurde. In den neuesten Versionen der System-Images für die API-Level 19 bis 25 mit Google APIs sollte das Rendering auf der Gastseite funktionieren.
- Es wurde ein Problem behoben, bei dem der Emulator aufgrund älterer Intel-GPUs auf einen Software-Renderer umgestellt wurde, der Emulator aber tatsächlich auf einer diskreten GPU ausgeführt wurde. Welche GPUs auf ANGLE- oder Swiftshader-Rendering umgestellt werden, wird so ermittelt:
- Bei älteren Intel-iGPUs treten bei OpenGL- und ANGLE D3D-Treibern Treiberprobleme auf. Nutzer mit Intel HD Graphics 3xxx und älter verwenden Swiftshader.
- Einige Nutzer haben angegeben, dass sie keine Bilder der API-Ebene 25 verwenden können, weil „Pixel Launcher immer wieder angehalten wird“. Offenbar handelt es sich um ein Treiberproblem bei einigen Intel HD 4xxx-Modellen. Daher werden sie automatisch auf ANGLE umgestellt.
- Für optimale Ergebnisse mit der GPU-Emulation empfehlen wir entweder eine diskrete NVIDIA- oder AMD-GPU oder eine neuere Intel-GPU (Iris, HD 5xxx, HD 5xx/6xx).
- Behoben: Der Emulator konnte nicht gestartet werden (OpenGL-Emulation konnte nicht initialisiert werden), wenn die AVD mit
hw.gpu.mode=host
konfiguriert und der Emulator in einem Remote-Desktop-Client gestartet wurde. - Die Einstellungen für die „OpenGL ES API-Ebene (erfordert Neustart)“ wurden klarer formuliert. Außerdem wurde eine Option hinzugefügt, mit der bei Problemen oder bei Tests mit niedrigeren OpenGL ES API-Ebenen von OpenGL ES 3 auf OpenGL ES 2 heruntergestuft werden kann.
- Der Mesa-Renderer ist veraltet.
hw.gpu.mode=mesa
wird jetzt automatisch auf die Verwendung von Swiftshader auf dem Host umgestellt.
- Verbesserungen für macOS:
- Der Emulator ist jetzt vollständig kompatibel mit macOS 10.13 High Sierra, entweder über Hypervisor.Framework oder HAXM 6.2.0.
- Hypervisor.framework ist jetzt standardmäßig auf macOS für 32-Bit-x86-Images aktiviert, um die Leistung und macOS-Kompatibilität zu verbessern. Wenn Sie Probleme mit diesem Tool haben, senden Sie bitte einen Fehlerbericht und hängen Sie
HVF = off
an~/.android/advancedFeatures.ini
an. Falls diese Datei nicht vorhanden ist, erstellen Sie sie. - Es wurden Probleme behoben, bei denen kein Internet vorhanden war und der Debugger bei Verwendung von Hypervisor.framework nicht angehängt werden konnte.
- Um die Kompatibilität und Leistung der Webcam-Aufnahme zu verbessern, wurde die QTKit-basierte Kameraaufnahme durch eine gepufferte Aufnahme ersetzt, die auf AVFoundation basiert.
- Unterstützung für WLAN in einigen System-Images hinzugefügt (derzeit nur API-Level 25).
Es ist ein Zugangspunkt namens „AndroidWifi“ verfügbar und Android stellt automatisch eine Verbindung dazu her. Sie können die WLAN-Unterstützung deaktivieren, indem Sie den Emulator mit dem Befehlszeilenparameter
-feature -Wifi
ausführen. - Einige Nutzer haben Bedenken geäußert, dass die Play Store-Systembilder mit fester Größe nicht genügend Speicherplatz haben. Daher haben wir die Größe standardmäßig auf 2 GB erhöht (vorher 800 MB).
- Es wurde eine Tastenkombination (Strg + Umschalttaste + U) hinzugefügt, mit der die Seite für die Fehlermeldung direkt über die Seite „Einstellungen“ geöffnet werden kann.
- Das Problem wurde behoben, bei dem der Emulator bei Verwendung einer älteren CPU mit Intel x86 EPT, aber ohne UG nicht startete, wenn mehr als ein Kern konfiguriert war.
- Behoben: Hyper-V wurde nicht richtig erkannt, wenn der Emulator selbst in einem Xen-Hypervisor ausgeführt wurde.
- Ein Problem wurde behoben, das bei einigen Linux-Konfigurationen zum Absturz des Emulators beim Start führte.
26.1.2 (Juli 2017)
Diese Version enthält neue Funktionen und Leistungsverbesserungen.
Es ist jetzt möglich, in den erweiterten Steuerelementen eine benutzerdefinierte HTTP-Proxy-Konfiguration zu definieren. Klicken Sie dazu auf das Dreipunkt-Menü , dann auf Einstellungen und dann auf Proxy. Standardmäßig verwendet der Emulator die HTTP-Proxy-Einstellungen von Android Studio. Auf diesem Bildschirm können Sie jedoch eine manuelle Proxy-Konfiguration definieren.
VNC-Unterstützung für die GPU im Gastmodus hinzugefügt, damit der Emulator per Fernzugriff angezeigt und gesteuert werden kann. So können Sie beispielsweise den Emulator starten und VNC den Port 5901 zuweisen:
- Ausführen:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
Öffnen Sie einen VNC-Viewer wie tightvnc viewer, um eine Verbindung zum Port 5901 herzustellen.
Wenn Sie den integrierten Bildschirmfreigabeclient von Mac verwenden möchten, ist beim Starten des Emulators ein VNC-Passwort erforderlich. Verwenden Sie diesen Befehl, um ein Passwort festzulegen:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
Geben Sie dann
change vnc password
in die Konsole ein und geben Sie ein Passwort ein.
Android O wird derzeit nicht für den VNC-Modus unterstützt.
- Ausführen:
Auf dem Hilfebildschirm für die erweiterten Steuerelemente wurde die Schaltfläche Fehler melden hinzugefügt. Klicken Sie dazu auf das Dreipunkt-Menü und dann auf Hilfe und Emulator-Hilfe. Wenn Sie auf Fehler melden klicken, wird ein Dialogfeld geöffnet, in dem Sie die Details des Fehlerberichts wie den Screenshot, die AVD-Konfigurationsinformationen und ein Fehlerberichtsprotokoll ansehen können. Sie können den Bericht dann für sich speichern oder Emulatorprobleme melden.
Dem Emulator und dem Bereich mit virtuellen Sensoren wurde ein Gyroskopsensor hinzugefügt. Dazu ist ein Systembild mit Gyroskopunterstützung erforderlich (derzeit API-Level 24 und 25).
Dem Qemu-DNS unter Windows wurde das vom Host bevorzugte DNS hinzugefügt, wenn mehrere virtuelle Netzwerkschnittstellen auf dem Host mehrere DNS-Adressen einführen, die für den Emulator nicht funktionieren.
Es wurde experimentelle Unterstützung für das macOS Hypervisor.Framework für 32-Bit-x86-Images unter macOS 10.10 und höher über Server-Flags hinzugefügt. Dadurch sollten die Bootzeit und die Leistung verbessert werden.
- Wenn Probleme auftreten, fügen Sie die Zeile
HVF = off
in~/.android/advancedFeatures.ini
ein.
- Wenn Probleme auftreten, fügen Sie die Zeile
OpenGL ES 3.x ist jetzt standardmäßig für System-Images und Host-GPUs aktiviert, die OpenGL ES 3 unterstützen. Derzeit unterstützen nur Android O (API-Level 26) und Windows/Linux-Hosts OpenGL ES 3.
- Wenn Probleme mit OpenGL ES 3 auftreten, fügen Sie die Zeile
GLESDynamicVersion = off
in~/.android/advancedFeatures.ini
hinzu.
- Wenn Probleme mit OpenGL ES 3 auftreten, fügen Sie die Zeile
Der Emulator verwendet jetzt Offscreen-OpenGL-FBOs für das gesamte Rendering mit Ausnahme des Postens des endgültigen Anzeigebilds. Dies sollte Probleme mit der Farbkonsistenz auf verschiedenen Plattformen beheben.
Nachdem wir Daten zu plötzlichen Verlangsamungen des Emulators erfasst haben, haben wir festgestellt, dass das Problem möglicherweise mit einer Interaktion zwischen älteren Intel OpenGL-Treibern und Windows-Updates zusammenhängt. Daher ist das Rendering bei Nutzern mit Intel HD 4000, 3000, 2000 (und zugehörigen GPUs) jetzt standardmäßig auf einen D3D-Renderer (ANGLE) oder Swiftshader (Software-Renderer) festgelegt.
26.0.0 (März 2017)
Dieser Release ist mit API-Level 26 kompatibel. Außerdem enthält sie eine Reihe von Leistungsverbesserungen und Fehlerkorrekturen.
Nebenversion 26.0.3 (Mai 2017)
- Es werden online aktualisierbare Feature-Flags hinzugefügt, um Probleme aufgrund problematischer Hardwarekonfigurationen schnell zu beheben. Google kann dadurch Fehlerkorrekturen und Funktionen bereitstellen, die von Nutzerkonfigurationen abhängig sind. Dazu werden serverseitige Flags aktualisiert. Wenn du Probleme mit bestimmter Hardware feststellst, melde bitte einen Fehler, damit wir das Problem untersuchen können.
- Neue Unterstützung für die Drehknopf-Eingabe für Systembilder mit Android Wear API-Level 25. Klicke im erweiterten Fenster auf den Tab Drehknopf, um den Drehknopf auf einem Wear-Gerät zu emulieren.
- Das Dialogfeld für Absturzberichte kann jetzt neu skaliert werden und die Einstellung Wann Absturzberichte gesendet werden wird nicht mehr ohne Eingabe auf Fragen zurückgesetzt.
- Für den 32-Bit-Emulator muss die maximale AVD-RAM-Größe jetzt 512 MB nicht überschreiten, damit im virtuellen Adressraum von 2 GB nicht der Speicherplatz aufgebraucht wird.
- Unterstützung für absolute Pfade in Emulator-Images
- Im erweiterten Fenster für Google Play Store-Bilder wird ein neuer Tab hinzugefügt, auf dem die Version der Play-Dienste und eine Schaltfläche zum Prüfen auf Updates der Play-Dienste angezeigt werden.
- Fügt auf der Seite "Emulator-Einstellungen" ein Dropdown-Menü zur Auswahl des OpenGL-Renderers hinzu. Wenn auf einem Windows-Computer Probleme mit dem OpenGL-Treiber auftreten, versuchen Sie es mit den Optionen ANGLE (D3D11) oder ANGLE (D3D9). Es ist ein Neustart erforderlich. Wenn Sie auf einem Computer, der nicht mit Windows läuft, Probleme mit dem OpenGL-Treiber haben, verwenden Sie den Swiftshader-Software-Renderer. Dazu ist ein Neustart erforderlich.
- Ein seltener Absturz beim Beenden wurde behoben, wenn der Emulator sowohl
exit
- als auchminimize
-Befehle empfängt. - Ein Skalierungsproblem beim Wechseln des Displays auf einem Mac-Computer wurde behoben. (Problem 268296)
- Ein Problem wurde behoben, bei dem der Emulator 300% der CPU belegt und diese Auslastung beibehält, nachdem der Hostcomputer aus dem Ruhemodus fortgesetzt wurde oder der Emulator schon lange ausgeführt wird.
- Ein Absturz beim Herunterfahren des Emulators wurde behoben.
Aktualisierungen mit HAXM v6.1.1 (März 2017)
Hinweis:HAXM v6.1.1 ist seit dem 30. März für Mac-Nutzer über den SDK Manager verfügbar und wird bald auch für Windows-Nutzer eingeführt.
Version 26.0.0 des Android-Emulators unterstützt HAXM v6.1.1, die die folgenden Updates enthält:
- Aktiviert die Emulation von Leistungsüberwachungseinheiten (PMU). (Problem 223377)
- Die Koexistenz mit VirtualBox und Docker auf Macs wurde behoben. (Problem 197915)
- Die Fehlermeldung bei der Installation wurde überarbeitet. Sie wird angezeigt, wenn das Installationsprogramm Intel VT-x unter Windows nicht erkennt, in der Regel weil Hyper-V aktiviert ist.
- Unterstützung für die Beschleunigung des Android-Emulators in einer Hyper-V-basierten Windows-VM. Für dieses Update muss die Hyper-V-Instanz des Hosts (diejenige, die die Windows-VM/den Windows-Gast verwaltet) die neueste Version von Hyper-V mit aktivierter verschachtelter Virtualisierung verwenden. Hyper-V muss in der Gast-Hyper-V-Instanz (der Windows-VM) deaktiviert sein.
Abhängigkeiten
- Android SDK Platform-Tools Version 25.0.4 oder höher
- Android SDK Tools Version 26.0.0 oder höher
Neue Funktionen und Fehlerkorrekturen
- Kompatibel mit API-Level 26.
- Vollständig GLES 2.0-kompatibel. Bei einer Host-GPU mit konformen Desktop-OpenGL-Treibern besteht der Emulator jetzt zu 100% die
mustpass
-Liste der Android CTS dEQP-GLES2. Diese Funktion wurde für X86-Images mit API-Level 24 (Revision 11 und höher) veröffentlicht und wird bald für alle System-Images verfügbar sein. - Die Videowiedergabe wurde verbessert. Der Emulator speichert jetzt alle Videofarbbuffer im gemeinsamen Host-/Gast-Speicher und führt die erforderliche abschließende YUV-zu-RGB-Konvertierung auf der GPU durch. 1080p30 sollte nun für die meisten Systeme gut erreichbar sein. Diese Funktion wurde für X86-Images mit API-Level 24 (Version 11 und höher) veröffentlicht und wird bald für alle System-Images verfügbar sein.
- Der Emulator meldet sich jetzt beim Beenden korrekt von der
adb devices
-Liste ab und schließt geöffnete TCP-Ports auf Linux-Computern. - adb-Verbindungen sind jetzt zuverlässiger. Ein laufender Emulator wird schneller erkannt und erhält nicht mehr den Status „offline“ oder „nicht autorisiert“.
25.3.0 (März 2017)
Ab diesem Release wird der Android-Emulator separat von den SDK-Tools veröffentlicht. Diese Version enthält eine Vielzahl von Leistungsverbesserungen, neuen Funktionen und Fehlerkorrekturen.
Nebenversion 25.3.1 (März 2017)
- Ein Absturz, der bei einigen GPU-Konfigurationen durch die standardmäßige Deaktivierung von GLAsyncSwap auftrat, wurde behoben.
Diese Funktion wurde in 25.3.0 hinzugefügt, um das Frame-Timing und die Anzahl der Frames pro Sekunde für Spiele und Videos zu verbessern. Bei einigen unbekannten Computerkonfigurationen führt sie jedoch dazu, dass der Emulator fehlschlägt. Sie können die Funktion manuell aktivieren, indem Sie die Datei
android_sdk/emulator/lib/advancedFeatures.ini
öffnen undGLAsyncSwap = on
festlegen.
Abhängigkeiten
- Android SDK Platform-Tools Version 24 oder höher.
- Android SDK Tools Version 25.3.0.
Neue Funktionen und Fehlerkorrekturen
- Die Emulation wurde auf QEMU 2.7 aktualisiert. Dies umfasst alle aktuellen Fehlerkorrekturen, Leistungsverbesserungen und neuen Funktionen.
- Neue IPv6-Unterstützung
- Der Emulator verwendet jetzt SwiftShader als reinen Software-Renderer auf dem Host.
- Leistungsverbesserungen bei Android Pipe: Android Pipe, der Hauptkommunikationskanal zwischen dem Emulator und dem Android-Betriebssystem, ist jetzt um einiges schneller, hat eine geringere Latenz und eine bessere Multithread-Leistung. Dies führt zu einer Reihe von Leistungsverbesserungen für den Emulator, darunter:
- Verbesserte ADB-Push-/Pull-Geschwindigkeit.
- Bessere Unterstützung der 3D-Beschleunigung.
- Verbesserte Gesamtreaktionsfähigkeit des Emulators.
- Verbesserte Grafikleistung.
- Der Emulator verwendet jetzt GPU-seitige Buffers (glBindBuffers / glBufferData), wenn der Gast sie anfordert. Dadurch wird der CPU-Overhead in einigen Apps reduziert.
- Verbesserte Audiounterstützung
- Schnellere Laufwerk-E/A: Der Emulator verwendet jetzt separate Threads, um Laufwerk-E/A-Vorgänge zu verwalten. Dies führt zu einer geringeren Latenz und einem höheren Durchsatz (ca. 1,5-fache Geschwindigkeit bei sequenziellen E/A-Vorgängen, ca. 5-fache Geschwindigkeit bei E/A-Vorgängen mit Zufallszugriff). Dadurch wird auch die Anzahl der Leerungen auf dem Laufwerk reduziert, was zu einer deutlich geringeren Auslastung des physischen Geräts führt.
- Der Emulator verwendet jetzt dünnbesetzte Dateien zum Starten von Laufwerken auf Windows-Computern, wodurch sowohl der erste Start als auch der Vorgang mit der Funktion „Daten löschen“ beschleunigt werden. Beim Erstellen oder Zurücksetzen einer AVD schreibt der Emulator jetzt 100 bis 200 MB Daten auf das Laufwerk, anstatt mindestens 2 GB.
- Verschiedene Verbesserungen an der Benutzeroberfläche:
- Der Emulator verwendet jetzt Qt 5.7.0, das Fehlerkorrekturen und Leistungsverbesserungen enthält.
- Bei der UI-Initialisierung werden nicht mehr alle Emulator-Ausführbare als Qt-Plug-ins geladen. Dadurch ist sie deutlich kürzer, insbesondere auf Festplatten.
- Interaktionen über die Benutzeroberfläche sind jetzt schneller und flüssiger, u. a. Drehung, Größenanpassung des Fensters und das Laden und Schließen von Fenstern mit erweiterten Steuerelementen.