我能否对我的安卓模拟器进行调整以提升速度?

60

我正在使用安卓模拟器运行程序。但是它非常缓慢。 启动并显示主屏幕需要大约90秒钟。 我能否进行调整以显著减少这个时间? 谢谢


启用快照:https://dev59.com/8nI_5IYBdhLWcg3wDOZC - Jacksonkr
13个回答

35

我遇到了类似的问题(这里有个帖子),不过我的情况需要花费10-15分钟。考虑到在Android讨论组中有许多线程,90秒的速度非常快。虚拟模拟器本来就很慢,我所看到的唯一推荐是保持模拟器开启而不是关闭并重新运行。但如我帖子中所提到的,如果你有一个实体的Android设备,你就可以直接在上面运行它。这是我目前正在做的,而且得到了非常好的建议。没有长时间等待。如果你没有实体设备,那么我只能建议你在代码更改之间不要关闭模拟器,因为系统会识别到这种变化。


3
没错。让模拟器运行并在编辑之后重新运行代码。 就像热插拔一样。 谢谢。 - Bohemian
1
我没有查看链接,但对于我的系统,我正在寻找更多的时间:首次启动:90秒,随后的启动:15-20秒。我的硬件不是非常快(笔记本电脑,2ghz core2-duo,4gig内存),Ubuntu...可能有其他东西在拖慢它吗? - Jeremy Logan
1
让它保持运行状态确实非常有用。我个人已经转而使用手机本身作为唯一的调试工具。只需连接电缆,进行配置,它就可以立即运行,无需等待,还支持方向更改...问候,Ari - BeMeCollective
1
@fiXedd:我不确定有多少种方法可以加速它。在我真正使用物理设备之前,我曾寻找各种提高模拟器速度的方法,但我并没有找到太多信息。即使你可以做出一些微小的改变,我也不知道对当前版本的模拟器来说速度提升会有多大。 - keyboardP
你不能在同一设备上运行不同版本的应用程序。你如何在2.1设备上测试1.5版本? - gcb
@gcb - 最近我没有做过任何Android编程,所以我不知道模拟器是否最近已经变得更快了。但是,如果你必须在没有设备的情况下测试你的程序,那么你别无选择,只能使用模拟器。一个好主意是先让你的程序在你当前的手机上运行到一个合理的水平,然后再使用模拟器来测试其他版本。 - keyboardP

31

使用这三个选项。

emulator --cpu-delay 0 --no-boot-anim --cache ./cache --avd avd_name

前两个选项很明显。第三个选项将使模拟器的内存具有某种持久性。您可以将其指向任何不会被引导程序销毁的文件(例如,/tmp 中发生了这种情况),它就像是一个始终处于休眠状态的设备。


我们把这个保存在哪里?保存在哪个文件位置? - Thompson
@Thompson,如果你问缓存文件会在哪里,那么它可以在任何地方。./表示“在我运行此命令时所在的位置”。但是你可以将其替换为任何文件(如果不存在,则会创建该文件),例如--cache /home/thompson/androidcache - gcb

9

7
  1. -no-boot-anim 参数很好用。
  2. 不要关闭模拟器,只需重新启动您的应用。
  3. 为了进一步提高速度,请尝试新的快照功能,详情请参考这里

2
如果您有移动设备,通过USB编译到设备上会更快(而且更可靠)。它大约需要5秒钟来编译和安装在您的手机上,我再也不使用模拟器了——它太慢了。不仅如此,除了静态小部件(动画)之外的任何内容都很难在模拟器上运行,您会注意到有延迟。

1
真实设备确实是唯一的选择。它只是快了很多。 - Robert Massaioli
每个屏幕尺寸和操作系统版本的组合都拥有一个设备是不可行的。即使这样做了,人们也会问如何在桌子上放置12部手机 :) ...模拟器的主要问题是它只使用一个CPU,即使在8核i7上也是如此。但这仍然是在多个设备上自动化夜间测试的唯一方法(而且由于它只使用一个CPU,您可以运行8个作业 :))。 - gcb

2

实际上这些都是很好的答案,但您有没有考虑将RAM从默认的96MB更改为512MB之类的东西?对我来说很有效 :)


2

将模拟器缩小可以加快加载速度...

emulator -cpu-delay 0 -no-boot-anim -cache ./cache -scale 0.8 -avd avd_name

实际上,我使用“-scale”得到了更糟糕的结果。没有明显的测量结果,但是它确实更糟糕了。 - gcb

2
您需要安装Intel HAXM
  • 打开您的SDK并进行安装

enter image description here

  • 创建一个新的AVD

enter image description here

  • 现在运行它,您应该会得到这个

enter image description here

如果没有,那么您需要安装Accelerated Execution Manager

请参阅如何安装以了解如何执行此操作

enter image description here

查看视频以了解速度有多快


我按照您提供的步骤进行操作,成功地在60秒内使用Intel x86_64虚拟设备启动了模拟器。但是我没有看到任何“HAX正在工作并且模拟器在virt模式下运行得很快”的提示。我的电脑是Windows 7 64位系统,已安装Intel HAXM 1.1.1,并且支持虚拟化技术。 - Lucky

2
我建议您使用Genymotion。它是一个非常快的模拟器(在我的情况下运行时间不到10秒)。
它还安装了Google应用程序,包括Google Play应用程序,可以下载任何应用程序。这对于测试具有地图API的应用程序是一个好功能。

1
在开发我的游戏《弹性世界》时,我遇到了同样的问题。等待模拟器启动需要几分钟时间,游戏最多只能以20 FPS运行。即使在低端安卓设备上,我也可以轻松获得60 FPS。
因此,我转向了VMWare Android机器,并按照这个网站的说明进行操作:http://www.android-x86.org/documents/installhowto/ 现在,相同的游戏循环以250 FPS运行。(以这个速度无法玩游戏,我将游戏限制在最大60 FPS,但是如果覆盖这个限制,它会达到250 FPS)

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