使Android模拟器运行得更快

hpi*_*que 243 testing performance android emulation android-emulator

Android模拟器有点迟钝.对于某些设备,如Motorola Droid和Nexus One,应用程序在实际设备中的运行速度比模拟器快.这在测试游戏和视觉效果时是个问题.

如何使模拟器尽可能快地运行?我一直在玩弄它的参数,但还没有找到一个显示出明显改进的配置.

Gen*_*kin 223

官方网页

快~50%

视窗:

  • 安装"Intel x86仿真器加速器(HAXM)"=> SDK-Manager/Extras
  • 安装"Intel x86 Atom System Images"=> SDK-Manager/Android 2.3.3
  • 转到Android SDK根文件夹并导航到extras\intel\Hardware_Accelerated_Execution_Manager.执行文件IntelHaxm.exe进行安装.(在Android Studio中,您可以导航至:设置 - > Android SDK - > SDK工具 - > Intel x86仿真器加速器(HAXM安装程序))

  • 使用"Intel atom x86"CPU/ABI创建AVD

  • 运行模拟器并在控制台中检查HAXM是否正在运行(打开命令提示符窗口并执行命令:sc query intelhaxm)

在此输入图像描述

另外别忘了安装这个

在此输入图像描述

在AVD创建期间PS添加仿真存储器:硬件/新/设备RAM大小/设置值512或更多

Linux的:

  • 安装KVM:打开GOOGLE,写"kvm安装"
  • 使用"Intel atom x86"CPU/ABI创建AVD
  • 从命令行运行:emulator -avd avd_name -qemu -m 512 -enable-kvm
  • 或者从Eclipse运行:运行/运行配置/选项卡"目标" - >检查Intel x86 AVD并在"其他仿真器命令行选项"窗口中添加:-qemu -m 512 -enable-kvm(单击运行)

在此输入图像描述

PS For Fedora,适用于Ubuntu

OS-X:

  • 在Android SDK Manager中,安装Intel x86 Atom System Image
  • 在Android SDK Manager中,安装Intel x86仿真器加速器(HAXM)
  • 在Finder中,转到Intel Emulator Accelerator的安装位置并安装IntelHAXM(打开dmg并运行安装).您可以将鼠标放在SDK Manager中的Emulator Accelerator条目上找到该位置.
  • 创建或更新AVD并将Intel Atom x86指定为CPU. 英特尔x86仿真器加速器(HAXM)显示位置

PS:检查这个工具,即使试用也很方便

  • 这也适用于OSX.从SDK管理器下载软件包后,您需要安装`/ extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg`. (8认同)
  • 使用**"使用主机GPU"**的Windows指令给了我一个超快的模拟器!(我有一个支持的英特尔处理器和一个nVidia显卡.)动画是**黄油光滑**(大部分时间_;在其他时候,非常小的抽搐)!请注意,您必须**重启Eclipse**以便AVD Manager选择_Intel Atom(x86)_ CPU选项.**提示:**不要分配太多RAM.凭借1GB RAM,仿真器无法启动(使用GPU),但512MB RAM可以顺利运行并且启动非常快(再次使用GPU). (5认同)
  • 我必须首先通过控制面板下的程序和功能禁用Hyper V技术才能使其工作. (2认同)

mco*_*n75 34

更新:现在可以使用Intel x86映像,最好的答案是上面的热情.

正如CommonsWare正确指出的那样,仿真器很慢,因为它模拟了ARM CPU,这需要转换为Intel操作码.这种虚拟化会扼杀CPU.

为了使模拟器更快,你必须给它更多的CPU.如果可以,请从快速CPU或升级开始.

然后,给模拟器更多的CPU:

  1. 禁用超线程 - 由于仿真器似乎不使用多个核心,超线程实际上减少了仿真器将获得的总CPU时间.禁用HT会降低利用多个CPU的应用程序的速度.必须在BIOS中禁用超线程.
  2. 使模拟器在CPU 0以外的CPU上运行 - 这比关闭HT的影响要小得多,但它有一些帮助.在Windows上,您可以指定进程将运行的CPU.许多应用程序将咀嚼CPU 0,默认情况下,模拟器在CPU 0上运行.我将模拟器更改为在最后一个上运行.请注意,在OS X上,您无法设置关联性(请参阅:https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac).

这两个变化到位的情况下,我看到了大约50%的改善.

要在Windows 7上设置处理器关联:

  1. 打开任务管理器
  2. 单击"查看所有进程"(以管理员身份运行,否则无法设置处理器关联)
  3. 右键单击emulator.exe并选择Set Affinity ...
  4. 在"设置关联性"对话框中,仅选择最后一个CPU

注意:以这种方式更改关联时,它仅在进程的生命周期内更改.接下来开始,你必须再做一次.

在此输入图像描述

  • 禁用超线程时,CPU百分比加倍,因为逻辑处理器的数量减半. (21认同)
  • 您只看到任务管理器显示的数字加倍; 不是现实.如果你没有运行足够的软件来产生足够的工作以在100%CPU上拥有相当于至少4个线程的那么几个占用大量CPU的应用程序仍将有效地获得几乎整个核心,而不是半核心你的天真假设什么任务管理器正在显示手段. (3认同)
  • 要确认@Dan Neely说的话:我有一个核心应用,只能烧掉100%的CPU.当我有HT它显示大约25%,没有它显示大约50%,但实际上计算它必须在同一时间计算.所以没有区别(至少在桑迪桥上). (3认同)

Pau*_*sma 16

我想建议给Genymotion一个旋转.它运行在Oracle的VirtualBox中,并且在中等系统上合法地达到60 fps.

这是我的一个研讨会的屏幕截图,运行在低端的2012款MacBook Air上:

Nexus 7仿真器以56.6 fps运行

如果您无法阅读文本,那么它是一个运行速度为56.6 fps的Nexus 7仿真器.额外的(大!)奖金是Google Play和Google Play服务与虚拟机一起打包.

(可在此处找到演示动画的来源.)


Joh*_*ann 11

如果您使用的是API 15 v3或更高版本以及SDK Tools v17 +,则启用GPU硬件加速(除了Intel的HAXM).仿真器的图形加速利用了开发计算机的图形硬件,特别是其图形处理单元(GPU),可以更快地进行屏幕绘制.这显着提高了速度.

要在模拟器上启用默认启用的图形加速:在创建AVD时,在"硬件"部分中,单击"新建",选择"GPU仿真"并将值设置为"是".

要仅在运行时启用加速:在启动模拟器使用-gpu标志,如下所示:

emulator -avd <avd_name> -gpu on
Run Code Online (Sandbox Code Playgroud)

来源:谷歌的使用模拟器教程.


Tho*_*asW 9

编辑尽管使用英特尔图像可以获得一些性能提升,但使用Genymotion所获得的性能要高得多.请参阅Paul Lammertsma的回答.

上一个答案

借助ADT rev 17,仿真器支持在Windows和Mac OS X上以虚拟化模式运行x86系统映像.这对性能有显着影响.

ADT rev 17说明:http: //android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html

配置虚拟机加速:http: //developer.android.com/guide/developing/devices/emulator.html#accel-vm


小智 7

我最近从带有3gb ram的核心2 @ 2.5切换到带有8gb ram的i7 @ 1.73(两个系统都运行了Ubuntu 10.10),模拟器的运行时间至少快了两倍.向它投掷更多硬件肯定会有所帮助.


son*_*oom 6

我只是想说,在我安装英特尔HAXM加速器并使用英特尔凌动图像之后,仿真器似乎运行速度提高了50倍.区别是惊人的,看看吧!

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html