【问题标题】:Why is the Android emulator so slow? How can we speed up the Android emulator? [closed]为什么安卓模拟器这么慢?我们如何加快Android模拟器的速度? [关闭]
【发布时间】:2010-12-05 23:05:13
【问题描述】:

我在 x86 Windows XP 上有一个 2.67 GHz Celeron 处理器和 1.21 GB RAM专业机。

我的理解是 Android 模拟器 应该在这样的机器上很快启动,但对我来说,它没有。我已按照设置 IDE、SDK、JDK 等的所有说明进行操作,并且在快速启动模拟器方面取得了一些成功,但这种情况非常罕见。如果可能的话,我该如何解决这个问题?

即使它启动并加载主屏幕,它也非常缓慢。我在version 3.5(伽利略)和3.4(Ganymede)中尝试了Eclipse IDE

【问题讨论】:

  • 替代的是 Genymotion。 genymotion.com。这要快得多。安装简单。
  • 我发现模拟器在 linux 上运行得更快(顺便说一句,我的意思是 waaaay)。我有一台带双启动的笔记本电脑,在 Windows 上,模拟器需要大约 15 分钟才能启动,Linux 大约需要 30 秒。我不了解 OSX 等其他操作系统,但对我来说感觉就像是 Windows。
  • 据报道,Android Studio 2.0 不仅具有更快的模拟器,而且采用“即时运行”,它允许在几秒钟内将源中的某些更改(例如 XML)部署到目标无需重新构建和重新部署 APK。见android-developers.blogspot.co.uk/2015/11/…
  • 我认为你的内存很小,模拟器运行得更快。
  • 避免混淆 cmets 的一种方法可能是设置一个小通知框,说明问题已超过 2 岁。技术瞬息万变,您希望年龄影响排名,即使问题不应该像在较小的网站上那样关闭/存档。

标签: android performance android-emulator genymotion qemu


【解决方案1】:

您(旧)版本的 Eclipse 中包含的模拟器非常慢。

最近的模拟器比 2010 年更快。更新您的 SDK/IDE。

就我个人而言,我使用真机进行测试。它更快,测试更真实。但是如果你想在很多不同的 Android 版本上测试你的应用,又不想买几部手机,你就不得不时不时地使用模拟器。

【讨论】:

  • vmware 运行时与真机相比性能差异不明显。即使模拟器在模拟 ARM,它也应该更快,即使在相同的系统频率上,我的电脑是 3.6GHz,比 500MHz 的安卓手机慢。
  • @rds - 那么我的 AVD 是否应该模拟 intel 而不是 ARM 以使其加载更快?
  • 不,这不是针对 x86 优化的...它模拟 x86 手机硬件 - 而现在的普通手机很容易胜过相关机器:)
  • 您确实意识到两者都运行相同的模拟器吧? android-sdk\tools\emulator-x86.exe,与 Eclipse 无关,您可能刚刚开始使用 Intel x86 映像和 Intel HAXM。
  • 与他们现在以闪电般的速度前进的日子相比有多慢。
【解决方案2】:

Emulator Startup Options 中描述的选项-cpu-delay <delay> 可以提供帮助。

【讨论】:

  • 链接现在无处可去。这仍然相关吗?
【解决方案3】:

尝试禁用您的防病毒软件。也许它会让模拟器更快一点。

【讨论】:

  • 我发现这也是正确的——我删除了 AVG Free 并安装了 MS Security Essentials,模拟器启动速度明显更快。 YMMV。
  • 它在 linux 系统上仍然非常缓慢......显然通常没有 av
  • 我没有防病毒软件。仍然需要很长时间..
  • 我的模拟器在没有 AV 的 Linux 上太慢了,它只会打开一个黑色窗口并挂起。我的另一台装有 Windows 的计算机不支持 vt-x,所以它不起作用。
  • 尝试重启你的电脑,可能会让模拟器快一点。
【解决方案4】:

我注意到,如果没有连接 Dalvik Debug Monitor Server (DDMS),模拟器的启动速度会更快。因此,如果您从虚拟设备管理器“SDK Setup.exe”启动模拟器并且没有启动 Eclipse,则模拟器运行速度会更快。

如果您从 Eclipse 启动模拟器:DDMS 在那里,所以有时模拟器非常慢,但有时会更快。

【讨论】:

  • @Shekhar: DDMS = Dalvik 调试监控服务器
  • 如果我们通过 Git Bash 的 Cordova 命令行运行模拟器......无论如何如何禁用 Dalvik Debug Monivor Server?
【解决方案5】:

模拟器启动很慢。好处是您只需要启动模拟器一次。如果模拟器已经在运行并且您再次运行您的应用程序,则模拟器会相对较快地重新安装应用程序。当然,如果你想知道它在手机上跑得有多快,最好在真机上测试一下。

【讨论】:

  • 如果需要几个小时,可能还有其他问题。我只需要几分钟。
  • 您的硬件配置和操作系统是什么?
  • @Junior Mayhe:我使用 Windows、Mac 和 Linux 为 Android 编程。我现在最常使用 Mac。我使用的计算机有 2 到 4 GB 的 RAM 和相当现代的 2 到 3 ghz 处理器。在所有情况下,第一次启动模拟器似乎需要几分钟,但重新安装应用程序相当快。
  • @user286101:在我的旧笔记本电脑(1.6Ghz 双核,1GB RAM)中,将新的 apk 加载到已经运行的模拟器中不超过 10 秒,唯一的问题是我经常忘记离开模拟器正在运行,所以我不得不经历缓慢的重启过程(这需要 3-5 分钟)。
  • @LieRyan “应该不会超过 10 秒”,遗憾的是,这大约是当今机器中类似大小的 C++ 项目的时间。
【解决方案6】:

为此添加更多信息。

我最近将我的 Ubuntu 安装升级到 Ubuntu 10.04 LTS (Lucid Lynx),这反过来又将我的 Java 版本更新为:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

现在模拟器(虽然需要一段时间才能启动)似乎比以前运行得更快了。

也许值得人们升级他们的 JVM。

【讨论】:

  • 在同一台机器上,64 位 java 比 32 位 java 快(~2 倍)。
  • 我不明白为什么模拟器速度应该取决于 Java 版本。模拟器不是用 Java 编写的,也不能在 JVM 上运行。
  • 我使用的是 64 位 Oracle Java 1.6.0_26,而我的模拟器比乌龟还慢……这很痛苦。 Core2Quad,64 位 Java+Ubuntu 11.10,8GB 内存。
  • 如果它不是用 Java 编写的,也不能在 JVM 上运行,那为什么它需要 Java(也不需要任何版本的 Java!)
【解决方案7】:

您可以使用以下命令创建 emulator.bat 来启动模拟器。它会启动得更快。

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

或者在 Unix(Mac 或 Linux 版本)上:

emulator -cpu-delay 0 -no-boot-anim @<avd name>

【讨论】:

  • 添加 -no-boot-anim 将启动时间减少了大约 38%。谢谢!
  • (Android Studio) 选择 运行 > 编辑配置...。在运行/调试配置对话框的左侧面板中,选择或创建配置。在目标设备选项下,选择 AVD。在 Emulator 选项卡中,在 Additional command line options 字段中输入-no-boot-anim
【解决方案8】:

我遇到了间歇性缓慢的仿真器 (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 和模拟器都是内存占用者。

【讨论】:

    【解决方案9】:

    我注意到我的模拟器(Eclipse 插件)被我的Nvidia 显卡抗锯齿设置显着减慢。从图形菜单中删除 2x 抗锯齿并将其更改为应用程序控制使其更具响应性。它仍然很慢,但比以前好。

    【讨论】:

      【解决方案10】:

      Android 模拟器版本 9 具有新的“快照”功能。可以save the state of the emulator(制作模拟器镜像),在启动模拟器时避免开机。

      【讨论】:

        【解决方案11】:

        更新

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

        点击模拟器编辑按钮,然后点击显示高级设置。然后启用Quick Boot,如下图所示。

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

        我还增加了Device RAM Size1024,这导致了一个非常快的模拟器。

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

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

        从快照启动模拟器。

        为了加速你的模拟器,你可以参考Speed up your Android Emulator!

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

        【讨论】:

        • 当您更新现有设备时,在第一次启动时从快照中擦除用户数据
        • 我把 AVD 设置成这样,但是当我重新启动 AVD 时似乎仍然很慢,为什么?
        • @Peter Ehrlich :只需转到 Window > Android SDK and AVD Manager 并从列表中选择要启动的 AVD,然后单击 开始 右窗格中的按钮。它会打开你想要的。
        • 设置 1024 时出现“分配内存失败”。它还在配置窗口底部显示警告:“在 Windows 上,模拟大于 768M 的 RAM 可能会失败,具体取决于...”我尝试将其设置为 770,然后它工作。将其设置为 800 失败。
        • @ Msmit1993:您可以使用基于 Intel x86 的仿真器和 HAX 工具。相信我,您会惊讶于模拟器比您的实际设备更快。
        【解决方案12】:

        在 3.4 GHz 四核 6 GB RAM、Windows 7 上,模拟器运行缓慢! 我通过模拟器下载了Launcher-Pro.apk,安装并设置为默认启动器。它加倍我的仿真速度!屏幕加载更流畅,更快。 2.1或2.2好像没有下载,只能在2.0下载。

        【讨论】:

          【解决方案13】:

          经过一段时间的开发,我的模拟器变得非常缓慢。我选择了擦除用户数据,效果好多了。我猜加载您部署的每个 APK 文件需要时间。

          【讨论】:

            【解决方案14】:

            试试Android x86。它比 Google Android 模拟器快得多。请按以下步骤操作:

            1. 安装VirtualBox
            2. 下载您需要的ISO file
            3. 将虚拟机创建为 Linux 2.6/Other Linux、512 MB RAM、HD 2 GB。网络:PCnet-Fast III,附加到NAT。您也可以使用桥接适配器,但您的环境中需要有 DHCP 服务器。
            4. 在模拟器上安装 Android x86,运行它。
            5. Alt+F1,输入netcfg,记住IP地址,按Alt+F7 .
            6. 在您的 Windows XP 系统上运行 cmd,将目录更改为您的 Android 工具目录,输入 adb connect &lt;virtual_machine_IP&gt;
            7. 启动Eclipse,打开ADT插件,找到设备,尽情享受吧!

            【讨论】:

            • 所以我连接了。如何让屏幕垂直?我也没有在任何地方看到电话硬件按钮。
            • 只是提醒大家,如果您喜欢在模拟器中使用鼠标,则需要在设备菜单中启用鼠标集成!
            • 请注意,如果您使用的是特定于 ARM 的任何东西(例如 Android 的 Mono),它将无法在 Android x86 上运行。
            • 对我来说,netcfg 显示 lo 127.0.0.1 255.0.0.0 0x00000049 这里是 127.0.0.1 IP,我应该在 adb 命令中提及吗?它显示“无法连接到 127.0.0.1:5555”请帮助。
            【解决方案15】:

            尝试缩小模拟器,它会让它更快一点,即使它不是真的感觉更快。

            【讨论】:

              【解决方案16】:

              当前(2011 年 5 月)版本的模拟器速度很慢,尤其是 Android 3.0 (Honeycomb) 主要是因为模拟器不支持硬件 GL——这意味着 GL 代码被翻译成软件(实际上是 ARM 软件),然后在QEMU 的软件中进行仿真。这太慢了。他们正在解决这个问题并部分解决,但没有任何发布质量。

              观看视频 Google I/O 2011: Android Development Tools 看看它的实际效果——跳到大约 44 分钟。

              【讨论】:

              • 这是否意味着如果我们购买最新的带有ARM处理器的Raspberry Pi,我们将能够使用Android ARM模拟器而不会在x86 / x86_64上模拟ARM的速度慢?最新的 Raspberry Pi CPU 和 GPU 是否足以拥有快速的模拟器? Google 是否提供 ARM 版本的 Android sdk-tools 以使用 ARM 模拟器?
              【解决方案17】:

              我在 Mac 上遇到过类似问题。我做了什么;

              • 1) 在模拟器上,设置-显示-> 禁用屏幕方向
              • 2) 在 Eclipse 上,模拟器启动选项 -> -cpu-延迟 100

              这些对降低 CPU 使用率有一些影响(不是 40-60% 左右),而不是最终解决方案。 但同样,CPU 使用率不再 > 100%!

              【讨论】:

                【解决方案18】:

                我只使用了默认的 Android 3.1,它非常慢,但因为我意识到我的代码与 Android 2.3.3 兼容,所以我切换到了它。它快了大约 50%,而且模拟器看起来更像我的手机,并且有一个永久显示的键盘,因此更易于使用。

                【讨论】:

                  【解决方案19】:

                  模拟器在空闲时似乎会减慢速度。通过快速将鼠标悬停在侧面的键上并观察点亮响应,这一点变得明显。作为一种解决方法,我在启动模拟器时将-icount auto 传递给QEMU。您可以制作一个名为 my_avd.bat 的批处理文件来为您完成:

                  模拟器 @my_avd -no-boot-anim -qemu -icount auto
                  • @my_avd -- 启动一个名为“my_avd”的虚拟设备
                  • -no-boot-anim -- 禁用动画以加快启动速度
                  • -qemu args... -- 将参数传递给 qemu
                  • -icount [N|auto] -- 启用虚拟指令计数器,每条指令有 2^N 个时钟滴答

                  这让动画变得非常流畅并加速了adb install 十倍。

                  【讨论】:

                  • 为什么 icount auto 让它更快?
                  • 谢谢。 -no-boot-anim 似乎确实可以更快地启动 android!
                  • 令人印象深刻....特别是我被'adb'的传输速度非常低。现在它真的很快,就像 x86 图像一样快。谢谢
                  • 我正在使用 Eclipse。你知道如何在我的环境中设置这些选项吗?
                  • @MSS 我不知道...自从我使用 Android 模拟器已经好几年了。对不起!
                  【解决方案20】:

                  较旧的 Android 版本运行速度要快得多。当我使用上网本时,我使用的是 Android 1.5(API 级别 3)。但是有几个缺点——您的应用程序需要支持旧平台(显然),而 ndk-gdb 需要运行 Android 2.2(API 级别 8)或更高版本。但无论如何,定期针对旧平台测试应用程序是个好主意。

                  【讨论】:

                    【解决方案21】:

                    您需要更多内存。

                    这就是我这么说的原因:

                    我在 Windows 上使用 VirtualBox 作为来宾运行 Ubuntu 10.10。我在 VM 上安装了 Eclipse 和 Android SDK。我的物理机有 4 GB 内存,但当我第一次配置 Ubuntu 虚拟机时,我只给了它 1 GB。模拟器启动大约需要 15 分钟。然后,我更改了配置,为 VM 提供了 2 GB 空间,模拟器在不到一分钟的时间内运行。

                    【讨论】:

                    • 我在 i5 中有 16Gb 1333 Ram 和悲伤的磁盘,它慢得要命.. 问题不在 ram 中:-(
                    • 如果你给它太少,问题是内存。但收益递减。 4gb 和 5gb 之间可能没有太大区别。
                    • 如果我们按照windows默认设置进行虚拟内存分配@Corey怎么样?
                    【解决方案22】:

                    您可以在 Google I/O 2011: Android Development Tools 谈话中查看模拟器问题,开始时间为 0:40:20。

                    模拟器运行缓慢,因为完整的 Android 环境在模拟硬件上运行,并且指令也在模拟 ARM 处理器上执行。

                    主要的瓶颈是渲染,因为它没有在任何专用硬件上运行,但实际上是通过软件渲染来执行的。降低屏幕尺寸将大大提高模拟器性能。获得更多/更快的内存并没有帮助。

                    他们当时提到,他们正在开发一个接口,允许模拟器通过主机硬件传输某些指令,因此最终,您将能够利用模拟器的性能和桌面硬件。

                    【讨论】:

                      【解决方案23】:

                      我尝试从 Eclipse(Indigo 和 Android 1.5,无快照)启动模拟器,但 45 分钟后我停止了它,因为什么也没发生。

                      统计数据:Phenom Quad @2.6 MHz 和 4 GB DDR2 Corsair Dominator @800 MHz。 AVD 位于 SSD 驱动器上,模拟器位于 7200 RPM HDD 上。

                      我使用 -no-boot-anim 选项手动启动了模拟器,并在 30 秒内加载。 :)

                      在 CMD 中,导航到 emulator.exe 文件所在的文件夹并键入

                      emulator.exe @<YourAVDFromEclipse> -no-boot-anim
                      

                      emulator.exe 文件位于 Tools 下的 Android SDK 文件夹中。

                      在 Windows 中,您可以在 C:\Users\&lt;NAME&gt;\.android\avd 下找到 Android Virtual Device(AVD)。

                      项目从 Eclipse 内部运行,以您启动的 AVD 为目标,显示效果很好:D

                      【讨论】:

                      • 我很高兴知道为什么我被否决了。这在第二台开发机器上对我有用(一台带有 core2 和 3GB RAM 和 5200 rpm 硬盘的笔记本电脑)
                      【解决方案24】:

                      AVD Manager中选择VD并单击编辑,将分辨率设置为小,因为您可以阅读VD上的文字。

                      我使用 800x600 像素,RAM 设置为 512 MB,它的工作原理就像一个魅力,无需大量使用 CPU 时间。

                      【讨论】:

                        【解决方案25】:

                        从 Android SDK 工具的第 17 版开始,模拟器可以使用图形加速和 CPU 提供的扩展来提高效率。先决条件、完整配置和用户说明位于:

                        http://developer.android.com/guide/developing/devices/emulator.html#acceleration

                        要启用GPU 加速,请从命令行运行模拟器或将“-gpu on”添加到 AVD 配置中的其他模拟器命令行选项。

                        emulator -avd <avd_name> -gpu on
                        

                        要使用 CPU 机器扩展,您必须安装驱动程序(小心,因为它可能与现有的 VirtualBoxVMware 驱动程序冲突)。安装后,只要您使用基于 x86 的 AVD,它就会自动使用。

                        【讨论】:

                        • 这是我自己发现的。让模拟器运行起来几乎和真实设备一样好!
                        • 请注意,要使用 GPU 加速,您必须使用 Android 4.0 或更高版本。此外,使用当前工具,您不能同时使用快照和 GPU 加速,您必须做出选择(我个人更喜欢 GPU 加速和慢速模拟器启动)。
                        【解决方案26】:

                        Android SDK 版本。 17 支持使用 AMD 和 Intel 虚拟化技术的虚拟机加速。

                        这个功能可以大大提升模拟器的性能!

                        有关详细信息,请参阅 Android 模拟器文档中的以下部分:Configuring Virtual Machine Acceleration

                        不要忘记为您的操作系统安装合适的驱动程序:

                        安装驱动程序并下载 Android X86 系统映像(如文档中所述)后,您应该能够使用 x86 映像创建新的 AVD:

                        例如:

                        • 目标:英特尔凌动 x86 系统映像 - API 级别 10
                        • CPU/ABI:英特尔凌动 (x86)

                        【讨论】:

                        • 很遗憾,目前 AMD-V 仅在 linux(SDK rev 17)上受支持。
                        • 英特尔 HAXM 让我的 x86 AVD 比以前快了 200%~300%!太好了!
                        【解决方案27】:

                        Android ADT 18 现在包含一个(测试版)启用 GPU 的选项(只需从您的 AVD 属性启用 GPU 加速)。它产生了巨大的差异,甚至 ICS 现在也感觉相对舒适。

                        【讨论】:

                          【解决方案28】:

                          我注意到模拟器会在一段时间内变慢。因此,可以删除速度非常慢的模拟器,并在 AVD 管理器的帮助下创建一个新的模拟器。我已经尝试了几次,效果很好。

                          【讨论】:

                            【解决方案29】:

                            英特尔于 2012 年 5 月 15 日发布了recommended installation instructions for the ICS emulator。这对我有用。模拟器现在速度很快,用户界面也很流畅。

                            前半部分的说明已经足够详细,因此我假设您能够使用 Android SDK 管理器以及英特尔 HAXM 安装英特尔 x86 Atom 系统映像。

                            现在确保一切都已设置好,以便您可以享受高性能模拟器:

                            然后开始吧:

                            sudo kextload -b com.intel.kext.intelhaxm (mac)
                            

                            如果 HAXM 工作正常,您可能会在启动模拟器时看到此消息:

                            HAX 正在工作,模拟器在快速虚拟模式下运行

                            否则,您可能会看到此错误:

                            HAX 不工作,模拟器在仿真模式下运行 模拟器:
                            hax模块打开失败

                            • 使用 GPU 仿真。 在撰写本文时,您无法在使用 GPU 仿真时使用快照选项。确保 GPU 模拟设置为“是”。

                            • 将设备内存设置为 1024 MB 或更多,但不要超过 Intel HAXM 设置。我每台设备使用 1024 MB,HAXM 使用 2048。

                            保存后请务必仔细检查设置!模拟器对允许您设置的内容非常挑剔,它会在不告诉您的情况下恢复配置。

                            通过这些设置,软件键盘不再出现,屏幕上的返回、菜单和最近键也不再出现。这似乎是当前 ICS Intel x86 系统映像的限制。您需要使用the keyboard shortcuts

                            在 Mac OS 上,您需要按住 fn + control 以使 F1 - F12 键工作.可以使用 control + 箭头键执行上/下/左/右翻页。

                            【讨论】:

                            • 使用带有 Intel HAXM 的虚拟机时要小心。显然,如果系统内存耗尽,虚拟环境可能会损坏。
                            • android-dev.ro/web/guest/home 这是在 Eclipse 中设置 HAXM x86 AVD 的另一个很好的分步说明。此外,它还解释了如何设置 Google API。
                            • 不确定这是否是我做错了什么,但我密切关注指南并得到:“HAX 正在工作并且模拟器在快速 virt 模式下运行”,就在设备启动之前,但是......它实际上加载速度甚至比原始 arm 版本还要慢。我在 Mac 上,CPU 支持 VT。
                            • 这是正确答案。我安装了 Intel x86 处理器并启用了 GPU。模拟器对这些设置非常敏感和流畅。最后 !如果您需要帮助在 windows 或 mac 上设置它,请告诉我。再见所有
                            • 感谢您,在 Windows 7 Pro、intel core i7 3770 上进行了测试,并且可以正常工作。在 windows 上只需安装 Intel Hardware Accelerated Execution Manager (HAXM),它会自动启动。只需使用 Intel Atom x86 创建一个 AVD 并确保选择“使用主机 GPU”
                            【解决方案30】:

                            目前最快的模拟器是 Android SDK 附带的内置 x86 模拟器。您可以在创建虚拟机的 AVD 管理器中找到它们。只需选择其中任何一个,然后选择 CPU 类型(选择 x86 以获得最佳性能)。它会和你的机器一样快。

                            Android 4.0 和 4.0.3 的最新此类机器可以在 Giving your Android Emulator a Boost: Building Android ICS with Goldfish & x86 KVM support on EC2 - TestObject 找到。

                            注意:这仅用于开发目的。要测试性能,您仍然需要使用真实设备或在带有 ARM CPU 的模拟器上进行测试。

                            【讨论】:

                              猜你喜欢
                              • 2013-05-03
                              • 1970-01-01
                              • 2011-10-21
                              • 2011-09-29
                              • 2011-04-24
                              • 1970-01-01
                              • 1970-01-01
                              • 2012-04-29
                              相关资源
                              最近更新 更多