让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。
PS:检查这个工具,甚至试用非常方便
更新:现在,一个英特尔x86图像可用,最好的答案是上面的热情。
正如CommonsWare已经正确指出的那样,仿真器很慢,因为它模拟了一个ARM CPU,它需要转换到Intel操作码。 这个虚拟化咀嚼了CPU。
为了使模拟器更快,你必须给它更多的CPU。 如果可以的话,从一个快速的CPU或升级开始。
然后,给模拟器更多的CPU你有:
- 禁用超线程 – 由于仿真器似乎不使用多个内核,因此超线程实际上会减less模拟器将获得的总CPU时间。 禁用HT会减慢利用多个CPU的应用程序。 您的BIOS中必须禁用超线程。
- 使仿真器在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上设置处理器亲和力:
- 打开任务pipe理器
- 单击查看所有进程(以pipe理员身份运行,否则无法设置处理器关联)
- 右键单击emulator.exe并selectSet Affinity …
- 在“设置相关性”对话框中,只select最后一个CPU
注意:以这种方式更改关联性时,只会在进程的整个生命周期中进行更改。 下一次开始,你必须重新做。
我想build议给Genymotion一个旋转。 它在Oracle的VirtualBox中运行,并将在一个中等系统上合法地达到60 fps。
下面是我的一个研讨会的屏幕截图,运行在一个低端的2012款MacBook Air上:
如果您无法阅读文本,则是运行速度为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
我希望这会帮助你。
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