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

我有一个2.67 GHz赛扬处理器,和x86 WindowsXP专业机器上的1.21 GB RAM。

我的理解是,在这样的机器上安卓模拟器应该启动得相当快,但对我来说,它没有。我已经按照所有说明设置了IDE、SDK、JDK等,并在快速启动模拟器方面取得了一些成功,但这是非常罕见的。如果可能,我如何解决这个问题?

即使它启动并加载主屏幕,它也非常缓慢。我在版本3.5(伽利略)和3.4.4(木卫三)中尝试了Eclipse IDE

1113004 次浏览

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

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

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

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

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

我注意到,如果没有连接Dalvik Debug Monitor Server(DDMS),模拟器的启动速度会快得多。因此,如果您从Virtual Device Manager“SDKSetup.exe”启动模拟器而Eclipse没有启动,模拟器的工作速度会更快。

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

模拟器的启动很慢。好的一面是你只需要启动模拟器一次。如果模拟器已经在运行并且你再次运行你的应用程序,模拟器会相对较快地重新安装应用程序。当然,如果你想知道它在手机上运行的速度,最好在真实的手机上测试它。

为此添加更多信息。

我最近将我的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。

您可以使用以下命令创建emulator.bat来启动模拟器。它将更快地启动。

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

或者在Unix上(Mac或Linux风格):

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

我有间歇性的慢速模拟器(SDK v8.0)加载时间,在加载Eclipse(3.6.1)的XUbuntu 10.04VirtualBox 3.2.12客户机上运行的英特尔酷睿i7 920 2.67 GHz CPU上长达三分钟。我将VirtualBox客户机内存从1024 MB更改为2048 MB,从那时起,我再也没有经历过缓慢(加载时间一致为33秒,CPU负载一致为20%)。Eclipse和模拟器都是内存消耗者。

我注意到我的模拟器(Eclipse插件)被我的nvidia显卡防混淆现象设置显着减慢。从图形菜单中删除2倍的防混淆现象并将其更改为应用程序控制使其响应更快。它仍然很慢,但比以前好多了。

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

更新

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

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

快速启动

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

我还增加了Device RAM Size1024,这导致了一个非常快的模拟器。

有关更多信息,请参阅下面的屏幕截图。

创建具有保存快照功能的新AVD。

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

从快照启动模拟器。

从快照启动模拟器。

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

使用ssd硬盘影响太大,我建议使用更合适的ram(8或更高)

在3.4 GHz四核6 GB RAM、Windows 7上,模拟器慢得令人无法使用!我通过模拟器下载了Launcher-Pro.apk,安装了它并将其设置为默认启动器。它翻了一番我的仿真速度!屏幕加载更流畅更快。它似乎没有在2.1或2.2中下载,只有在2.0中下载。

开发了一段时间后,我的模拟器变得非常慢。我选择了擦除用户数据,它要好得多。我猜加载您部署的每个APK文件需要时间。

尝试androidx86。它比Google Android模拟器快得多。按照以下步骤操作:

  1. 安装VirtualBox
  2. 下载您需要的iso文件
  3. 创建虚拟机Linux2.6/其他Linux,512 MB RAM,HD2 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插件,找到设备,享受吧!

尝试缩小模拟器,它会使它更快,即使它没有感觉更快。

当前(2011年5月)版本的模拟器很慢,特别是Android 3.0(蜂巢),主要是因为模拟器不支持硬件GL-这意味着GL代码被翻译成软件(实际上是ARM软件),然后在QEMU中的软件中被仿真。这是疯狂的慢。他们正在解决这个问题并部分解决了它,但没有任何发布质量。

看看视频Google I/O 2011: Android开发工具,看看它的实际情况——跳到大约44分钟。

我在Mac上也遇到过类似的问题。

  • 1)在模拟器上,设置显示->禁用屏幕方向
  • 2)在Eclipse上,模拟器启动选项->-cpu延迟100

这些在降低CPU使用率方面有一些效果(不是40-60%左右),不是最终解决方案。但同样,CPU使用率不再>100%!

我刚刚采用了默认的Android 3.1,它非常慢,但是自从我意识到我的代码与Android 2.3.3兼容后,我就切换到了它。它快了大约50%,而且模拟器看起来更像我的手机,并且有一个键盘永久显示,以便更容易使用。

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

emulator @my_avd -no-boot-anim -qemu -icount auto
  • @my_avd -- launch a virtual device named 'my_avd'
  • -no-boot-anim -- disable animation for faster boot
  • -qemu args... -- pass arguments to qemu
  • -icount [N|auto] -- enable virtual instruction counter with 2^N clock ticks per instruction

This made animations buttery smooth and sped up adb install tenfold.

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

你需要更多的记忆。

这就是为什么我这么说:

我在Windows上使用VirtualBox以访客身份运行Ubuntu 10.10。我在VM上安装了Eclipse和Android SDK。我的物理盒有4 GB内存,但当我第一次配置Ubuntu虚拟机时,我只给了它1 GB。模拟器大约花了15分钟才启动。然后,我更改了配置,给VM 2 GB,模拟器不到一分钟就运行了。

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

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

主要的瓶颈是渲染,因为它不在任何专用硬件上运行,但实际上是通过软件渲染来执行的。降低屏幕尺寸将大大提高模拟器的性能。获得更多/更快的内存没有帮助。

他们当时提到,他们正在开发一个接口,允许模拟器通过主机硬件传输某些指令,因此最终,您将能够利用桌面硬件的原始功能来利用模拟器性能。

我尝试从Eclipse(Indigo和Android 1.5,没有快照)启动模拟器,45分钟后我停止了它,因为什么都没发生。

统计:Phenom Quad@2.6 MHz,4 GB DDR2 Corsair Dominator@800 MHz。AVD位于SSD驱动器上,模拟器位于7200每1k展现的收入HDD上。

我用-no-boot-anim选项手动启动模拟器,它在30秒内加载。:)

在CMD中,导航到emulator.exe文件所在的文件夹并键入

emulator.exe @<YourAVDFromEclipse> -no-boot-anim

emulator.exe文件位于工具下的Android SDK文件夹中。

在Windows中,您可以在C:\Users\<NAME>\.android\avd下找到Android虚拟设备(AVD)。

从Eclipse内部运行的项目,针对您启动的AVD,显示得很好:D

AVD Manager中选择VD并单击编辑,将分辨率设置为小,因为您可以阅读VD上的文本。

我使用800x600像素,RAM设置为512 MB,它的工作原理就像一个魅力,而不需要大量使用CPU时间。

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

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

要启用GPU加速,请从命令行运行模拟器或将“-gpu on”添加到AVD配置中的其他模拟器命令行选项中。

emulator -avd <avd_name> -gpu on

要使用CPU机器扩展,您必须安装驱动程序(小心,因为它可能与现有的VirtualBox威睿驱动程序冲突)。安装后,每当您使用基于x86的AVD时,它将自动使用。

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

此功能可以大大提高模拟器的性能!

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

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

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

例如:

  • 目标:英特尔凌动x86系统映像-API级别10
  • CPU/ABI:Intel Atom(x86)

Android ADT 18现在包括一个(测试版)启用GPU的选项(只需从您的AVD属性启用GPU加速)。它产生了巨大的变化,甚至ICS现在也感觉相对舒适。

我注意到模拟器在一段时间内会变慢。因此,可以删除变得非常慢的模拟器,并在AVD管理器的帮助下创建一个新的模拟器。我已经尝试了几次,效果很好。

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

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

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

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

并启动它:

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

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

HAX正在工作,模拟器在快速虚拟模式下运行

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

HAX不工作,模拟器在仿真模式模拟器中运行:
打开hax模块失败

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

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

保存后始终仔细检查设置!模拟器对它允许您设置的内容非常挑剔,它会在不告诉您的情况下恢复配置。

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

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

在撰写本文时,最快的模拟器是Android SDK附带的内置x86模拟器。您可以在创建虚拟机的AVD管理器中找到它们。只需选择其中任何一个,然后选择CPU类型(选择x86以获得最佳性能)。它将与您的机器一样快。

适用于Android 4.0和4.0.3的最新此类机器可以在为Android模拟器提供支持:在EC2上使用Goldfish和x86 KVM支持构建Android ICS-TestObject中找到。

注意:这仅用于开发目的。要测试性能,您仍然必须使用真实设备或使用ARM CPU在模拟器上进行测试。

启用快照可能不会在第一次运行中使其更快;不要选择大SD大小。在第一次运行中将SD卡大小调整为100 MB。

对于快速测试(<1秒),请使用Buildroid,并将VirtualBox的第一个网卡设置为“仅限主机网络”,然后运行

C:\Program Files (x86)\Android\android-sdk\platform-tools>adb connect *.*.*.*:5555connected to *.*.*.*:5555

(^)DOS/bash(v)

# adb connect *.*.*.*:5555connected to *.*.*.*:5555

其中 *. *. * .* 是您通过单击Buildroid主屏幕中的Buildroid应用程序获得的Buildroid IP地址。

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

使用Bluestacks Player。它运行Android 2.3.4并且非常流畅和快速。有时它甚至比普通设备更快。唯一的缺点是,您可以仅在API Level 10和一个屏幕尺寸上测试应用程序,但它非常适合测试它是否工作。只需通过运行将Player与adb连接

adb connect 127.0.0.1

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

我坚持你现在安装BlueStacks,因为它的工作方式与模拟器的许多其他功能相同(例如,它提供对Android Market的访问)。此外,你可以直接从Eclipse运行应用程序到BlueStack设备/模拟器,性能速度很快。将应用程序从Eclipse运行到BlueStack模拟器只需几分之一秒。

通过转到windows-->首选项-->通用-->启动和关闭来删除启动时一些插件的不必要激活。还要确保你没有在任何视图中使用这些插件

Eclipse不是文字处理器。最好禁用拼写检查。禁用拼写检查将通过转到窗口-->首选项-->通用-->编辑器-->文本编辑器-->拼写来减少日食负担

当eclipse构建项目时,它将删除所有输出文件夹并重建由其他编译器构建的类。我们可以禁用此类功能,因为删除输出文件夹并重建需要一些时间。转到窗口-->首选项-->Java-->编译器-->构建

禁用对您用处不大的标签装饰,也将帮助您获得一些性能。转到窗口-->首选项-->通用-->外观-->标签装饰

关闭不需要的项目并使用工作集选项从一组项目顺利移动到另一组项目。

如果您不需要Eclipse自动构建,您也可以禁用它。转到项目-->自动构建(取消选中它)

不要在编辑器中打开很多标签。最好有20个左右的标签。定期关闭未使用的标签。要打开资源,我们可以始终使用ctrl+Shift+R和ctrl+Shift+T(java资源)而不是打开很多标签

禁用不需要的插件。完整的J2EE eclipse版本有一个禁用/卸载插件的选项。转到帮助-->软件更新-->管理配置。右键单击任何已安装的插件以获取禁用选项。如果此选项不可用,请转到Windows-->首选项-->功能启用经典更新并检查经典更新。现在帮助菜单中应该有管理配置选项

要减少模拟器启动时间,您需要在启动模拟器之前检查“禁用启动动画”。请参阅Android留档

如果你不知道,你不需要在每次运行/调试应用程序时关闭模拟器。如果你在它已经打开时单击运行/调试,你的APK文件将上传到模拟器并几乎立即启动。模拟器只有在第一次启动时才会花费令人讨厌的长时间。

以下是一些加快Android模拟器速度的提示:如何加快Android模拟器高达400%

这是我注意到的,根本没有人提到它。

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

这是你可以尝试的。它确实为我加快了模拟器的速度,尤其是在加载期间。我注意到模拟器只使用可用CPU的单核。我将其设置为使用所有可用的处理器。

我用的是Windows 7

当Android模拟器启动时,打开任务管理器,在进程选项卡下查找“emulator-arm.exe”或“emulator-arm.exe*32”…右键单击它,选择处理器亲和力并为模拟器分配尽可能多的处理器。

在此处输入图像描述

我只是注意到一些我无法解释的东西,但是嘿,对我来说,它起作用了!

无论如何,我都在从源代码编译Android,内置模拟器在几秒钟内启动(我的机器是双核AMD 2.7 GHz),在一分钟内,第一次运行时可能是两分钟,系统启动。另一方面,使用Eclipse ADT捆绑包导致模拟器启动半小时。不可接受。

的解决方案在这里工作(我没有办法在其他机器上测试它,所以如果你觉得倾向,测试和验证):

  • 在您的机器上下载并构建Android SDK。这可能需要一些时间(您知道,编译整个系统很烦人)。可以在此处找到说明:
    1. 初始化
    2. 下载中
    3. 建设(我将命令更改为“午餐sdk-eng”和“make sdk-j4”;除此之外,构建技巧很有用,特别是关于cache和-jN选项)
  • 完成后,运行“android”并出现SDK管理器。下载工具和所需的平台包。如果找不到命令,请尝试重新运行“. build/envsetup.sh”和“午餐sdk-eng”命令来设置路径;退出终端会话后它们会丢失。
  • 运行“模拟器”来检查它的启动速度。对我来说,它比Eclipse捆绑的快得多。
  • 如果这有效,请将Eclipse指向您刚刚编译的SDK。左窗格中的Windows首选项-Android->选择SDK位置。它应该是包含“工具”子目录和“平台”子目录的目录。对我来说,它是<source base dir>/out/host/linux-x86
  • 应用/确定,如果需要,重新启动Eclipse。如果它没有任何抱怨,请运行您的Android应用程序。在我的情况下,模拟器将在几秒钟内启动,并在一分钟内完成引导。仍然有一点延迟,但我完全可以接受。

此外,我同意从快照和保存状态运行到快照。我的建议只涉及模拟器启动时间。我仍然不知道为什么默认情况下它这么长。不管怎样,如果这对你有用,享受:)

重要说明:请第一参考关于VT的Intel列表以确保您的CPU支持Intel VT。

HAXM加速缓慢的Android模拟器

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

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

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

HAXM

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

    • C:\Program文件\Android\android-sdk\临时演员\intel\Hardware_Accelerated_Execution_Manager

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

    如果安装程序失败并显示必须打开Intel VT的消息,则需要在bios中启用此功能。有关如何执行此操作,请参阅启用英特尔VT(虚拟化技术)中的描述。

安装. exe或. dmg

  • 创建新的 x86 AVD:如下图:

创建AVD

  • 至于新的SDK,在此处输入图片描述

现在在ADT 21上,它为快速模拟器提供了更多选项……您应该使用512 MB RAM、更低的CPU时间、设备选择和更高的VM堆大小。为了获得更好的结果,您应该在CPU/ABI中使用Intel Atom……使用快照和CPU主机可能不会提高模拟器的速度,但有一些有用的用于其他目的。

我昨天刚开始使用Windows 7,也遇到了同样的问题。我找到并正在为我工作的最简单的解决方案是在模拟器中使用低配置设备。我使用Nexus One而不是Nexus 7并在Android虚拟设备中选择设备的快照。

而且,同样重要的是保持模拟器打开。它适用于Eclipse和Android Studio。

在一个窗口中,它说当RAM超过~700时,快照通常不起作用。因此,选择较低配置的快照很容易帮助测试Hello World,然后用于开发您的应用程序。稍后,我们可以在高端设备上进行测试。

对我来说,虚拟化支持不起作用,因为我的硬件不支持它。

更新:最新版本的Android Studio(2. x)对捆绑模拟器进行了重大改进。它具有响应性并具有一大堆功能。

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

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

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

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

使用Android x86提供了比Android模拟器更好的生产力。

与Android x86 4.2相比,它提供了非常快速的调试。它的配置速度快很多倍

它正在使用最新的Android X86 4.2(果冻豆)和VirtualBox

我已经找到了连接互联网和亚行的不同方法。

步骤:1选择适配器

案例1:只有互联网{NAT适配器}

最简单的解决方案是使用NAT适配器,如果主机连接到Internet,它将直接将您连接到Internet,但您将无法通过此设置获得ADB连接。

在这里,您将获得一个公共IP地址,因此您无法连接到主机。

NAT适配器

案例2:仅ADB(仅主机适配器)

最简单的解决方案是只使用主机适配器。

仅主机适配器设置

备注:由于DHCP服务器设置,默认的仅主机适配器可能无法工作。要么创建一个新的HostOnlyAdapter,要么为现有适配器运行DHCP server

案例3:适用于ADB和Internet(桥接适配器)

在这种情况下,你必须小心。

如果您使用LAN进行Internet连接,则应将网桥适配器与以太网卡一起使用。它会为您提供本地IP地址,虚拟机将使用主机连接到Internet。

或者,如果您使用Wi-Fi,只需选择Wi-Fi适配器即可。

对于其他类型的连接,您应该以同样的方式进行。

网桥适配器

步骤:2与ADB连接

要检查IP地址,只需按Alt+F1(对于控制台窗口)。(要切换回图形视图,请按Alt+F7。)

您将看到控制台窗口。键入netcfg

它将显示IP地址。

现在移动到您的主机,运行命令提示符,然后移动到adb目录。

type adb connect <your IP address>

示例

adb连接192.168.1.51

注意:如果ADB没有运行或响应,您可以执行以下操作。

adb kill-server
adb start-server

您可以检查连接到ADB的设备:

adb devices

对于最初的问题,点击这里

在创建新的android虚拟设备时尝试减小模拟器的屏幕大小。

我已经看到,与AVD管理器中提供的默认选项相比,这将非常快地启动模拟器。

如果您有Intel CPU,请安装英特尔硬件加速执行管理器

然后在模拟器设置中将其分配为模拟器的CPU。当我在酷睿i7 CPU上执行此操作时,大约需要10分钟。现在它在15秒内打开。

尝试减小屏幕尺寸,也许你应该考虑使用ubuntu。我也遇到过同样的问题,不知何故,我在同一台PC上的模拟器在使用Linux时工作速度快了五倍。

模拟器很慢。您确实无能为力,但有替代模拟器的方法。

  1. 基因运动-首选

  2. VirtualBox

  3. BlueStacks

  4. YouWave

  5. Windows Android模拟器

  6. 豆子罐

  7. 安迪

为了使您的模拟器更快,您可以托管GPU并使用更轻的Android版本(android2.3(姜饼))。在Mac上开发会更好。为什么要使用模拟器,顺便说一句?使用真实的手机更有意义。

简短的回答:因为ARM->x86指令转换。模拟器的工作方式与虚拟机类似,虚拟机的任务是启动一个成熟的操作系统并在之后运行您的测试应用程序。ARM->x86转换可能非常耗时,对您的应用程序来说更少,但在操作系统启动时更多(它与复杂性和所涉及的指令数量成比例)。

有人建议在x86模拟器上运行代码。这意味着不是加载基于ARM的操作系统,而是加载一个在x86机器上运行更快的x86变体,因为不需要ARM->x86转换。尽管如此,这不是一个完美的解决方案:

使用NDK并包含为ARM编译的本机lib(*. so)的Android应用程序无法在x86模拟器上运行,因此此类程序将无法运行。但是,如果您达到这一点并开始处理NDK/本机JNI代码,那么您可能已经对模拟器有了足够的了解。

使用ADB实用程序,我发现了一些更重要的信息。

模拟器实际上正在运行,但似乎图形界面可能是问题所在。

当Android启动屏幕时,您将永远等待,它看起来如下所示:在此处输入图片描述

模拟器实际上正在运行,因为您可以运行以下命令行工具并查看列出的进程:

adb -s emulator-5554 shell ps

这将为您提供在设备上运行的进程列表,该列表似乎卡住了。

我将输出通过管道传输到一个文件,这里是所有正在运行的进程的列表:

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
root      1     0     696    500   c02ae25a 0805a406 S /initroot      2     0     0      0     c02315a2 00000000 S kthreaddroot      3     2     0      0     c021f9dc 00000000 S ksoftirqd/0root      5     2     0      0     c022e8d7 00000000 S kworker/u:0root      6     2     0      0     c022e085 00000000 S khelperroot      7     2     0      0     c022e8d7 00000000 S kworker/u:1root      255   2     0      0     c02886de 00000000 S sync_supersroot      257   2     0      0     c028935e 00000000 S bdi-defaultroot      259   2     0      0     c022e085 00000000 S kblockdroot      267   2     0      0     c022e085 00000000 S ata_sffroot      278   2     0      0     c04f610f 00000000 S khubdroot      283   2     0      0     c022e085 00000000 S mdroot      297   2     0      0     c022e085 00000000 S cfg80211root      298   2     0      0     c022e8d7 00000000 S kworker/0:1root      413   2     0      0     c0283057 00000000 S kswapd0root      481   2     0      0     c02cd713 00000000 S fsnotify_markroot      501   2     0      0     c022e085 00000000 S cryptoroot      590   2     0      0     c022e085 00000000 S iscsi_ehroot      611   2     0      0     c048aa21 00000000 S mtdblock0root      619   2     0      0     c048aa21 00000000 S mtdblock1root      627   2     0      0     c048aa21 00000000 S mtdblock2root      666   2     0      0     c022e8d7 00000000 S kworker/0:2root      700   2     0      0     c022e085 00000000 S binderroot      724   2     0      0     c022e085 00000000 S deferwqroot      725   1     624    348   c02ae25a 0805a406 S /sbin/ueventdroot      932   2     0      0     c055236e 00000000 S mmcqd/0root      939   2     0      0     c0340f30 00000000 S yaffs-bg-1root      941   2     0      0     c0340f30 00000000 S yaffs-bg-1root      942   2     0      0     c0340f30 00000000 S yaffs-bg-1system    943   1     1340   400   c056a35d b76a1eb6 S /system/bin/servicemanagerroot      944   1     5540   924   ffffffff b7646c11 S /system/bin/voldroot      947   1     1548   504   c05785ce b766c163 S /system/bin/debuggerdradio     948   1     6420   1016  ffffffff b76d3c11 S /system/bin/rildsystem    949   1     20088  2876  ffffffff b7655eb6 S /system/bin/surfaceflingerdrm       951   1     10480  2920  ffffffff b7585eb6 S /system/bin/drmserverkeystore  954   1     5036   1416  c056a35d b765deb6 S /system/bin/keystoreroot      955   1     1324   440   c02d0083 b76b28ab S /system/bin/qemudshell     958   1     1428   668   c03e9ad9 b767fa76 S /system/bin/shroot      959   1     4680   304   ffffffff 08063530 S /sbin/adbdgraphics  1012  1     17980  4276  ffffffff b7652eb6 S /system/bin/bootanimationmedia     4743  1     25288  6232  ffffffff b75beeb6 S /system/bin/mediaserverroot      4744  1     3944   1164  00000000 b7628976 R /system/bin/netdroot      4770  4744  0      0     c021de78 00000000 Z iptablesroot      4771  959   1768   540   00000000 b766fa76 R ps

为了好玩,我运行了以下命令并杀死了“Android”动画:

adb -s emulator-5554 shell kill 1012

闪屏变成了空白,所以有些事情真的发生了。

我尝试并成功地杀死了一些其他进程,这让我感觉很好,但模拟器似乎仍然没有开始。哦,好吧。我正在运行具有8Gb内存的QuadCore i7。还使用本问题中其他帖子中描述的设置运行haxm。

说明:我在2014年9月19日更新了这个-我了解到模拟器会尝试启动实例但永远不会的这种奇怪行为都与模拟器文件的文件权限有关。由于复制的方式,它们被设置为只读,因此模拟器尝试安装并写入其“虚拟磁盘”,但它的“虚拟磁盘”实际上是一个文件或一组文件,我的操作系统已将其设置为只读,因此它失败了。这些故障导致模拟器永远无法启动。我将文件设置为完全访问,模拟器在创纪录的时间内启动。

在模拟设备时,请尝试使用Intel X86 Atom存储映像以比使用基于ARM的映像更快的速度启动。

需要注意的另一件事是,根据您的系统配置,运行具有1.21 GB RAM的Android模拟器可能是一种缓慢的体验,因为模拟器需要高达一定比例的RAM用于模拟设备,不要忘记ADT使用的RAM。

尝试2.1-2.3.3的系统映像以获得至少可运行的体验。另外不要忘记保存到快照以更快地加载。虽然第一次加载可能需要时间。但是保存到快照肯定会节省一些时间。

对于初学者来说,简单易行的解决方案。我尝试了很多方法,并在与Eclipse结合时停止了基因运动。GenyMotion只是在Eclipse中添加了一个虚拟设备。

一步一步:

  1. 这里下载包含VirtualBox的GenyMotion。
  2. 在VirtualBox中安装包含构建的此包。
  3. 这里将插件安装到Eclipse中。
  4. 启动GenyMotion并创建一个您想要使用的虚拟设备,然后启动它。
  5. 在Eclipse中,转到窗口->偏好->GenyMobile->GenyMotion,并将路径设置为GenyMotion(在我的情况下,C:/ProgramFiles/GenyMobile/GenyMotion)。
  6. 在Eclipse中单击要启动的项目名称。使用“运行为”启动应用程序。在设备列表中,您应该会看到模拟设备。
  7. 你可以模仿你想要的。

在我的情况下,这个解决方案是唯一快速的解决方案。Eclipse中没有模拟器从未如此快速地工作,而且每个设置都非常慢。只有这个解决方案几乎可以实时工作。我可以推荐(笔记本i3,2.6 GHz)。

这就是对我起作用的:

  • 将AVD RAM设置为512 MB
  • 将SD卡内存设置为10 MB
  • 设置大的SD卡内存大小是AVD缓慢的最大原因之一。

我有同样的问题,但我通过从C:\Users\User\中删除.android文件夹来修复它。

现在,每次我启动Eclipse或AVD时,我都会删除该文件夹。之后,我的AVD在20到30秒内启动,模拟器运行平稳,延迟可以忽略不计。

可选:如果问题仍然存在,请尝试克隆NEXUS SAVD。

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

适用于Android的Visual Studio模拟器

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

为了获得更好的体验,我会推荐shop.genymotion.com许可的genyMotion。如果你想测试它,首先你可以得到这里有动力

您可以尝试GenyMotion而不是Android模拟器。它比Android模拟器更快更好。

您可以从这里下载genymotion模拟器。这是快速有效的。

有几件事绝对加速了我的发展

1.通过选中AVD编辑窗口中的“使用主机GPU”复选框将渲染过程委托给GPU。

2.下载英特尔凌动(x86)图像,或者如果您是windows/mac用户,则下载英特尔x86模拟器加速器HAXM

不幸的是,Intel x86映像的问题是您没有Google Apps,它们只附带ARM映像。

这就是基因运动派上用场的地方

  1. 下载并安装VirtualBox。对于Windows用户,无需单独安装VirtualBox,因为它可以从GenyMotion站点获得,与GenyMotion模拟器捆绑在一起。
  2. 转到Genymotion网站并注册。您将收到一封验证邮件,因此只需单击验证链接即可继续。
  3. 下载并安装Genyaction模拟器。
  4. 启动GenyMotion。您可能需要在GenyMotion设置中配置Android SDK位置的路径(可能是如果您已在非默认位置安装SDK)。由于这是第一次启动,因此没有设备。单击“添加”并下载新设备。要查看可用设备,请在弹出对话框中写下您的凭据并单击“连接”。
  5. 选择设备并单击“开始”。

现在,我们可以在Chrome上使用ARC Welder应用程序测试Android应用程序,而不是使用模拟器。应用运行时Chrome

是的,你是对的,因为原生Android模拟器比其他自定义模拟器(如genymotion)非常慢。我在运行功能葫芦Android测试时发现了这一点。

在原生android模拟器上,这个问题是在“超时异常”发生时产生的,所以我转移到解决问题的genymotion模拟器。

附注:genymotion模拟器不再是免费的。

试用Android Studio的基因运动。速度很快!只需要一次安装。不再有AVD痛苦。

加快Android模拟器和应用程序测试的好方法是安装或升级您的Android Studio到Android Studio 2.0版本,然后转到应用程序打开设置/首选项,转到构建、执行、部署→即时运行。单击启用即时运行。之后,这将确保您的项目拥有正确的gradle插件来使用即时运行。输入图片描述

即时运行看起来像这样Android Studio中用于即时运行的新运行和停止操作

但是Android Studio现在处于预览版中,您现在可以尝试一下。

我建议您使用Android手机进行USB调试开发。与虚拟设备相比,它在测试应用程序时提供了更好的体验和更好的输出。或者您也可以使用其余答案中提到的选项,可以使用Bluestacks App Player,在Android设备不可用的情况下,这也是一个不错的选择。

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

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

添加更多RAM并使用SSD驱动器。根据我的经验,Android Studio最好使用SSD驱动器在8到12 GB的RAM上运行。

如果可以的话,切换到使用Ubuntu进行Android开发。我切换到Ubuntu 14.04 LTS进行Android开发,我很高兴我跳了一步。提到的所有步骤在Windows上的滞后几乎没有或根本没有影响。Linux是您面临的所有问题的正确答案

我们过去在缓慢的Android模拟器上运行项目的那些日子一去不复返了。今天,Android模拟器是类固醇。是的,你听到了。没有其他模拟器像Android模拟器一样快。您可以访问我的博客了解更多详细信息:

我已经详细解释了新的Android模拟器。检查出来。

相信我,它们和你真正的设备工作一样快。

您可以尝试我们新的Android虚拟机Leapdroid,它与原始的Android模拟器完全兼容。由于它使用虚拟化技术,而不是仿真,它提供了几乎原生的速度。此外,我们使用了一种名为LeapGL的新OpenGL技术,它以原生速度执行OpenGL图形。我们的虚拟机与其他虚拟机相比具有最佳性能。

http://www.leapdroid.com

源代码:https://github.com/leapdroid

Leapdroid与Eclipse和Android Studio完全兼容,因为它使用相同的adb端口。

Android Studio 2.02已经推出,它有更快的模拟器,如果你想使用第三方,使用Genyaction模拟器,它们非常快

HAXM是使英特尔处理器的模拟器更快的一种方法HAXM是内核驱动程序部分,用户空间模拟器部分基于QEMU-这意味着QEMU的一个分支使用HAXM(这个QEMU分支非常特定于android-emulator(并且似乎也基于旧版本的QEMU)。

但是,当我使用带有4千兆字节 RAM的英特尔酷睿i3处理器时,它对速度的影响并不大。所以这对我来说不是一个解决方案。

由于我使用4GB RAM cpu模拟器成为RAM eater,但为了使其更方便,有一些方法我更喜欢安卓*86支持基于模拟器。随着Android Studio现在引入即跑因此,首次启动应用程序安装后变得更快,但我总是面临问题,似乎没有办法摆脱困境。

我也用了Droid4x,它对我来说很方便,但我找不到一种方法来安装不同的api版本,我用它Kitkat,它比android模拟器更快,它也是启用VT支持,所以我找到了另一种方法和一个很好的解决方案Visual Studio模拟器你可以阅读更多关于它的信息这里,我最新使用的是LeapDroid它真的很强大看到比较这里

我更喜欢在4GB RAM PC上使用Real设备,然后使用模拟器。

我想知道为什么没有人提到Visual Studio Emulator作为替代方案。它比原生Android Studio Emulator快得多。

以下是性能比较的链接:https://medium.com/android-news/how-visual-studio-emulator-for-android-can-improve-your-android-development-9e17a6213839#.hlh7ba6ut

在此处输入图片描述

更好的是,apk文件甚至gapps(或任何其他可刷新的zip)都可以通过拖放安装。然而,缺点是它需要Hyper-V,而Hyper-V仅在Windows上可用(从Windows 8开始也是如此)。其他限制(以及上面的描述)和其他详细信息可以在这里找到:https://blogs.msdn.microsoft.com/visualstudioalm/2014/11/12/introducing-visual-studios-emulator-for-android/

我的解决方案是Vysor。我得到了两个最好的世界。我的机器上没有太多的电荷,但我也可以在屏幕上看到我真正的Android设备,所以我不必伸手去拿它,把手从键盘上拿开等。此外,总有一些功能在模拟器上效果不佳。

有免费的版本与广告和付费的一个与其他解决方案相比,不会打破银行。

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

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

SDK管理器截图

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

HAXM适用于Intel设备,因此使用Intel CPU创建了一个新的模拟器。

使用Intel Atom x86创建新的AVD

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

AVD创建选项截图

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

Android Studio性能在Linux大大优化。Windows系统可能在后台运行不同的重型程序。Linux最适合有效地使用可用的系统资源。最近我在KaliLinux安装了Android Studio。模拟器的速度和工作室性能比Windows好得多。

并且软件开发工具从android SDK下载得更快。由于软件包捆绑在二进制文件中。二进制文件的大小很低。

我建议使用OpenGL设置。我有一个双核(四线程)i3-2350M在它的内部GPU上运行,如果我使用SwiftShaders,我会得到糟糕的性能,但将其更改为“桌面原生OpenGL”(Extended Controls > Settings > OpenGL ES Renderer)使其运行流畅。

如果设备无法启动,请使用设备配置中的OpenGL ES API Level设置和GPU仿真设置。

我不知道为什么,但在我的2011年英特尔处理器上,它使世界变得不同。

首先,您需要将RAM升级到至少8GB。

如果您无法升级您的RAM,请尝试通过数据线和设置为ON的USB调试连接在Android手机上运行应用程序。

此外,您可以使用其他一些模拟器,例如GenyMotionnox

但是,由于您似乎拥有的RAM量,即使是其他模拟器也可能会很慢。