webentwicklung-frage-antwort-db.com.de

Hohe CPU-Auslastung mit Android-Emulator (qemu-system-i386.exe)

Die CPU-Nutzung des Emulators qemu-system-i386.exe läuft fast ständig zwischen 7 und 9

Android studio 2.1Android SDK Tools: 25.1.3Host Betriebssystem: Windows 7 - i7 2630QM - 8 GB RamIntel x86-Atom-Systemabbild installiert

Egal welche Einstellung ich im Emulator ändere: Emulierte Leistung, Multi-Core-CPU, x86-64-Image, immer dasselbe

Es ist wirklich nervig Fan immer an

Hat jemand eine Lösung für dieses Problem gefunden?

Danke vielmals

51
skystar7

Die Ursache für die ständige CPU-Auslastung ist der Sound. Wenn Sie in Ihrem Emulator keinen Ton benötigen, können Sie ihn deaktivieren, indem Sie die Konfigurationsdatei des AVD bearbeiten. 

Diese beiden Zeilen ändern/hinzufügen

hw.audioInput=no
hw.audioOutput=no

Unter Linux/Mac befindet sich die Datei unter ~/.Android/avd/<AVD_Name> .avd/config.ini
Unter Windows befindet sich die Datei unter C:\Benutzer\<Benutzername> \. Android\avd\<AVD_Name> .avd\config.ini

94
Benjamin Mesing

Auf einem Mac habe ich festgestellt, dass der Emulator über 100% CPU verbrauchte, nachdem mein Laptop in den Ruhezustand ging. Das Ausschalten des Audios, wie Benjamin vorgeschlagen hatte, konnte dieses Problem nicht beheben.

Ein Neustart des simulierten Geräts durch langes Drücken des Ein-/Ausschalters am Emulator funktioniert für mich.

8
antoine

Das gleiche Problem mit qemu unter Win7, HAXM 7.2.0. Ich habe versucht, das Audio auszuschalten, es hat nicht geholfen. Qemu verbraucht zu jeder Zeit etwa 20% der CPU.

Ich habe Lösungen in der HAXM-Datei mit den Versionshinweisen gefunden:

  • Unter Windows kann Avast Antivirus mit HAXM interferieren und Android Emulator oder QEMU sehr langsam laufen . Um dieses Problem zu umgehen, deaktivieren Sie "Avast-Einstellungen> Fehlerbehebung" die Option "Geschachtelte Virtualisierung verwenden, wo verfügbar".

Ich habe Avast Pro Antivirus 18.5. Ich habe diesen Parameter deaktiviert, einen Neustart des PCs vorgenommen und verbraucht jetzt qemu 0% im Leerlauf, Android funktioniert einwandfrei.

UPDATE: Wenn QEMU erneut CPU verbraucht, überprüfen Sie zuerst den Aktualisierungsstatus von Avast. Nach dem Hintergrund-Update kann Avast wieder zu HAXM führen. Starten Sie Windows einfach neu, um das Problem zu lösen.

6
Nexus7fm

Mit dem Emulator x86_64 (oder dem 64-Bit) wurde es für mich gelöst. Sie empfehlen die x86-Version, aber sie verstand sich für mich.

5
Bri6ko

Ich hatte dieses Problem Anfang November 2018.

Virtuelles Gerät hat ständig versucht, eine Verbindung zu den Daten des Mobilfunknetzes herzustellen, also habe ich es im Gerät selbst ausgeschaltet.

3
s.lg

So finden Sie heraus, was auf dem virtuellen Gerät die meiste CPU verbraucht:

adb Shell

$ top

Daraufhin wird eine Liste der Prozesse mit der höchsten CPU-Auslastung angezeigt.

Auf diese Weise können Sie feststellen, ob es sich um einen Prozess (z. B. Ihre App) im Emulator, einen anderen Prozess im Emulator oder nur um die Emulation selbst handelt, die viel CPU benötigt.

Versuchen Sie im letzteren Fall, den Emulator zu optimieren, indem Sie HAX (Native Intel Instructions) installieren, oder aktivieren Sie möglicherweise die Hardwarebeschleunigung mit dem AVD-Profileditor.

2
jorisw

Ich habe die CPU-Auslastung meines Emulators reduziert, indem ich die Framerate des Monitors auf 60 Hz eingestellt habe. Es war auf 144 Hz und meine CPU lief zu 60% - 70%. Wenn Sie nur die Framerate des Monitors ändern, steht er jetzt bei 3% Auslastung.

1
soniiic

In meinem Fall trat dieses Problem nur auf, wenn mehrere Instanzen des Emulators ausgeführt wurden.

Führen Sie das im Android-SDK (<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-Android.exe) enthaltene Installationsprogramm für HAXM (Intel Hardware Accelerated Execution Manager) erneut aus, wählen Sie Change aus, und sehen Sie, wie viel Speicherplatz HAXM zugewiesen ist. Wenn es 2 GB oder weniger ist, möchten Sie es wahrscheinlich auf mindestens 4 GB erhöhen. Starten Sie anschließend den Emulator erneut und prüfen Sie, ob die CPU-Auslastung abnimmt.

1
Austin B

Ich konnte das Audio nicht mit der Datei config.ini abschalten, sondern nur mit dem Argument -noaudio cmd line an qemu. In Android Studio 3.2 können Sie jedoch keine benutzerdefinierten Argumente zum Emulator hinzufügen. Daher habe ich Folgendes gemacht:

Im Emulatorverzeichnis des Android SDK, in meinem Fall ~/Android/Sdk/Emulator /

mv emulator emulator.orig

Erstellen Sie ein Bash-Skript namens Emulator mit dem Inhalt:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

Dann:

chmod +x emulator

Nun wird das Argument -noaudio zu allen Emulatoraufrufen von Android Studio hinzugefügt und spart eine Menge CPU-Zyklen.

0
Magnus Berg

Das Ändern der Auflösung funktionierte von mir aus. Ich habe 1440 x 2560 560 dpi Oreo 8.1 verwendet. Jetzt verwende ich M-DPI Oreo 8.1