为什么Android模拟器如此慢? 我们如何加快Android模拟器?

我有一个2.67 GHz Celeron处理器和一个x86 Windows XP Professional机器上1.21 GB的RAM。

我的理解是Android模拟器应该在这样的机器上相当快地启动,但是对于我来说却不行。 我已经遵循了设置IDE,SDK,JDK等方面的所有说明,并且已经在快速启动模拟器方面取得了一些成功,但这是非常罕见的。 我可以如何解决这个问题?

即使它启动并加载主屏幕,它是非常缓慢。 我已经在版本3.5 (伽利略)和3.4 (Ganymede)尝试过Eclipse IDE 。

Android开发工具(ADT)9.0.0 (或更高版本)具有允许您保存AVD(仿真器)状态的function,您可以立即启动仿真器。 您必须在创build新的AVD时启用此function,或者您稍后可以通过编辑AVD来创build该function。

此外,我已经增加了Device RAM Size1024 ,这导致了一个非常快速的模拟器。

请参阅下面给出的截图以获取更多信息。

使用保存快照function创build新的AVD。

具有保存快照功能的Android模拟器。

从快照启动模拟器。

从快照启动模拟器。

而为了加快你的模拟器,你可以参考加快你的Android模拟器!

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

HAXM加快了Android模拟器的速度

HAXM代表 – “英特尔硬件加速执行pipe理器”

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

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

HAXM

为HAXMconfigurationAndroid开发环境的步骤

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

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

在这里输入图像说明

  • 下载x86 Atom系统映像英特尔硬件加速执行pipe理器驱动程序 。 按照下面的图片:

在这里输入图像说明

  • 通过运行“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中启用此function。 请参阅有关如何在启用英特尔VT(虚拟化技术)中执行此操作的说明。

安装.exe或.dmg

  • 创build一个新的 x86 AVD:按照下面的图片:

创建AVD

  • 或者对于新的SDK, 在这里输入图像说明

尝试Android x86 。 它比Google Android模拟器快得多。 按着这些次序:

  1. 安装VirtualBox 。
  2. 下载你需要的ISO文件 。
  3. 创build一个虚拟机为Linux 2.6 /其他Linux,512 MB RAM,HD 2 GB。 networking:连接到NAT的 PCnet-Fast III。 您也可以使用桥接适配器,但在您的环境中需要DHCP服务器。
  4. 在模拟器上安装Android x86,运行它。
  5. Alt + F1键入netcfg ,记住IP地址,按Alt + F7
  6. 在您的Windows XP系统上运行cmd,将目录更改为您的Android工具目录,键入adb connect <virtual_machine_IP>
  7. 启动Eclipse,打开ADT插件,find设备,并享受!

更新:最新版本的Android studio(2.x)对捆绑的模拟器进行了重大改进。 它响应迅速,并具有一大堆function。

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

插件的安装可以通过启动Eclipse并进入“帮助/安装新软件”菜单,然后添加一个新的更新站点,使用以下URL: http : //plugins.genymotion.com/eclipse 。 遵循Eclipse指示的步骤。

这个模拟器是快速和响应。

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

您的(旧)版本的Eclipse中包含的仿真器非常慢。

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

实际上,我用一个真正的手机来做我的testing。 速度更快,testing更现实。 但是,如果您想要在很多不同的Android版本上testing您的应用程序,并且不想购买多个手机,则必须不时使用该仿真器。

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

英特尔在2012年5月15日发布了针对ICS仿真器的推荐安装说明 。这对我很有帮助。 仿真器现在速度很快,用户界面非常stream畅。

前半部分的说明已经足够详细了,所以我将假定您可以使用Android SDKpipe理器以及Intel HAXM来安装Intel x86 Atom系统映像。

现在要确保所有其他设置都可以让你享受高性能的模拟器:

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

并启动它:

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

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

HAX正在工作,并且模拟器以快速虚拟模式运行

否则,你可能会看到这个错误:

HAX不工作,仿真器在仿真模式下运行:
无法打开hax模块

  • 使用GPU仿真。 在撰写本文时,使用GPU仿真时不能使用“快照”选项。 确保GPU仿真设置为“是”。

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

保存后请务必仔细检查设置! 模拟器非常挑剔你可以设置什么,它会在没有告诉你的情况下恢复configuration。

使用这些设置,软件键盘不再出现,屏幕背面,菜单和最近的键也不会显示。 这似乎是目前ICS Intel x86系统映像的限制。 您将需要使用键盘快捷键 。

在Mac OS上,您将需要按住F1 + F12键的fn + 控制键才能工作。 页面上/下/左/右可以使用控制+箭头键执行。

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

 emulator.exe -cpu-delay 0 -no-boot-anim -avd avd 

或在Unix(Mac或Linux)上:

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

我注意到,如果没有Dalvikdebugging监视器服务器(DDMS)连接,模拟器启动速度会快得多。 所以如果你从虚拟设备pipe理器“SDK Setup.exe”启动模拟器,并且Eclipse没有启动,模拟器工作得更快。

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

仿真器很慢。 关于它,你真的无能为力,但是模拟器还有其他的select。

  1. Genymotion – 首选

  2. VirtualBox的

  3. 蓝叠

  4. YouWave

  5. Windows Android模拟器

  6. 一jar豆

  7. 安迪

为了让您的模拟器更快,您可以托pipe一个GPU并使用较轻的Android版本( Android 2.3 (姜饼))。 在Mac上开发会更好。 为什么要使用模拟器,BTW? 使用真正的手机更有意义。

从Android SDK Tools版本17开始,仿真器可以使用graphics加速和CPU提供的扩展来提高效率。 先决条件和完整的configuration和用户笔记在:

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

要启用GPU aceleration,请从命令行运行仿真器,或将“-gpu on”添加到AVDconfiguration中的其他仿真器命令行选项。

 emulator -avd <avd_name> -gpu on 

要使用CPU机器扩展,您必须安装驱动程序(小心,因为它可能与现有的VirtualBox或VMware驱动程序冲突)。 安装完成后,只要使用基于x86的AVD,就会自动使用它。

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

这个function可以提高仿真器的性能!

有关更多详细信息,请参阅Android模拟器文档中的以下部分: configuration虚拟机加速

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

  • 在Windows上configurationVM加速
  • 在Mac上configurationVM加速
  • 在Linux上configurationVM加速

在安装驱动程序并下载了Android X86系统映像之后(如文档中所述),您应该可以使用x86映像创build新的AVD:

例如:

  • 目标:Intel Atom x86系统映像 – API级别10
  • CPU / ABI:Intel Atom(x86)

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

模拟器似乎在闲置时放慢速度。 这一点通过迅速将鼠标移到侧面的钥匙上并观察灯光响应而变得明显。 作为一种解决方法,我启动模拟器时将-icount auto传递给QEMU 。 您可以创build一个名为my_avd.bat的batch file为您执行此操作:

 模拟器@my_avd -no-boot-anim -qemu -icount auto 
  • @my_avd – 启动一个名为“my_avd”的虚拟设备
  • -no-boot-anim – 禁用animation以加快启动
  • -qemu args... – 将parameter passing给qemu
  • -icount [N|auto] – 启用每条指令具有2 ^ N个时钟滴答的虚拟指令计数器

这使得animation的stream畅和加速adb install十倍。

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

Android模拟器版本9具有新的“快照”function。 您可以保存模拟器的状态 (制作模拟器的图像),并避免在启动模拟器时引导。

您可以查看Google I / O 2011上的模拟器问题:Android开发工具讨论,从0:40:20开始。

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

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

他们当时提到,他们正在开发一个接口,允许仿真器通过主机硬件传输某些指令,所以最终你将能够利用桌面硬件的强大function来利用仿真器的性能。

目前(2011年5月)版本的仿真器速度很慢,特别是Android 3.0(Honeycomb),主要是因为仿真器不支持硬件GL–这意味着GL代码被转换成软件(实际上是ARM软件)在QEMU中用软件模拟。 这太疯狂了。 他们正在处理这个问题,并部分解决了这个问题,但没有任何发布质量。

看看谷歌I / O 2011video:Android开发工具 ,看看它的行动 – 跳到大约44分钟。

一个新的select是适用于Android的Visual Studio模拟器 – 它的速度很快, Hyper-V ,x86, 即使没有VS ,也可以免费下载 。

为此添加更多信息。

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

 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。

这是我注意到没有人提到它。

将所有可用的处理器分配给仿真器

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

我正在使用Windows 7。

当Android模拟器启动时,打开任务pipe理器,在Process标签下寻找“emulator-arm.exe”或者“emulator-arm.exe * 32”…右键点击它,selectProcessor Affinity和分配尽可能多的处理器,如你喜欢的模拟器。

在这里输入图像说明

试试Android Studio的Genymotion 。 快点! 只需要一次安装。 没有更多的AVD疼痛。

使用英特尔x86模拟器加速器

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

SDK Manager截图

在我使用的Android Studio版本(0.8.9)中,Android SDK Manager下载了HAXM,但实际上并没有运行安装程序(我认为这将在以后的版本中修复)。 要运行安装,我必须去C:\ Program Files文件(x86)\ Android \安卓工作室\ sdk \ extras \英特尔\ Hardware_Accelerated_Execution_Manager和手动启动intelhaxm.exe。

HAXM与英特尔设备协同工作,因此创build了一个带有英特尔CPU的新型仿真器。

使用Intel Atom x86创build一个新的AVD

这大大改善了事情,但模拟器仍然感觉有点呆滞。 最后一步是在Android虚拟设备pipe理器(AVD)中select使用主机GPU。

AVD创建选项的屏幕截图

Android模拟器在这些变化之后,在5-10秒内启动并运行,没有任何明显的滞后。 请注意,这些function与硬件有关(CPU / GPU),可能无法在某些系统上使用。

发展了一段时间后,我的模拟器变得非常慢。 我select了擦除用户数据 ,而且好多了。 我猜测,加载已部署的每个APK文件需要一些时间。

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

适用于Android的Visual Studio模拟器

编辑:尝试https://www.visualstudio.com/vs/msft-android-emulator/

那么,因为有人提出了Android x86作为一个替代testing模拟器,我也将展示我的最爱。 这可能不是每个人的select,但对我来说,这是完美的!

使用Bluestacks播放器 。 它运行Android 2.3.4,stream畅而快速。 有时甚至比一般的设备还要快。 唯一的缺点是,您可以在API Level 10上testing应用程序,只是在一个屏幕大小上testing应用程序,但仅仅用于testing是否正常工作是完美的。 只要通过运行连接播放器与adb

 adb connect 127.0.0.1 

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

To reduce your emulator start-up time you need to check the "Disable Boot Animation" before starting the emulator. Refer to the Android documentation .

If in case you don't know, you do not need to close the emulator every-time you run/debug your app. If you click run/debug when it's already open, your APK file will get uploaded to the emulator and start pretty much immediately. Emulator takes annoyingly long time only when it started the first time.

Here are some tips to speed up the Android emulator: How to speed up the Android Emulator by up to 400% .

I had intermittent slow emulator (SDK v8.0) load times, up to three minutes on Intel Core i7 920 2.67 GHz CPU running on Xubuntu 10.04 VirtualBox 3.2.12 guest with Eclipse (3.6.1) loaded. I changed the VirtualBox guest memory from 1024 MB to 2048 MB and from that point on, I never experienced the slowness again (load times consistent at 33 seconds, CPU load consistent at 20%). Both Eclipse and the emulator are memory hogs.

I noticed that the my emulator ( Eclipse plugin) was significantly slowed by my Nvidia graphics card anti-aliasing settings. Removing 2x anti aliasing from the graphics menu and changing it to application controlled made it more responsive. It is still slow, but better than it used to be.

The older Android versions run a lot faster. When I'm on my netbook, I use Android 1.5 (API level 3). There are a couple of drawbacks, though–your apps need to support the older platforms (obviously), and ndk-gdb requires running Android 2.2 (API level 8) or higher. But regularly testing apps against older platforms is a good idea anyway.