让Android模拟器运行得更快

Android模拟器有点呆滞。 对于某些设备,如Motorola Droid和Nexus One,该应用在实际设备中的运行速度要高于模拟器。 testing游戏和视觉效果时,这是个问题。

你如何让仿真器尽可能快地运行? 我一直玩的参数,但还没有find一个configuration,显示出明显的改善呢。

官方网页

〜快50%

视窗:

  • 安装“Intel x86 Emulator Accelerator(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 Emulator Accelerator(HAXM安装程序))

  • 使用“Intel atom x86”CPU / ABI创buildAVD

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

在这里输入图像描述

另外不要忘记安装这一个

在这里输入图像描述

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

Linux的:

  • 安装KVM:打开GOOGLE,编写“kvm installation”
  • 使用“Intel atom x86”CPU / ABI创buildAVD
  • 从命令行运行:emulator -avd avd_name -qemu -m 512 -enable-kvm
  • 或从Eclipse运行:运行/运行configuration/选项卡“目标” – >检查Intel x86 AVD并在“其他模拟器命令行选项”窗口中添加:-qemu -m 512 -enable-kvm(单击运行)

在这里输入图像描述

PS 对于Fedora , 对于Ubuntu

OS-X:

  • 在Android SDK Manager中,安装Intel x86 Atom System Image
  • 在Android SDK Manager中,安装Intel x86 Emulator Accelerator(HAXM)
  • 在finder中,转到Intel Emulator Accelerator的安装位置并安装IntelHAXM(打开dmg并运行安装)。 您可以通过将鼠标放在SDKpipe理器中的Emulator Accelerator条目上来查找位置。
  • 创build或更新AVD并将Intel Atom x86指定为CPU。 英特尔x86模拟器加速器(HAXM)显示位置

PS:检查这个工具,甚至试用非常方便

更新:现在,一个英特尔x86图像可用,最好的答案是上面的热情。

正如CommonsWare已经正确指出的那样,仿真器很慢,因为它模拟了一个ARM CPU,它需要转换到Intel操作码。 这个虚拟化咀嚼了CPU。

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

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

  1. 禁用超线程 – 由于仿真器似乎不使用多个内核,因此超线程实际上会减less模拟器将获得的总CPU时间。 禁用HT会减慢利用多个CPU的应用程序。 您的BIOS中必须禁用超线程。
  2. 使仿真器在CPU 0以外的CPU上运行 – 这比closuresHT的影响小得多,但是它有一定帮助。 在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. 打开任务pipe理器
  2. 单击查看所有进程(以pipe理员身份运行,否则无法设置处理器关联)
  3. 右键单击emulator.exe并selectSet Affinity …
  4. 在“设置相关性”对话框中,只select最后一个CPU

注意:以这种方式更改关联性时,只会在进程的整个生命周期中进行更改。 下一次开始,你必须重新做。

在这里输入图像描述

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

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

Nexus 7仿真器以56.6 fps运行

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

(演示animation的来源可以在这里find 。)

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

要在模拟器上默认启用graphics加速,请执行以下操作 :创buildAVD时,在“硬件”部分中,单击“新build”,select“GPU仿真”,然后将值设置为“是”。

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

 emulator -avd <avd_name> -gpu on 

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

编辑尽pipe使用英特尔图像获得了一些性能提升,但使用Genymotion获得的性能要高得多。 见Paul Lammertsma的回答 。

以前的答案

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

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

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

我最近从3gb内核的核心2 @ 2.5切换到8gb内核的i7 @ 1.73(这两个系统运行Ubuntu 10.10),现在仿真器至less运行两倍。 投掷更多的硬件肯定有帮助。

只是想说,安装英特尔HAXM加速器并使用英特尔Atom映像后,仿真器似乎运行速度提高了50倍。 差别是惊人的,检查出来!

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

我注意到,模拟器默认只有核心0,大多数Windows应用程序将默认为“任何”核心。 另外,如果你把它放在另一个核心上(比如最后一个核心),可能会让模拟器变得疯狂。 如果可以的话,你可以尝试在其他CPU内核上使用大量使用CPU的应用程序,以提高速度。

硬件方面,获得可用于单核应用程序的最快的CPU。 两个以上的内核在仿真器性能方面可能没有太大差异。

Eclipse + Android模拟器一起吃掉了大量的RAM。 至less我会推荐3个RAM,因为我使用了一个带有2个RAM的系统,并且因为系统内存不足而开始使用页面文件。

我觉得最好的CPU可能会有一个高时钟(只使用时钟来衡量同一系列的CPU),处理非SIMD操作,并有一个涡轮增压机制。 没有太多基于Java的基准testing,但总体上看像应用程序基准,如压缩和办公。 不要看游戏或媒体,因为这些受SIMD影响很大。 如果你find一个Java,甚至更好。

在今年的Google I / O(2011)上,Google展示了一个更快的模拟器。 问题不在于ARM和x86之间的字节码,而是由QEMU执行的软件渲染。 他们绕过了QEMU的渲染,并直接把渲染发送到我相信的X服务器。 他们展示了一款性能和fps非常好的赛车游戏。

我想知道什么时候可以为开发者提供…

谷歌最近宣布了一个新的Android模拟器。 它比旧的更快,更好。 你可以在这里find更多关于它的信息 。

我认为这是因为clr虚拟机直接使用cpu而没有代码操作码转换。 这可能是针对clr应用程序的优化,或者可能是在INTEL处理器上启动的windows mobile / window phone 7。 基于linux的Android平台,理论上你可以在i686环境下的虚拟机上启动android。 在这种情况下,虚拟机如vmware可以直接执行一些操作码。 但是这个选项只有在你写Java的时候才会被允许。 因为Java解释它们的字节码或在执行之前预编译它。 请参阅: http : //www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks

谢谢@zest! 像魅力一样工作。 一些注意事项:需要应用英特尔的HAXM修补程序来处理内核恐慌问题: http ://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager另外,请注意,如果您有多个abi,则需要先卸载一个,因为最新版本的Android API(r19)中存在一个错误: https : //code.google.com/p/android/issues/detail? id = 66740 (在这种情况下,除去armeabi-v7a,因为你想要x86 abi)。 除了45分钟的时间来解决这些问题之外,从模拟器性能的提高来看,这是非常有益的。

哦,收容所呢,疯子呢…呃,我是…

http://tenacious33.wordpress.com/2012/04/05/improving-android-emulator-performance/上有一个相当全面的答案;

我将在一两周内在博客文章中介绍r17“加速模式”。 与它相关的警告清单并不能激发自信或骄傲。

我一直在使用Intel(86)CPU / ABI。 我使用ARM(armeabi-v7a)创build了另一个模拟器,我发现速度有了很大提高。 我正在使用平台4.1.2 API级别16

模拟器的另一种select是AndroVM虚拟机,运行速度比模拟器快得多,并且支持OpenGL加速:

http://androvm.org/

有趣的是,我觉得它比实际的Android设备运行得更快。

我希望这会帮助你。

Goto to your BIOS settings. Enable your Virtualization technology in your settings..

它解决了我的问题…

将您当前的Android Studio更新到Android Studio 2.0并更新系统映像。

Android Studio 2.0仿真器的运行速度比Android以前的仿真器快3倍,而且借助ADB增强function,您现在可以将应用程序和数据的速度提高10倍到模拟器而不是物理设备。 就像一个物理设备一样,官方的Android模拟器也包含内置的Google Play服务,所以您可以testing出更多的APIfunction。 最后,新的仿真器具有丰富的新function来pipe理通话,电池,networking,GPS等等。

你也可以尝试Visual Studio Android模拟器 ,它也可以作为独立的模拟器安装(你不需要Visual Studio)。 请注意,它只能安装在Windows Pro或更高版本的系统上。

使用Genymotion而不是仿真器。 Genymotion有更好的performancehttps://www.genymotion.com