提问



我有一个 2.67   GHz赛扬处理器, 1.21   x86 Windows XP 专业版计算机上的GB内存。


我的理解是 Android模拟器应该在这样的机器上相当快地启动,但对我来说,它不会。我已经按照设置IDE,SDK,JDK等的所有说明进行操作,并且在快速启动模拟器方面取得了一些成功,但这种情况非常罕见。如果可能的话,我怎样才能解决这个问题?


即使它启动并加载主屏幕,它也非常缓慢。我在版本3.5(Galileo)和3.4(Ganymede)中尝试过Eclipse IDE。[24] [25] [26]

最佳参考


更新


您现在可以为Android Emulator启用快速启动选项。这将保存模拟器状态,它将在下次启动时快速启动模拟器。


单击模拟器编辑按钮,然后单击显示高级设置。然后启用Quick Boot,如下面的截图。





Android开发工具(ADT)9.0.0(或更高版本)具有允许您保存AVD(模拟器)状态的功能,您可以立即启动模拟器。您必须在创建新AVD时启用此功能,或者您可以稍后通过编辑AVD来创建它。[27]


我还将Device RAM Size增加到1024,这导致了一个非常快速的模拟器。


有关详细信息,请参阅下面给出的屏幕截图。



  使用保存快照功能创建新的AVD。







  从快照启动模拟器。






为了加速你的模拟器,你可以参考加速你的Android模拟器!:[28]

其它参考1


重要提示:请首先参考有关VT的英特尔列表,以确保您的CPU支持英特尔VT。[29]


HAXM加快了慢速Android模拟器



HAXM 代表 - 英特尔硬件加速执行管理器


目前它仅支持英特尔®VT(英特尔虚拟化技术)。


Android模拟器基于QEMU。 QEMU与主机系统上的HAXM驱动程序之间的接口设计为与供应商无关。[30]





为HAXM配置Android开发环境的步骤




  1. 更新Eclipse:
    确保您的Eclipse安装和ADT插件完全是最新的。

  2. 更新您的Android工具:
    每次Eclipse插件更新后,更新Android SDK工具非常重要。为此,请启动Android SDK Manager并更新所有Android SDK组件。要利用HAXM,您必须至少发布第17版。







  • 下载 x86 Atom系统映像 Intel硬件加速执行管理器驱动程序。请按照下图:







  • 运行IntelHaxm.exe安装HAXM驱动程序。它将位于以下位置之一:



    • C:\Program Files\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    • C:\Users\<user>\adt-bundle-windows-x86_64\sdk\extras\intel\Hardware_Accelerated_Execution_Manager



    如果安装程序失败并显示必须打开Intel VT的消息,则需要在BIOS中启用此功能。请参阅启用Intel VT(虚拟化技术)中的说明。[31] [32]







  • 创建新 x86 AVD:请按照下图显示:







  • 或者对于新的SDK,


其它参考2


试试Android x86。它比Google Android模拟器快得多。请按照以下步骤操作:[33]



  1. 安装VirtualBox。

  2. 下载您需要的ISO文件。

  3. 创建一个虚拟机,如Linux 2.6/其他Linux,512  MB RAM,HD 2  GB。网络:PCnet-Fast III,连接到NAT。您也可以使用桥接适配器,但您的环境中需要DHCP服务器。

  4. 在模拟器上安装Android x86,运行它。

  5. Alt + F1 ,键入netcfg,记住IP地址,按 Alt + F7

  6. 在Windows  XP系统上运行cmd,将目录更改为Android工具目录,输入adb connect <virtual_machine_IP>

  7. 启动Eclipse,打开ADT插件,找到设备,然后享受!


其它参考3


更新:Android Studio(2.x)的最新版本对捆绑的模拟器进行了重大改进。它响应迅速,并且有很多功能。[34] [35] [36] [37]


对于仍然感兴趣的人:
尝试使用Genymotion。您可以在注册后下载适用于Windows/Mac OS X/Linux的版本。 Eclipse的插件也可用:[38]



  可以通过启动Eclipse并转到帮助/安装新软件菜单来完成插件的安装,然后只需添加一个带有以下URL的新更新站点:http://plugins.genymotion.com/eclipse。按照Eclipse指示的步骤进行操作。[39]



这个模拟器快速响应。


GenyMotion允许您控制设备的各种传感器,包括电池电量,信号强度和GPS。最新版本现在还包含相机工具。

其它参考4


Eclipse(旧版)Eclipse中包含的模拟器非常慢。


最近的模拟器比2010年更快。更新SDK/IDE。


就个人而言,我使用真正的手机进行测试。它更快,测试更真实。但是如果你想在很多不同的Android版本上测试你的应用程序并且不想购买几部手机,你将不得不经常使用模拟器。

其它参考5


模拟器的启动非常慢。好消息是你只需要启动模拟器一次。如果模拟器已在运行且您再次运行应用程序,则模拟器会相对快速地重新安装应用程序。当然,如果你想知道它在手机上运行的速度有多快,最好在真正的手机上进行测试。

其它参考6


英特尔于2012年5月15日发布了ICS仿真器的推荐安装说明。这对我有用。模拟器现在很快,UI也很流畅。[40]


上半部分说明已经足够详细,因此我假设您可以使用Android SDK管理器以及Intel HAXM安装Intel x86 Atom系统映像。


现在确保设置其他所有内容,以便您可以享受高性能的模拟器:



  • 安装英特尔硬件加速执行管理器(HAXM)



并开始:[41]


sudo kextload -b com.intel.kext.intelhaxm (mac)


如果HAXM工作正常,您可能会在启动模拟器时看到此消息:



  HAX正在运行,模拟器以快速virt模式运行



否则您可能会看到此错误:



  HAX无法正常工作,仿真器在仿真模式仿真器中运行:

  无法打开hax模块




  • 使用GPU模拟。在撰写本文时,使用GPU模拟时无法使用快照选项。确保GPU仿真设置为是。

  • 将设备内存设置为1024 MB甚至更多,但不超过Intel HAXM设置。我每台设备使用1024 MB,HAXM使用2048 MB。



保存后请务必仔细检查设置!模拟器对于您可以设置的内容非常挑剔,它会在不告诉您的情况下还原配置。


使用这些设置,软件键盘不再出现,屏幕后退,菜单和最近的键也不再出现。这似乎是当前ICS Intel x86系统映像的限制。您需要使用键盘快捷键。[42]


在Mac OS上,您需要按 fn + control 才能使 F1 - F12 键生效。可以使用控制+箭头键执行向上/向下/向左/向右翻页。

其它参考7


您可以使用以下命令创建emulator.bat以启动模拟器。它会更快开始。


emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>


或者在Unix(Mac或Linux版本)上:


emulator -cpu-delay 0 -no-boot-anim @<avd name>

其它参考8


我注意到如果没有连接Dalvik Debug Monitor Server(DDMS),模拟器的启动速度会快得多。因此,如果从Virtual Device ManagerSDK Setup.exe启动模拟器并且Eclipse未启动,则模拟器的工作速度会更快。


如果你从Eclipse启动模拟器:DDMS就在那里,所以有时候模拟器非常慢,但有时它会更快。

其它参考9


仿真器很慢。你真的无能为力,但有模拟器的替代品。



  1. Genymotion - 首选 [43]

  2. 的VirtualBox [44]

  3. 蓝叠[45]

  4. YouWave [46]

  5. Windows Android模拟器[47]

  6. 罐子豆[48]

  7. 安迪[49]



为了使您的模拟器更快,您可以托管GPU并使用更轻的Android版本(Android 2.3(Gingerbread))。
在Mac上进行开发会更好。为什么要使用模拟器,BTW?使用真正的手机更有意义。[50]

其它参考10


从Android SDK Tools的第17版开始,模拟器可以使用图形加速和CPU提供的扩展来提高效率。先决条件和完整配置以及用户注释位于:


http://developer.android.com/guide/developing/devices/emulator.html#acceleration [51]


要启用GPU备用,请从命令行运行仿真器或将-gpu on添加到AVD配置中的其他仿真器命令行选项。[52]


emulator -avd <avd_name> -gpu on


要使用CPU机器扩展,必须安装驱动程序(请注意,因为它可能与现有的VirtualBox或VMware驱动程序冲突)。安装完成后,无论何时使用基于x86的AVD,它都会自动使用。[53] [54]

其它参考11


Android SDK rev。 17支持使用AMD和Intel虚拟化技术的虚拟机加速。


此功能可以大大提高仿真器的性能!


有关详细信息,请参阅Android模拟器文档中的以下部分:配置虚拟机加速[55]


不要忘记为您的操作系统安装适当的驱动程序:



  • 在Windows上配置VM加速

  • 在Mac上配置VM加速

  • 在Linux上配置VM加速



安装驱动程序并下载Android X86系统映像后(如文档中所述),您应该能够使用x86映像创建新的AVD:[56] [57] [58]


例如:



  • 目标:英特尔凌动x86系统映像 - API级别10

  • CPU/ABI:Intel Atom(x86)


其它参考12


尝试禁用您的防病毒软件。也许它会使模拟器更快一点。

其它参考13


模拟器似乎在空闲时放慢速度。通过快速将鼠标放在侧面的键上并观察点亮响应,可以明显看出这一点。作为一种解决方法,我在启动模拟器时将-icount auto传递给QEMU。您可以创建一个名为my_avd.bat的批处理文件来为您执行此操作:[59]


emulator @my_avd -no-boot-anim -qemu -icount auto



  • @my_avd - 启动名为my_avd的虚拟设备

  • -no-boot-anim - 禁用动画以加快启动速度

  • -qemu args... - 将参数传递给qemu

  • -icount [N|auto] - 启用每条指令2 ^ N个时钟周期的虚拟指令计数器



这使得动画黄油变得光滑并加速adb install十倍。

其它参考14


仿真器启动选项中描述的选项-cpu-delay <delay>可以提供帮助。[60]

其它参考15


您可以在Google I/O 2011:Android开发工具谈话中查看模拟器问题,从0:40:20开始。[61]


模拟器运行缓慢,因为完整的Android环境在模拟硬件上运行,并且指令也在模拟的ARM处理器上执行。


主要的窒息点是渲染,因为它不是在任何专用硬件上运行,而是实际上是通过软件渲染来执行的。降低屏幕尺寸将大大提高仿真器性能。获得更多/更快的内存并不会有所帮助。


他们当时已经提到,他们正在开发一个接口,允许仿真器通过主机硬件管理某些指令,因此最终你将能够利用桌面硬件的原始功能来利用仿真器性能。

其它参考16


Android模拟器版本9具有新的快照功能。您可以保存模拟器的状态(制作模拟器的图像),并避免在启动模拟器时启动。[62]

其它参考17


当前(2011年5月)模拟器的版本很慢,特别是对于Android 3.0(Honeycomb),主要是因为模拟器不支持硬件GL - 这意味着GL代码被转换为软件(实际上是ARM软件)然后获得在QEMU中用软件模拟。这很疯狂。他们正在研究这个问题并将其部分解决,但没有任何类型的发布质量。[63] [64]


查看视频 Google I/O 2011:Android开发工具以查看它的实际效果 - 跳转到大约44分钟。[65]

其它参考18


要向此添加更多信息。


我最近将我的Ubuntu安装升级到了Ubuntu< 10.04 LTS(Lucid Lynx),后者又将我的Java版本更新为:[66]


Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)


现在,模拟器(虽然需要一段时间才能启动)似乎比以前运行得更快。


人们可能值得升级他们的JVM。

其它参考19


一个新的选项是Android的Visual Studio模拟器 - 它很快,Hyper-V,x86,即使没有VS也可以免费下载。[67] [68] [69]

其它参考20


使用Intel x86仿真器加速器



首先,安装Intel x86仿真器加速器(HAXM)。这可以直接从英特尔下载或使用Android SDK Manager下载。在SDK Manager中,它位于Extras下。


[70]


在我使用的Android Studio版本(0.8.9)中,Android SDK Manager下载了HAXM,但实际上并没有运行安装程序(我假设这将在以后的版本中修复)。要运行已安装的我必须转到C :\\ Program Files(x86)\\ Android \\ android-studio \\ sdk \\ extras \\ intel \\ Hardware_Accelerated_Execution_Manager并手动启动intelhaxm.exe。


HAXM与英特尔设备配合使用,因此创建了一个带有英特尔CPU的新仿真器。


使用Intel Atom x86

创建新的AVD

这大大改善了一些事情,但模拟器仍然感觉有些迟钝。最后一步是在Android虚拟设备管理器(AVD)中选择使用主机GPU。


[71]


在这些更改之后,Android Emulator在5-10秒内启动并且运行时没有任何明显的延迟。
请注意,这些功能与硬件有关(CPU/GPU),可能无法在某些系统上运行。

其它参考21


这就是我注意到没有人提到过的。


将所有可用处理器分配给模拟器


这是你可以尝试的。它确实为我加速了模拟器,特别​​是在加载时。我注意到模拟器只使用可用CPU的单个核心。我将它设置为使用所有可用的处理器。


我正在使用Windows 7。



  当Android模拟器启动时,打开任务管理器,在Process选项卡下查找emulator-arm.exe或emulator-arm.exe * 32...右键单击它,选择Processor Affinity和为仿真器分配尽可能多的处理器。





其它参考22


尝试使用Genymotion for Android Studio。炽热快!只需要一次安装。不再有AVD疼痛。[72]

其它参考23


在开发了一段时间后,我的模拟器变得非常慢。我选择了擦除用户数据,而且效果要好得多。我猜你需要花时间加载你已部署的每个APK文件。[73]

其它参考24


Android模拟器死得很慢。运行时需要800MB内存。
如果您使用的是Windows,则可以使用Microsoft Android Emulator。它非常棒,为您提供比Android Studio Emulator更多的功能。最重要的是它很快(仅消耗13MB)。
它附带Visual Studio 2015技术预览版。我正在使用它并对它感到高兴。我下载并安装了整个VS包,我需要看看我们如何才能安装VS Emulator。


适用于Android的Visual Studio模拟器[74]


编辑:
试试https://www.visualstudio.com/vs/msft-android-emulator/[75]

其它参考25


我有间歇性的慢速模拟器(SDK v8.0)加载时间,在装有Eclipse(3.6.1)的Xubuntu 10.04 VirtualBox 3.2.12 guest上运行的Intel Core i7 920 2.67  GHz CPU上运行最多三分钟。我将VirtualBox guest虚拟机内存从1024 MB更改为2048 MB,从那时起,我再也没有遇到过缓慢(加载时间一致为33秒,CPU负载一致为20%)。 Eclipse和模拟器都是内存耗尽。[76]

其它参考26


好吧,既然有人建议Android x86作为一个替代测试模拟器,我也会提出我最喜欢的。这可能不是每个人的替代品,但对我来说它是完美的!


使用Bluestacks播放器。它运行Android 2.3.4并且非常流畅和快速。有时甚至比普通设备更快。唯一的缺点是,您只需在API级别10上测试应用程序,只需在一个屏幕尺寸上测试,但它是完美的,仅用于测试它是否正常工作。只需通过运行[77]将播放器连接到adb


adb connect 127.0.0.1 


编译后,它会立即安装。这是非常令人印象深刻的,考虑到我有相当普通的计算机硬件(双核与4 GB的RAM)。

其它参考27


要减少仿真器启动时间,需要在启动仿真器之前检查禁用启动动画。请参阅Android文档。[78]


如果您不知道,每次运行/调试应用程序时都不需要关闭模拟器。如果在已经打开的情况下单击运行/调试,您的APK文件将上传到模拟器并且立即开始。仿真器只在第一次启动时才会花费很长时间。


以下是加速Android模拟器的一些提示:如何将Android模拟器加速最多400%。[79]

其它参考28


我注意到我的模拟器(Eclipse插件)因我的Nvidia显卡抗锯齿设置而显着减慢。从图形菜单中删除2x抗锯齿并将其更改为应用程序控制使其响应更快。它仍然很慢,但比以前更好。 [80] [81]

其它参考29


较旧的Android版本运行速度更快。当我使用我的上网本时,我使用Android 1.5(API级别3)。但是有一些缺点 - 你的应用程序需要支持旧平台(显然),而ndk-gdb需要运行Android 2.2(API)等级8)或更高。但无论如何定期测试针对旧平台的应用程序是一个好主意。