我在x86 Windows XP Professional机器上有2.67 GHz赛扬处理器和1.21 GB RAM。

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

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


当前回答

有几件事确实让我加快了速度

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

2.下载Intel Atom(x86)映像,或者如果您是windows/mac用户,请下载Intel x86 Emulator Accelerator HAXM

不幸的是,Intel x86图像的问题是,你无法获得谷歌应用程序,它们只附带ARM图像。

这就是Genymotion派上用场的地方

下载并安装VirtualBox。对于Windows用户,不必单独安装VirtualBox,因为它可以从Genymotion站点获得,并与Genymotio仿真器捆绑在一起。转到Genymotion网站并注册。您将收到一封验证邮件,因此只需单击验证链接即可继续。下载并安装Genymotion仿真器。启动Genymotion。您可能需要在Genymotion设置中配置Android SDK位置的路径(如果您在非默认位置安装了SDK,则可能需要这样做)。因为这是第一次开始,所以没有设备。单击“添加”并下载新设备。要查看可用设备,请在弹出对话框中写入凭据,然后单击“连接”。选择设备并单击“开始”。

其他回答

重要提示:请首先参考有关VT的Intel列表,以确保您的CPU支持Intel VT。

HAXM加速了缓慢的Android模拟器

HAXM代表“Intel硬件加速执行管理器”

目前,它仅支持Intel®VT(Intel虚拟化技术)。

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

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

更新Eclipse:确保Eclipse安装和ADT插件是最新的。更新Android工具:在每次Eclipse插件更新后,更新Android SDK工具非常重要。为此,启动Android SDK管理器并更新所有Android SDK组件。要利用HAXM,您必须至少使用版本17。

下载x86 Atom系统映像和Intel硬件加速执行管理器驱动程序。如下图所示:

通过运行“IntelHaxm.exe”安装HAXM驱动程序。它将位于以下位置之一:C: \程序文件\Android\Android sdk\pextras\intel\Hardware_Accelerated_Execution_ManagerC: \Users\<user>\adt-bundle-windows-x86_64\sdk\pextras\intel\Hardware_Accelerated_Execution_Manager如果安装程序失败,并显示必须打开Intel VT,则需要在BIOS中启用此功能。请参阅“启用Intel VT(虚拟化技术)”中的说明,了解如何做到这一点。

创建新的x86 AVD:按照下图所示:

或者对于新的SDK,

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

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

当Android启动屏幕打开时,您将一直等待,它看起来如下所示:

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

adb -s emulator-5554 shell ps 

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

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

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME

root      1     0     696    500   c02ae25a 0805a406 S /init
root      2     0     0      0     c02315a2 00000000 S kthreadd
root      3     2     0      0     c021f9dc 00000000 S ksoftirqd/0
root      5     2     0      0     c022e8d7 00000000 S kworker/u:0
root      6     2     0      0     c022e085 00000000 S khelper
root      7     2     0      0     c022e8d7 00000000 S kworker/u:1
root      255   2     0      0     c02886de 00000000 S sync_supers
root      257   2     0      0     c028935e 00000000 S bdi-default
root      259   2     0      0     c022e085 00000000 S kblockd
root      267   2     0      0     c022e085 00000000 S ata_sff
root      278   2     0      0     c04f610f 00000000 S khubd
root      283   2     0      0     c022e085 00000000 S md
root      297   2     0      0     c022e085 00000000 S cfg80211
root      298   2     0      0     c022e8d7 00000000 S kworker/0:1
root      413   2     0      0     c0283057 00000000 S kswapd0
root      481   2     0      0     c02cd713 00000000 S fsnotify_mark
root      501   2     0      0     c022e085 00000000 S crypto
root      590   2     0      0     c022e085 00000000 S iscsi_eh
root      611   2     0      0     c048aa21 00000000 S mtdblock0
root      619   2     0      0     c048aa21 00000000 S mtdblock1
root      627   2     0      0     c048aa21 00000000 S mtdblock2
root      666   2     0      0     c022e8d7 00000000 S kworker/0:2
root      700   2     0      0     c022e085 00000000 S binder
root      724   2     0      0     c022e085 00000000 S deferwq
root      725   1     624    348   c02ae25a 0805a406 S /sbin/ueventd
root      932   2     0      0     c055236e 00000000 S mmcqd/0
root      939   2     0      0     c0340f30 00000000 S yaffs-bg-1
root      941   2     0      0     c0340f30 00000000 S yaffs-bg-1
root      942   2     0      0     c0340f30 00000000 S yaffs-bg-1
system    943   1     1340   400   c056a35d b76a1eb6 S /system/bin/servicemanager
root      944   1     5540   924   ffffffff b7646c11 S /system/bin/vold
root      947   1     1548   504   c05785ce b766c163 S /system/bin/debuggerd
radio     948   1     6420   1016  ffffffff b76d3c11 S /system/bin/rild
system    949   1     20088  2876  ffffffff b7655eb6 S /system/bin/surfaceflinger
drm       951   1     10480  2920  ffffffff b7585eb6 S /system/bin/drmserver
keystore  954   1     5036   1416  c056a35d b765deb6 S /system/bin/keystore
root      955   1     1324   440   c02d0083 b76b28ab S /system/bin/qemud
shell     958   1     1428   668   c03e9ad9 b767fa76 S /system/bin/sh
root      959   1     4680   304   ffffffff 08063530 S /sbin/adbd
graphics  1012  1     17980  4276  ffffffff b7652eb6 S /system/bin/bootanimation
media     4743  1     25288  6232  ffffffff b75beeb6 S /system/bin/mediaserver
root      4744  1     3944   1164  00000000 b7628976 R /system/bin/netd
root      4770  4744  0      0     c021de78 00000000 Z iptables
root      4771  959   1768   540   00000000 b766fa76 R ps

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

adb -s emulator-5554 shell kill 1012

启动屏幕变为空白,因此确实发生了一些事情。

我尝试并成功地杀死了一些其他进程,这让我感觉很好,但模拟器似乎从未启动过。哦,好吧。我正在运行一个QuadCore i7,内存为8Gb。同样使用本问题其他文章中描述的设置运行haxm。

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

使现代化

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

单击Emulator编辑按钮,然后单击显示高级设置。然后启用快速启动,如下图所示。

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

此外,我还将设备RAM大小增加到1024,这导致了一个非常快的仿真器。

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

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

从快照启动仿真程序。

关于加速模拟器,您可以参考加速Android模拟器!:

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

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

使用Bluestacks播放器。它运行Android 2.3.4,非常流畅和快速。有时它甚至比普通设备更快。唯一的缺点是,你只能在API级别10上测试应用程序,并且只能在一个屏幕大小上测试,但它非常适合测试是否正常工作。只需通过运行

adb connect 127.0.0.1 

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

启用快照可能不会使其在第一次运行时更快;不要追求大SD尺寸。第一次运行时将SD卡大小调整为100 MB。