Android模拟器使用100%的CPU即使我没有运行它?

时间:2011-09-04 05:29:40

标签: android mobile emulation

我有一个celeron处理器:/和eclipse上的android模拟器使用100%的cpu并挂起所有东西,除非我杀了它。我只是从一本书中尝试一个hello android程序,并且不太了解android甚至是eclipse。我已经安装了android-eclipseplugin。

有人可以帮助我吗?谢谢!

10 个答案:

答案 0 :(得分:62)

正如其他人所说,解决方案是禁用声音。不幸的是,在最近的Android Studio版本中(我使用的是1.4),已经从GUI中删除了禁用声音的选项。要禁用声音,您可以通过使用-noaudio标志从命令行启动模拟器,或者编辑AVD的配置文件并设置以下参数来执行此操作:

hw.audioInput=no
hw.audioOutput=no

在Linux上,我在~/.android/avd/myAVD.avd/config.ini

找到了该文件

答案 1 :(得分:41)

我遇到了完全相同的问题,并找到了适合我的解决方案。 在AVD的配置中,我将“音频播放支持”的额外标志设置为“否”。 我还确保AVD有1GB的RAM。

这对我有用。

答案 2 :(得分:5)

Niels的回答对我很有用https://stackoverflow.com/a/7706018 因为模拟器停止使用100%CPU(下降到10-15%) 此外,它还有另一个有用的“副作用”。我注意到在Totem中播放视频或在RhythmBox中播放音乐会在模拟器运行时阻塞。 VLC会播放视频但拒绝播放视频的伴奏音轨。 一旦模拟器被杀,音乐就会开始播放。 Niels将“音频播放支持”设置为“否”的答案可以解决此问题。 我正在运行Ubuntu 11.04和Android模拟器版本13.0(build_id OPENMASTER-172639)。

答案 3 :(得分:5)

对我来说,它取消选中多核CPU 复选框

enter image description here

答案 4 :(得分:1)

Android模拟器在没有硬件加速的情况下模拟ARM CPU,即使在core2duo上也可能非常慢。

您可以尝试降低虚拟设备的屏幕分辨率,从而显着提高性能。

答案 5 :(得分:1)

众所周知,模拟器的启动速度很慢;在动力不足的机器上可能需要15分钟或更长时间。您可以通过将-no-boot-anim传递给模拟器启动命令来加快启动速度。其他模拟器选项描述为here。此外,一些AVD比其他AVD启动更快。尝试使用对您有用的最低级别SDK创建AVD。

模拟器启动后,您无需关闭它。当应用程序退出(或崩溃或其他)时,您可以再次运行它。

答案 6 :(得分:1)

值得一提的另一个选择是Genymotion。它是一个基于VirtualBox的Android模拟器,具有预先创建的图像。它支持Android模拟器不太擅长的一些功能,如Wifi 3G,蓝牙,GPS(具有花哨的Google Maps集成,因此您不必手动查找坐标),多个屏幕等。

值得在http://www.genymotion.com/

尝试一下

答案 7 :(得分:1)

我有这个问题在Ubuntu 14.04上运行模拟器。禁用音频会降低CPU使用率,但是如果您需要音频工作,可以通过添加符号链接来修复它:

sudo ln -s /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/x86_64-linux-gnu/libpulse.so

原因是模拟器尝试使用pulseaudio作为后端,但无法链接到Ubuntu上不存在的libpulse.so(除非您安装了libpulse-dev包)。然后它将回退到ALSA,ALSA不断调用poll,导致100%的CPU使用率。

A fix for the emulator is coming,但目前,添加符号链接可以解决问题。

答案 8 :(得分:1)

我在我的macOS High Sierra上遇到了同样的问题,对我来说有助于创建新的AVD设备并在Android版本对话框中选择CPU / ABI = x86_64,而不是x86。希望有所帮助。

答案 9 :(得分:0)

我强烈建议不要使用android模拟器。使用VirtualBox + android x86 OS(你可以下载它here),你将获得真正的性能提升。

不幸的是,据我所知,它不是来自谷歌,它只支持Android 2.2。我真的不明白,为什么谷歌不会像iPhone模拟器一样快速制作模拟器,或者为调试制作官方x86版本。我不需要模拟ARM处理器指令,我认为99%的开发人员也不需要它。