Android模拟器有点呆板。对于某些设备,例如Motorola Droid和Nexus One,该应用程序在实际设备中的运行速度比仿真器要快。在测试游戏和视觉效果时,这是一个问题。
如何使模拟器尽可能快地运行?我一直在玩弄它的参数,但是还没有找到显示出明显改进的配置。
Android模拟器有点呆板。对于某些设备,例如Motorola Droid和Nexus One,该应用程序在实际设备中的运行速度比仿真器要快。在测试游戏和视觉效果时,这是一个问题。
如何使模拟器尽可能快地运行?我一直在玩弄它的参数,但是还没有找到显示出明显改进的配置。
Answers:
快〜50%
转到Android SDK根文件夹,然后导航至extras \ intel \ Hardware_Accelerated_Execution_Manager。执行文件IntelHaxm.exe进行安装。(在Android Studio中,您可以导航至:设置-> Android SDK-> SDK工具->英特尔x86仿真器加速器(HAXM安装程序))
使用“ Intel Atom x86” CPU / ABI创建AVD
也别忘了安装这个
创建AVD期间的PS添加仿真内存:硬件/新设备/设备内存大小/设置值512或更大
PS:检查此工具,即使试用也非常方便
/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg
从SDK管理器下载软件包后,需要进行安装 。
更新:现在可以使用Intel x86映像了,最好的答案是上面的热情。
正如CommonsWare正确指出的那样,该仿真器很慢,因为它仿真的是ARM CPU,需要转换为Intel操作码。这种虚拟化消耗了CPU。
为了使仿真器更快,您必须为其提供更多的CPU。如果可以的话,请从快速的CPU开始或升级。
然后,给仿真器更多的CPU:
通过这两个更改,我看到大约有50%的改进。
在Windows 7上设置处理器关联性:
注意:当您以这种方式更改亲和力时,它仅在流程的整个生命周期内都被更改。下次开始时,您必须再次进行。
我想建议让Genymotion旋转一下。它运行在Oracle的VirtualBox中,在中等系统上可以达到60 fps。
这是我的一个工作坊的屏幕截图,运行在2012年低端型号MacBook Air上:
如果您看不懂文字,那就是运行速度为56.6 fps的Nexus 7模拟器。额外的(最大!)好处是Google Play和Google Play服务与虚拟机打包在一起。
(演示动画的来源可以在此处找到。)
如果您使用的是API 15 v3或更高版本以及SDK Tools v17 +,请启用GPU硬件加速(除Intel的HAXM之外)。仿真器的图形加速利用开发计算机的图形硬件(特别是其图形处理单元(GPU))来加快屏幕绘制速度。这显着提高了速度。
若要启用默认情况下在模拟器上启用的图形加速:创建AVD时,在“硬件”部分中,单击“新建”,选择“ GPU仿真”并将其值设置为“是”。
要仅在运行时启用加速:像这样启动模拟器时,请使用-gpu标志:
emulator -avd <avd_name> -gpu on
资料来源:Google的《使用模拟器》教程。
编辑尽管使用Intel映像可以获得一些性能提升,但是使用Genymotion可获得的性能要高得多。请参阅Paul Lammertsma的答案。
上一个答案
借助ADT rev 17,该仿真器支持在Windows和Mac OS X上以虚拟化模式运行x86系统映像。这会对性能产生显着影响。
ADT第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
只是想说,在我安装了Intel HAXM加速器并使用Intel Atom映像后,该仿真器的运行速度似乎快了50倍。区别是惊人的,看看吧!
http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
我注意到仿真器默认仅使用Core 0,而大多数Windows应用程序将默认使用“ any”内核。另外,如果将其放在另一个内核(如最后一个内核)上,则可能会使仿真器发疯。如果可以,可以尝试将占用大量CPU的应用程序放在其他CPU内核上,以提高速度。
在硬件方面,获得可以用于单核应用程序的最快CPU。在仿真器性能方面,两个以上的内核可能不会经历巨大的差异。
Eclipse和Android模拟器一起吃掉了很多RAM。我建议至少使用3 GB的RAM,因为我使用的系统具有2 GB的RAM,但是由于系统用完RAM并开始使用页面文件,它的速度变慢了。
我觉得最好的CPU可能会具有较高的时钟频率(仅将时钟用作同一系列中CPU的量度),能够很好地处理非SIMD操作,并具有Turbo Boost机制。基于Java的基准测试并不多,但是总体上寻找诸如压缩和办公等应用程序基准测试。不要看游戏或媒体,因为它们会受到SIMD的极大影响。如果找到Java,那就更好了。
在今年的Google I / O(2011)上,Google展示了一个更快的模拟器。问题不只是ARM和x86之间的字节码,而是QEMU执行的软件渲染。他们绕过QEMU的渲染,并将渲染直接发送到我认为的X服务器。他们展示了一款具有出色性能和fps的汽车游戏。
我想知道开发人员何时可以使用...
我认为这是因为clr虚拟机直接使用cpu而不进行代码操作码转换。它可能是针对clr应用程序的优化,或者可能是在INTEL处理器上启动的Windows Mobile /窗口电话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)中存在错误,需要卸载一个abi:https://code.google.com/p/android/issues/detail? id = 66740(在这种情况下,请删除armeabi-v7a,因为您要使用x86 abi)。除了花了我45分钟的时间来解决这些问题外,就模拟器的性能提高而言,这是非常有益的练习。
您还可以尝试Visual Studio Android Emulator,也可以将其安装为独立的模拟器(不需要Visual Studio)。请注意,它只能安装在Windows Pro或更高版本的系统上。
使用Genymotion而不是模拟器。Genymotion具有更好的性能 https://www.genymotion.com
如果您的显卡不好(例如我),请选择低分辨率的模拟器(例如Nexus S)
我一直在使用Intel(86)CPU / ABI。我使用ARM(armeabi-v7a)创建了另一个仿真器,发现速度有了很大提高。我正在使用平台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增强功能,您现在可以将应用和数据推送到仿真器的速度比物理设备快10倍。像物理设备一样,官方的Android仿真器还包括内置的Google Play服务,因此您可以测试更多API功能。最后,新的模拟器具有丰富的新功能,可以管理电话,电池,网络,GPS等。