Android模拟器的高CPU使用率(qemu-system-i386.exe)

时间:2016-05-06 02:28:02

标签: android-emulator

模拟器qemu-system-i386.exe cpu的使用率几乎不断在7~9之间运行

Android studio 2.1 Android SDK工具:25.1.3 主机操作系统:Windows 7 - i7 2630QM - 8GB Ram 已安装Intel x86 Atom System Image

无论我在模拟器中更改的设置如下:模拟性能,多核CPU,x86-64图像,总是一样的

总是真的很讨厌粉丝

任何人都有解决此问题的方法吗?

22 个答案:

答案 0 :(得分:112)

CPU使用率不变的原因是声音。如果您的模拟器中不需要声音,可以通过编辑AVD的配置文件来禁用它。

更改/添加这两行

hw.audioInput=no
hw.audioOutput=no

Linux / Mac 上,文件位于〜/ .android / avd /< AVD_Name> .avd / config.ini
Windows 上,该文件位于C:\ Users \< username> \ .android \ avd \< AVD_Name> .avd \ config.ini

答案 1 :(得分:10)

在Mac上,我注意到我的笔记本电脑进入睡眠状态后仿真器使用了超过100%的CPU。正如本杰明建议的那样关闭音频并没有解决这个问题。

通过长按仿真器上的电源按钮重新启动模拟设备对我来说很有用。

答案 2 :(得分:7)

在Win7,HAXM 7.2.0上,qemu出现相同的问题。我尝试关闭音频,但没有帮助,qemu随时消耗大约20%的CPU,Android在x86和x64图像上的运行速度都很慢。

我已经在HAXM的发行说明文件中找到了解决方案:

  • 在Windows上, Avast Antivirus 可能会干扰HAXM,并导致Android Emulator或 QEMU运行非常缓慢。一种解决方法是在Avast设置>故障排除中取消选中“使用嵌套虚拟化”。

我有Avast Pro Antivirus 18.5。我没有选中此参数,重新启动了PC,现在qemu消耗了0%的空闲时间,Android运行正常。

更新:如果QEMU开始再次消耗CPU,请首先检查Avast的更新状态。后台更新后,Avast可能会再次开始干扰HAXM。只需重新启动Windows即可解决。

答案 3 :(得分:5)

使用x86_64(或64位)模拟器为我解决了它。他们推荐x86版本,但它正在为我做好准备。

答案 4 :(得分:3)

我在2018年11月开始遇到了这个问题。

虚拟设备正在尝试连接到移动网络数据,因此我在设备本身内部将其关闭。 现在工作很棒。

答案 5 :(得分:3)

我正在使用Intel Core i9和16 GB RAM和Radeon Pro 560X 4GB图形的 macOS Catalina (版本10.15.2)。

我使用 仿真电源按钮 通过 重启仿真设备 解决了qemu的CPU使用率过高的问题。 / p>

此外,在创建AVD时,我选择了Hardware图形渲染器而不是Auto

答案 6 :(得分:2)

在我的情况下,是引起问题的原因是快速引导,迫使其进入正常引导,打开C:\Users\<username>\.android\avd\<AVD name>\config.ini中的文本文件并更改至少一个值。

例如更改行

hw.battery=yes 

hw.battery=no

答案 7 :(得分:1)

就我而言,我在运行模拟器的多个实例时只遇到了这个问题。

重新运行Android SDK(<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe)中提供的英特尔硬件加速执行管理器(HAXM)安装程序,选择更改,并查看为HAXM分配了多少内存。如果它是2 GB或更少,您可能希望将其提升至至少4 GB。然后重新启动模拟器,看看CPU使用率是否下降。

答案 8 :(得分:1)

我通过将显示器的帧率设置为60hz来降低模拟器的CPU使用率。它是在144hz,我的CPU运行在60% - 70%。通过仅改变显示器的帧率,现在它的使用率为3%。

答案 9 :(得分:1)

我无法使用config.ini文件关闭音频,而只能使用qemu的-noaudio cmd行参数关闭。但是,对于Android Studio 3.2,您无法将自定义参数添加到模拟器中,因此我做到了:

在Android SDK的仿真器目录中,以我为例,〜/ Android / Sdk / emulator /

mv emulator emulator.orig

制作一个名为emulator的bash脚本,内容如下:

#!/bin/bash

DIR=`dirname "$0"`

$DIR/emulator.orig -noaudio $*

然后:

chmod +x emulator

现在,参数-noaudio将被添加到Android Studio中所有模拟器的调用中,并将为您节省大量CPU周期。

答案 10 :(得分:1)

我最近在Windows 10(18363)上遇到了同样的问题:AVD以100%使用了主机的所有16个线程,似乎应该归咎于AVD上的android.hardware.graphics.composer@2.1-service进程。

对我而言有什么帮助:转到AVD settings-Advanced-将OpenGL ES renderer更改为Desktop native OpenGL,然后重新启动AVD。现在,它占用了我2-3%的CPU资源。希望这对某人有帮助。

答案 11 :(得分:1)

我通过取消“将当前状态自动保存到Quickboot”解决了该问题

快照->设置->自动将当前状态保存到Quickboot-否

答案 12 :(得分:0)

对我来说,我关闭了 WIFI,使用率从 112% 下降到 10%。我建议这样做

答案 13 :(得分:0)

就去做

$adb shell
$top

看哪个CPU高的PID

$kill -9 <PID>

答案 14 :(得分:0)

就我而言,使用硬件图形解决了我的问题。

enter image description here

答案 15 :(得分:0)

在我的情况下是飞行模式,当打开时,CPU使用率会跳到 99%

cpu usage

该问题已在Android 10.0 x86上发现。

答案 16 :(得分:0)

使用旧的Android版本我使用了Lollipop Galaxy Nexus API 22 ,将CPU使用率从 220%降低到 30%左右! ...

我还切换了:仿真性能>图形>硬件

使用 Android Api 25 ...图形硬件以及关闭AVD音频和GPS不适用于我...

平台:MacOS

答案 17 :(得分:0)

我的情况是,我选择software进行adv中的图形渲染。因此,在更改为hardware之后,请将CPU使用率从60降低到10,并将CPU温度从70降低到40。

答案 18 :(得分:0)

禁用设置中的位置并禁用触摸声音。

答案 19 :(得分:0)

要了解虚拟设备上使用的CPU最多:

adb shell

$ top

这将向您显示CPU使用率最高的进程列表。

这将帮助您确定它是仿真器中的一个进程(例如您的应用程序),仿真器中的另一个进程还是只是使用大量CPU的仿真本身。

在后一种情况下,请尝试通过安装HAX(本地intel指令)来优化仿真器,或者使用AVD配置文件编辑器启用硬件加速。

答案 20 :(得分:0)

更改决议对我有效。我使用的是1440 x 2560 560 dpi Oreo 8.1。现在我正在使用M-DPI Oreo 8.1

答案 21 :(得分:-1)

更新:

我已经在genymotion.com/plugins上安装了Genymotion插件,它有着惊人的性能