模拟器 qemu-system-i386.exe 的 CPU 使用几乎一直在7 ~ 9之间运行
Android 工作室2.1 Android SDK 工具: 25.1.3 主机操作系统: Windows7-i72630QM-8GB 内存 安装了 Intel x86 Atom 系统映像
无论我在模拟器中改变什么设置: 仿真性能、多核 CPU、 x86-64映像,总是相同的东西
它真的很烦人,风扇总是开着
有人能解决这个问题吗?
更新:
我已经在 Genymotion.com/plugins 安装了 Genymotion 插件,它的性能非常好
不断使用 CPU 的原因可能是声音。如果你的模拟器不需要声音,你可以通过编辑 AVD 的配置文件来禁用它。
更改/添加这两行
hw.audioInput=no hw.audioOutput=no
更新: 正如 buncis 评论的那样,如果不需要,你也可以尝试关闭 GPS:
hw.GPS = no
在 Linux/Mac上,该文件位于 ~/. android/AVD/< AVD _ Name > . AVD/config.ini 在 窗户上,该文件位于 C: Users < username > . android AVD < AVD _ Name > . AVD config.ini
在 Mac 上,我注意到在我的笔记本电脑进入睡眠状态后,模拟器使用了超过100% 的 CPU。按照本杰明的建议关掉音频并没有解决这个问题。
通过长按模拟器上的电源按钮重新启动模拟设备对我来说很有效。
在我的例子中,只有在运行多个模拟器实例时才会遇到这个问题。
重新运行 Android SDK (<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe)中提供的 Intel 硬件加速执行管理器(HAXM)安装程序,选择 改变,查看分配给 HAXM 的内存量。如果它是2GB 或更少,您可能希望将其提高到至少4GB。然后重新启动模拟器,看看 CPU 使用率是否下降。
<Android SDK path>\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe
使用 x86 _ 64(或64位)模拟器为我解决了这个问题。他们推荐了 x86的版本,但是我觉得不太好。
我将显示器的帧率设置为60hz,从而减少了模拟器的 CPU 使用量。它在144赫兹,我的 CPU 运行在60% -70% 。通过改变显示器的帧率,它现在只有3% 的使用率。
改变分辨率对我起作用了。我用的是1440x2560560dpi奥利奥8.1。现在我正在使用 M-DPI 奥利奥8.1
Win7,HAXM7.2.0上的 qemu 也有同样的问题。我试过关掉音频,但没用,qemu 随时都会消耗大约20% 的 CPU,Android 在 x86和 x64图像上运行都很慢。
我在 HAXM 的发布说明文件中找到了解决方案:
我这里有一个18.5版的安宏杀毒软件。我已经取消了这个参数,重新启动电脑,现在 qemu 在空闲时消耗0% ,Android 工作正常。
更新: 如果 QEMU 再次启动消耗 CPU,首先检查 Amad 的更新状态。在背景更新后,阿康提可能会再次开始干扰 HAXM。只要重新启动 Windows 就可以解决这个问题。
我无法使用 config.ini 文件关闭音频,但只能使用 qemu 的-nodio cmd 行参数关闭音频。但是,对于 Android Studio 3.2,你不能向模拟器添加自定义参数,所以我做了这个:
在 Android SDK 的模拟器目录中,在我的例子中是 ~/Android/SDK/Simulator/
mv emulator emulator.orig
创建一个 bash 脚本,称为模拟器,其内容如下:
#!/bin/bash DIR=`dirname "$0"` $DIR/emulator.orig -noaudio $*
然后:
chmod +x emulator
现在,参数-noAudio 将被添加到 Android Studio 的所有模拟器调用中,并将为您节省大量 CPU 周期。
我在2018年11月初就遇到了这个问题。
虚拟设备满足于尝试连接到移动网络数据,所以我在设备内部关闭了它。 现在干得不错。
要了解虚拟设备上什么东西使用 CPU 最多:
adb shell $ top
这将显示 CPU 使用率最高的进程列表。
这将帮助您确定它是模拟器中的一个进程(比如您的应用程序) ,还是模拟器中的另一个进程,或者仅仅是使用大量 CPU 的模拟本身。
在后一种情况下,尝试通过安装 HAX (原生英特尔指令)来优化模拟器,或者使用 AVD 配置文件编辑器来启用硬件加速。
在设置中禁用位置,也禁用触摸声音。
我的情况下,因为我选择 software的图形渲染广告。所以改变后的 hardware减少 CPU 使用从60到10,CPU 温度从70到40。
software
hardware
我在 MacOS Catalina(版本10.15.2)与英特尔酷睿 i9和16 GB 内存和 Radeon Pro 560X 4 GB 图形。
我解决了高 CPU 使用 qemu 的 重新启动模拟设备使用 模拟电源按钮。
另外,在创建 AVD 时,我选择了 Hardware图形渲染器而不是 Auto。
Hardware
Auto
我通过取消“自动保存当前状态到快速启动”解决了这个问题
快照-> 设置-> 自动保存当前状态到 Quickboot-否
在我的例子中,是快速引导导致了问题,强制进入正常引导打开 C:\Users\<username>\.android\avd\<AVD name>\config.ini中的文本文件并更改至少一个值。
C:\Users\<username>\.android\avd\<AVD name>\config.ini
例如,改变线条
hw.battery=yes
到
hw.battery=no
使用旧的 Android 版本 我用的是棒棒糖 Galaxy Nexus API 22降低了从 220% 到大约 百分之三十的 CPU 使用率。
我还切换了: 仿真性能 > 图形 > 硬件
使用 Android Api 25... 图形硬件和关闭 AVD 音频和 GPS 不适合我..。
平台: MacOS
在我的案例中是 飞机模式,当打开 CPU 时,使用率跳到 99% :
这个问题在 Android 10.0 x86上被注意到了。 如果你把飞机模式关闭,然后 CPU 的使用应该恢复正常。
我最近在 Windows 10(18363)上遇到了同样的问题: AVD 100% 地使用了主机的16个线程,似乎是 AVD 上的 android.hardware.graphics.composer@2.1-service进程造成的。
android.hardware.graphics.composer@2.1-service
对我有帮助的是: 转到 AVDsettings-Advanced-将 OpenGL ES renderer改为 Desktop native OpenGL并重新启动 AVD。现在它使用了2-3% 的 CPU 资源。希望这对谁有帮助。
settings
Advanced
OpenGL ES renderer
Desktop native OpenGL
在我的案例中,使用硬件图形解决了我的问题。
照做就是了
$adb shell $top
看哪个 PID 高 CPU
$kill -9 <PID>
对我来说,我关闭了 WIFI,使用率从112% 下降到10%
在 Api31及32上: 用 显示高级设置编辑每个 AVD 配置,并确保: