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

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

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


当前回答

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

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

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

其他回答

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

一个新的选项是Visual Studio Emulator for Android——它速度快、Hyper-V、x86,即使没有VS也可以免费下载。

我注意到,如果没有连接Dalvik调试监控服务器(DDMS),仿真器启动速度会快得多。因此,如果您从Virtual Device Manager“SDK Setup.exe”启动仿真器,而Eclipse未启动,则仿真器的工作速度更快。

如果您从Eclipse:DDMS启动模拟器,那么有时模拟器非常慢,但有时速度更快。

我有间歇性的缓慢模拟器(SDK v8.0)加载时间,在加载了Eclipse(3.6.1)的Xubuntu 10.04 VirtualBox 3.2.12客户机上运行的Intel Core i7 920 2.67 GHz CPU上长达三分钟。我将VirtualBox客户机内存从1024 MB更改为2048 MB,从那时起,我再也没有体验过这种缓慢(加载时间一致为33秒,CPU负载一致为20%)。Eclipse和模拟器都是内存占用者。

使现代化

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

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

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

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

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

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

从快照启动仿真程序。

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

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