为什么Android手机模拟器这么慢?

为什么Android手机模拟器这么慢?,android,android-emulator,Android,Android Emulator,与iPhone和Windows Phone 7的同类产品相比,它的启动需要花费很长的时间——期待它随着时间的推移而改善是否现实?我不会打赌它会有显著的改善。这是因为Android使用基于QEMU的模拟器(与IPhone的模拟器相比) 由于IPhone是模拟的,因此它可以在主机上将指令转换为本机处理器代码,这比QEMU替代方案快得多 仿真的最大优点是,在模拟器上运行的代码实际上是将在物理设备上运行的代码,因此避免了可能出现的一轮错误 现在,在提高Android仿真程序的速度时,您可以: 打开模拟

与iPhone和Windows Phone 7的同类产品相比,它的启动需要花费很长的时间——期待它随着时间的推移而改善是否现实?

我不会打赌它会有显著的改善。这是因为
Android
使用基于
QEMU
的模拟器(与
IPhone
的模拟器相比)

由于
IPhone
是模拟的,因此它可以在主机上将指令转换为本机处理器代码,这比
QEMU
替代方案快得多

仿真的最大优点是,在模拟器上运行的代码实际上是将在物理设备上运行的代码,因此避免了可能出现的一轮错误

现在,在提高Android仿真程序的速度时,您可以:

  • 打开模拟器,而不是每次启动都关闭它;(重新)在开放仿真器中安装应用程序几乎是即时的

  • 启动仿真器时使用命令行开关;这将在一定程度上改善启动时间

  • 使用真实设备测试应用程序


此外,如果您在eclipse中右键单击进程并选择“断开连接”,它将大大加快仿真器的速度,但您当然无法进行调试。

是的,我很快就学会了在每次部署后不要关闭它!Android从很早的时候就有一个模拟器潜伏在源代码中(构建sim-eng目标),但是它的使用受到了反对,我认为它在发布的源代码中从来没有起过作用(发布时间前后出现了一些中断,没有人注意到)。即使启用了大量断言和附加检查,它也可以在几秒钟内到达主屏幕。它主要用于运行valgrind。实际上QEMU是二进制转换器(即您称之为“模拟器”),但Android emulator基于非常旧的QEMU源代码,从未对主线QEMU进行任何改进。最新版本的SDK现在提供了在退出时保存模拟器状态的功能,并从该快照重新启动模拟器,这大大改善了问题。请看以下提示: