Linux 上的 Android 模拟器性能

Linux 上的 Android 模拟器性能

我在笔记本电脑上安装了 android SDK 和 eclipse 插件,但令我惊讶的是,模拟器占用了我的一个 CPU 核心的 100%。我在一台没有这个问题的台式机上安装了完全相同的设置。两台电脑都运行的是 arch linux,昨天都更新了。

诚然,台式机的硬件比笔记本电脑更好,但我预计笔记本电脑的 CPU 使用率会更接近 50%,而不是 100%。

两个 Android 虚拟设备具有相同的规格:

CPU: ARM
Target: Android 2.3.3 - API Level 10
Skin: WVGA800
SD Card: 512M
hw.lcd.density: 240
vm.heapSize: 24
hw.ramSize: 256

笔记本电脑主机配备 Intel Core 2 T7200 @ 2GHz CPU 和 2Gb RAM。
台式机主机配备 AMD Phenom II X4 940 @ 3GHz CPU 和 8Gb RAM。

Android 模拟器仅使用 1 个核心,以下是 CPU 使用率结果:
笔记本电脑:

Cpu0  : 22.8%us, 76.5%sy,  0.0%ni,  0.3%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu1  : 11.2%us,  2.4%sy,  0.0%ni, 86.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2055484k total,  1860304k used,   195180k free,     5276k buffers
Swap:  2000088k total,   106872k used,  1893216k free,   350780k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                       
 2026 xyz       20   0  396m 207m 7192 R  100 10.3   4:11.58 emulator-arm    

桌面:

Cpu0  :  0.7%us,  0.0%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  1.3%us,  0.0%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  5.0%us,  1.3%sy,  0.0%ni, 91.9%id,  1.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   7666324k total,  6506808k used,  1159516k free,  1650960k buffers
Swap:  8988348k total,        0k used,  8988348k free,  2867300k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                            
 2811 xyz       20   0  392m 220m 6276 S    8  2.9   0:33.58 emulator-arm     

有什么方法可以提高笔记本电脑上的模拟器性能?

[更新] 我使用相同的设置在同一台笔记本电脑的 Win7 上运行了模拟器,启动后,与 Linux 不同,它没有使用 100% 的 CPU 核心。此外,我尝试从 Linux 中的终端运行模拟器,当我在桌面 Linux 主机下没有收到此消息时,我收到了此消息:

无法将“/dev/hpet”配置为具有 1024Hz 计时器。这不是致命错误,但为了获得更好的模拟准确性,请以 root 身份输入:“echo 1024 > /proc/sys/dev/hpet/max-user-freq”。

我不太熟悉 rtc 或 hpet,但似乎 max-user-freq 设置没有任何作用,我仍然收到相同的警告。

答案1

您的 AMD 处理器很可能比您想象的要好得多。您可以尝试在笔记本电脑上运行时模拟较小的显示尺寸,或者您可以考虑在桌面上远程运行模拟器,使用NX或类似的东西。

Android 的 x86 端口据称运行速度要快得多(因为它们在虚拟机中运行,而不是被模拟),但我没有使用它们的经验。

答案2

有很多方法可以提高 Android 模拟器的性能。第一个也是最简单的方法是增加 RAM 以及启用快照

Android AVD 快照

当不做与高分辨率无关的事情时,您也可以尝试降低分辨率。

但最有效的方法是下载 Intel x86 映像。如果你的 CPU 支持虚拟化 (VT),则安装英特尔 HAXM并且性能也会得到更大的提高。

Android Intel x86 映像
(来源:英特尔网站

您也可以尝试安卓 x86(教程这里) 在虚拟机中并使用adb connect IP命令像通过wifi在真实设备中调试一样。

adb 连接

adb 连接术语

相关内容