加速Android模拟器

29

我在许多其他主题上读到,Android模拟器启动非常缓慢。实际上,需要15分钟以上才能启动。然而,在我的机器上,即使启动后速度也很慢。

手机响应有3-4秒的延迟,一切都非常卡顿。

有没有办法提高我的笔记本电脑(Asus 1201N)的性能,因为它对Android模拟器来说太老旧了?

PS:尝试在不同的模拟器分辨率下运行,结果仍然相同。

编辑:我的笔记本电脑有2个带超线程技术的核心。在设备管理器中显示为4个CPU。然而,在使用模拟器时,只有一个图表达到100%。我能做些什么让它多核工作吗?


只要模拟单个CPU设备,仿真器就无法使用多个主机CPU。所以你的测量结果是正确的。然而,仿真器可以利用主机GPU或更多的CPU核心来加速其OpenGL工作,但目前还没有这样的实现。 - dronus
8个回答

22

你有勾选“禁用启动动画”吗?

另外,如果那样做无法解决问题,有一个方法可以帮助你:在编码时,你不必关闭模拟器屏幕。如果你点击“调试”,即使已经打开屏幕,你的 APK 也会立即上传到模拟器并开始运行。我花了一段时间才明白我不必手动关闭模拟器。


1
“禁用启动动画”选项在哪里? - Blaise
3
调试配置 > 您的调试配置 > "目标" 选项卡 - Brandon O'Rourke
这是在Eclipse中,可能会使模拟器的工作更好。然而,问题在于即使仅使用模拟器,没有部署自定义应用程序,它仍然非常卡顿。 - Blaise
1
那只是你的笔记本电脑太旧了。我还没有尝试过,但你可以直接在手机上进行调试。虽然我不确定这样做是否会更快,但如果你的延迟足够严重,值得一试。 - Ben Burnett
是的,这是值得一试的。您需要在手机上启用非市场应用程序和调试功能,通过USB连接它,并在开始调试时选择您的设备序列号。 - Brandon O'Rourke
针对Eclipse调试配置:有人知道如何在Android Studio中实现吗?我想要移除模拟器启动屏幕。 - pearcewg

9

我学到的一件有用的事情是,一旦模拟器从第一次调试运行时打开后,您不需要关闭它。让它保持打开状态,在下一次调试运行时,它将准备就绪,无需像第一次打开时那样加载。

关于启动后速度变慢的问题,我怀疑这只是因为您的计算机。对我来说,它运行得非常快。它在大约20秒钟或更短的时间内启动,并且一旦它打开,我的后续调试加载非常快。

希望至少我的第一个提示有助于节省您的一些心智。


3

我认为有几种方法可以提高Android模拟器的性能,如下:

  1. 使用快照功能,这将改善连续应用程序运行的启动时间
  2. 使用x86英特尔硬件加速器
  3. 使用第三方模拟器,如BlueStacks

希望这些方法能够帮助您提高性能并解决问题。 谢谢


1
欢迎来到Stack Overflow!感谢您发表回答!请务必仔细阅读自我推广的FAQ。还请注意,每次链接到您自己的网站/产品时,必须发布免责声明。我将删除链接,以免有人误认为这篇帖子是垃圾邮件。 - Andrew Barber

3
以下是翻译内容:

以下是你可以尝试的方法。这对我来说确实加速了模拟器,特别是在加载时。 我发现模拟器只使用了可用CPU的单个核心。我的做法是将其设置为使用所有可用的处理器。

我正在使用Windows 7。

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

enter image description here


2
对我来说也太慢了。 (在我的Pentium 4(ubuntu)和我的双核64笔记本电脑(Windows 7)上都很慢)
显然它使用QEMU-我是否可以查找映像文件并尝试不同版本的qemu?
我尝试过的另一件事是这个:http://www.android-x86.org/(在vmware中) 这似乎快得多,但我无法让它看到网络!
(现在我只想在浏览器中测试一些网站,所以看到网络是必须的-我还没有做原生应用程序)

2

我曾经遇到过同样的问题,为了解决它,我只需在“备用部件”下禁用所有启用的转换动画效果。


1

我发现,与其运行“调试”目标,我只需要运行“运行”目标。这样做时模拟器运行得更流畅。只有当我真正需要时,才会切换到调试模式。


1

要从android-x86连接到网络,您需要在控制台模式(Alt + F1)下使用以下命令手动设置IP:

ifconfig eth0 netmask 255.255.255.0 up

完成后,您可以通过在控制台中键入:netcfg来检查它,并且您可以看到此IP已设置为本地wmware。

您可以通过在命令提示符中ping所设置的IP来检查其是否成功,之后,您可以使用adb connect将调试器连接到虚拟android。


我尝试了同样的事情,但是出现了“没有这样的设备”错误。当我输入netcfg时,我看到5个设备,全部都是离线的。 - Akash Kava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接