使Android模拟器运行更快


251

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

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


1
我所有的应用程序在设备上运行得更快

16
有趣的是,iPhone模拟器恰恰相反。应用在设备上运行速度较慢。在大多数情况下,我宁愿使用速度较慢的模拟器,因为它会刺激您改进应用程序,但有时您只是想看到它像在真实设备中那样工作。
hpique 2010年

1
通过使用VirtualBox,有可能使它更快地运行,也可以正常运行-请参阅stackoverflow.com/a/6058689/40961
David d C e Freitas

5
iOS和Windows Mobile使用模拟器,而Android使用模拟器。模拟器使用主机库重新实现所有移动库和API,因此速度很快。仿真器使用与真实设备相同的库,因此速度较慢。就Android而言,如果您使用Android虚拟机,它将非常快。我们在这里提供免费的虚拟机
huisinro

2
...而且6年后,甚至有了HAXM和x86系统映像以及精心设计的开发环境,Android模拟器仍然像糖蜜一样缓慢吗?
aroth's

Answers:


229

官方网页

快〜50%

视窗:

  • 安装“ Intel x86 Emulator Accelerator(HAXM)” => SDK-Manager / Extras
  • 安装“ Intel x86 Atom系统映像” => SDK-Manager / Android 2.3.3
  • 转到Android SDK根文件夹,然后导航至extras \ intel \ Hardware_Accelerated_Execution_Manager。执行文件IntelHaxm.exe进行安装。(在Android Studio中,您可以导航至:设置-> Android SDK-> SDK工具->英特尔x86仿真器加速器(HAXM安装程序))

  • 使用“ Intel Atom x86” CPU / ABI创建AVD

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

在此处输入图片说明

也别忘了安装这个

在此处输入图片说明

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

Linux:

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

在此处输入图片说明

PS 对于Fedora对于Ubuntu

OS-X:

  • 在Android SDK Manager中,安装Intel x86 Atom系统映像
  • 在Android SDK Manager中,安装Intel x86 Emulator Accelerator(HAXM)
  • 在finder中,转到Intel Emulator Accelerator的安装位置并安装IntelHAXM(打开dmg并运行安装)。您可以通过将鼠标置于SDK Manager中的Emulator Accelerator条目上来找到位置。
  • 创建或更新AVD并将Intel Atom x86指定为CPU。 Intel x86 Emulator Accelerator(HAXM)显示位置

PS:检查此工具,即使试用也非常方便


8
这也适用于OSX。/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg从SDK管理器下载软件包后,需要进行安装 。
Jarett Millard

5
Windows的“使用主机GPU”说明为我提供了超快速的模拟器!(我有一个受支持的Intel处理器和nVidia图形卡。)动画是黄油般平滑的大多数时候;在其他时候,很少出现混响)!请注意,您必须重新启动Eclipse,AVD Manager才能选择Intel Atom(x86) CPU选项。提示:不要分配过多的RAM。有了1GB的RAM,仿真器无法启动(使用GPU),但是有了512MB的RAM,它可以平稳运行,并且启动非常快(再次使用GPU)。
ADTC

我发现LogCat收到大量的Trace警告。要过滤掉它们,请^(?!.*(nativeGetEnabledTags)).*$用作文本过滤器。我已经将此报告为错误问题。另外,我认为您必须正确关闭仿真器设备(按住电源按钮,然后选择Power off),以免下次启动时出错(我可以关闭ARM仿真器,但是使用Intel仿真器,只是关闭似乎会产生问题)。
ADTC

如果可以的话,我会给你+100。在Windows 8上运行,性能大大提高!
Paolo M

2
我必须首先通过控制面板下的程序和功能禁用Hyper V技术,才能使其正常工作。
Mike Flynn 2014年

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,然后选择“设置亲和力...”。
  4. 在“设置关联性”对话框中,仅选择最后一个CPU

注意:当您以这种方式更改亲和力时,它仅在流程的整个生命周期内都被更改。下次开始时,您必须再次进行。

在此处输入图片说明


22
禁用超线程时,CPU百分比增加了一倍,因为逻辑处理器数量减少了一半。
Timothy003

1
它像魅力一样工作,但是..您知道如何在Ubuntu 11.10上做到吗?
emeraldhieu 2011年

1
@ Timothy003是的,绝对正确。并使仿真器将使用的CPU倍增。
mcohen75 2012年

3
您只会在任务管理器显示的数字中看到加倍;不是现实。如果您没有运行足够的软件来产生足够的工作以在100%CPU上具有至少4个线程的等效性能,那么少数占用大量CPU的应用仍将有效地获得几乎整个核心,而不是您幼稚的假设的一半核心任务管理器显示的内容。
Dan在火光中摆弄

3
确认@Dan Neely所说的话:我有一个单核应用程序,它消耗了100%的CPU。当我使用HT时,它显示了约25%,没有显示时,则显示了约50%,但实际上在计算时必须同时计算。因此没有区别(至少在桑迪桥上)。
bartosz.r 2012年

17

我想建议让Genymotion旋转一下。它运行在Oracle的VirtualBox中,在中等系统上可以达到60 fps。

这是我的一个工作坊的屏幕截图,运行在2012年低端型号MacBook Air上:

Nexus 7模拟器以56.6 fps的速度运行

如果您看不懂文字,那就是运行速度为56.6 fps的Nexus 7模拟器。额外的(最大!)好处是Google Play和Google Play服务与虚拟机打包在一起。

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


12

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

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

要仅在运行时启用加速:像这样启动模拟器时,请使用-gpu标志:

emulator -avd <avd_name> -gpu on

资料来源:Google的《使用模拟器》教程


10

编辑尽管使用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


7

我最近从具有3gb ram的核心2 @ 2.5切换到了具有8gb ram的i7 @ 1.73(两个系统都运行Ubuntu 10.10),并且模拟器现在的运行速度至少快两倍。扔更多的硬件肯定有帮助。


这并不是真正的解决方案:它可以使仿真器每次具有更高的吞吐量,但实际上并不能使其运行得更快。
2014年


4

我注意到仿真器默认仅使用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,那就更好了。


4

在今年的Google I / O(2011)上,Google展示了一个更快的模拟器。问题不只是ARM和x86之间的字节码,而是QEMU执行的软件渲染。他们绕过QEMU的渲染,并将渲染直接发送到我认为的X服务器。他们展示了一款具有出色性能和fps的汽车游戏。

我想知道开发人员何时可以使用...


这个模拟器有什么消息吗?它叫什么名字?
alcor

我没有任何消息。我没有跟踪过去一年左右的Android模拟器更新。
塞萨尔(Cesar)2016年

3

Google最近宣布了一款新的Android仿真器。它比旧版本快得多且更好。您可以在此处找到有关它的更多信息。


1

我认为这是因为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


1

谢谢@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分钟的时间来解决这些问题外,就模拟器的性能提高而言,这是非常有益的练习。





0

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


0

我希望这能帮到您。

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

它解决了我的问题...


0

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

Android Studio 2.0仿真器的运行速度比Android以前的仿真器快3倍,并且通过ADB增强功能,您现在可以将应用和数据推送到仿真器的速度比物理设备快10倍。像物理设备一样,官方的Android仿真器还包括内置的Google Play服务,因此您可以测试更多API功能。最后,新的模拟器具有丰富的新功能,可以管理电话,电池,网络,GPS等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.