Android模拟器有点慢。对于某些设备,例如摩托罗拉 Droid 和 Nexus One,应用程序在实际设备中的运行速度比模拟器快。这是测试游戏和视觉效果时的问题。
如何让模拟器运行得尽可能快?我一直在玩弄它的参数,但还没有找到显示明显改进的配置。
约快 50%
视窗:
安装“Intel x86 Emulator Accelerator (HAXM)”=> SDK-Manager/Extras
安装“Intel x86 Atom 系统映像”=> SDK-Manager/Android 2.3.3
转到 Android SDK 根文件夹并导航到 extras\intel\Hardware_Accelerated_Execution_Manager。执行文件 IntelHaxm.exe 进行安装。 (在 Android Studio 中,您可以导航到:设置 -> Android SDK -> SDK 工具 -> Intel x86 Emulator Accelerator(HAXM 安装程序))
使用“Intel atom x86”CPU/ABI 创建 AVD
运行模拟器并检查 HAXM 正在运行的控制台(打开命令提示符窗口并执行命令:sc query intelhaxm)
https://i.stack.imgur.com/neaIR.png
也不要忘记安装这个
https://i.stack.imgur.com/yEDOi.png
PS 在 AVD 创建期间添加仿真内存:Hardware/New/Device ram size/set up value 512 or more
Linux:
安装KVM:打开GOOGLE,写“kvm安装”
使用“Intel atom x86”CPU/ABI 创建 AVD
从命令行运行: emulator -avd avd_name -qemu -m 512 -enable-kvm
或从 Eclipse 运行:运行/运行配置/选项卡“目标”-> 检查 Intel x86 AVD 并在“附加仿真器命令行选项”窗口中添加:-qemu -m 512 -enable-kvm(单击运行)
https://i.stack.imgur.com/6ryFb.png
操作系统-X:
在 Android SDK Manager 中,安装 Intel x86 Atom System Image
在 Android SDK Manager 中,安装 Intel x86 Emulator Accelerator (HAXM)
在 finder 中,转到 Intel Emulator Accelerator 的安装位置并安装 IntelHAXM(打开 dmg 并运行安装)。您可以通过将鼠标放在 SDK 管理器中的 Emulator Accelerator 条目上来找到该位置。
创建或更新 AVD 并将 Intel Atom x86 指定为 CPU。
PS:勾选这个工具,即使trial也很方便
更新:现在英特尔 x86 映像可用,最好的答案是上面的热情。
正如 CommonsWare 正确指出的那样,模拟器很慢,因为它模拟 ARM CPU,这需要转换为 Intel 操作码。这种虚拟化会消耗 CPU。
为了让模拟器更快,你必须给它更多的 CPU。如果可以,从快速 CPU 或升级开始。
然后,给模拟器更多的 CPU:
禁用超线程 - 由于模拟器似乎没有使用多个内核,因此超线程实际上减少了模拟器将获得的总体 CPU 时间。禁用 HT 会降低利用多个 CPU 的应用程序的速度。必须在 BIOS 中禁用超线程。让模拟器在 CPU 0 以外的 CPU 上运行 - 这比关闭 HT 的影响要小得多,但它对一些人有帮助。在 Windows 上,您可以指定进程将在哪个 CPU 上运行。许多应用程序会占用 CPU 0,默认情况下模拟器在 CPU 0 上运行。我将模拟器更改为在最后一个上运行。请注意,在 OS X 上,您无法设置关联(请参阅:https://superuser.com/questions/149312/how-to-set-processor-affinity-on-a-mac)。
有了这两个变化,我看到了大约 50% 的改进。
在 Windows 7 上设置处理器关联:
打开任务管理器单击查看所有进程(以管理员身份运行,否则无法设置处理器关联)右键单击 emulator.exe 并选择设置关联...在设置关联对话框中,仅选择最后一个 CPU
注意:当您以这种方式更改亲和力时,它只会在进程的生命周期内更改。下一次开始,你必须再做一次。
https://i.stack.imgur.com/oD7Ch.png
我想建议给 Genymotion 一个旋转。它在 Oracle 的 VirtualBox 中运行,在中等系统上可以达到 60 fps。
这是我的一个研讨会的屏幕截图,在低端 2012 型号 MacBook Air 上运行:
https://i.stack.imgur.com/N1JhZ.jpg
如果您看不懂文字,那是 Nexus 7 模拟器,运行速度为 56.6 fps。额外的(大!)奖励是 Google Play 和 Google Play 服务与虚拟机一起打包。
(演示动画 can be found here 的来源。)
如果您使用 API 15 v3 或更新版本以及 SDK Tools v17+,请启用 GPU 硬件加速(除了 Intel 的 HAXM)。模拟器的图形加速利用您的开发计算机的图形硬件,特别是它的图形处理单元 (GPU),使屏幕绘制速度更快。这显着提高了速度。
要在您的模拟器上启用默认启用的图形加速:创建 AVD 时,在 Hardware 部分中,单击 New,选择 GPU emulation 并将值设置为 Yes。
要仅在运行时启用加速:在启动模拟器时使用 -gpu 标志,如下所示:
emulator -avd <avd_name> -gpu on
来源:Google's Using the Emulator tutorial。
编辑 虽然使用 Intel 图像可以获得一些性能提升,但使用 Genymotion 获得的性能要好得多。请参阅Paul Lammertsma's answer。
上一个答案
借助 ADT rev 17,模拟器支持在 Windows 和 Mac OS X 上以虚拟化模式运行 x86 系统映像。这对性能有显着影响。
ADT rev 17 注释:http://android-developers.blogspot.jp/2012/03/updated-sdk-tools-and-adt-revision-17.html
配置虚拟机加速:http://developer.android.com/guide/developing/devices/emulator.html#accel-vm
我最近从具有 3gb ram 的 core 2 @ 2.5 切换到具有 8gb ram 的 i7 @ 1.73(两个系统都运行 Ubuntu 10.10),并且模拟器现在运行速度至少是原来的两倍。投入更多的硬件肯定会有所帮助。
只是想说,在我安装了 Intel HAXM 加速器并使用 Intel Atom 映像后,仿真器的运行速度似乎快了 50 倍。差别太大了,快来看看吧!
http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html
我注意到模拟器默认只有核心 0,大多数 Windows 应用程序将默认为“任何”核心。另外,如果你把它放在另一个核心上(比如最后一个核心),它可能会让模拟器发疯。如果可以,您可以尝试将高 CPU 使用率的应用程序放在其他 CPU 内核上以提高速度。
在硬件方面,获得适用于单核应用程序的最快 CPU。多于 2 个内核在仿真器性能方面可能不会有太大差异。
Eclipse + Android 模拟器一起吃掉了大量的内存。我会推荐至少 3 GB 的 RAM,因为我使用了一个具有 2 GB RAM 的系统,并且它变慢了,因为系统用完了 RAM 并开始使用页面文件。
我觉得最好的 CPU 可能会有一个高时钟(顺便说一句,仅使用时钟作为同系列 CPU 的衡量标准),很好地处理非 SIMD 操作,并具有涡轮增压机制。基于 Java 的基准测试并不多,但总体上会寻找压缩和办公等应用程序基准。不要看游戏或媒体,因为它们受 SIMD 的影响很大。如果你找到一个 Java 的,那就更好了。
在今年的谷歌 I/O(2011)上,谷歌展示了一个更快的模拟器。问题不在于 ARM 和 x86 之间的字节码,而在于 QEMU 执行的软件渲染。他们绕过 QEMU 的渲染并将渲染直接发送到我相信的 X 服务器。他们展示了一款具有非常好的性能和fps的汽车游戏。
我想知道什么时候可以为开发人员提供...
如果您没有好的显卡(比如我),请选择低分辨率模拟器(例如:Nexus S)
我认为是因为 clr 虚拟机直接使用 cpu 没有代码操作码翻译。它可能是针对 clr 应用程序的优化,也可能是在 INTEL 处理器上启动的 windows mobile/window phone 7。 Android平台基于linux,理论上可以在i686环境下的虚拟机上启动android。在这种情况下,vmware 等虚拟机可以直接执行一些操作码。但是只有在 Java 上编写时才允许使用此选项。因为Java在执行之前解释它们的字节码或预编译它。见:http://www.taranfx.com/how-to-run-google-android-in-virtualbox-vmware-on-netbooks
谢谢@zest!像魅力一样工作。一些注意事项:需要应用英特尔的 HAXM 修补程序来处理内核恐慌问题:http://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager 另外,请注意,如果您有多个 abi,由于最新版本的错误,您需要卸载一个Android API (r19):https://code.google.com/p/android/issues/detail?id=66740(在这种情况下删除 armeabi-v7a,因为您需要 x86 abi)。除了我花了 45 分钟解决这些问题之外,就模拟器性能的提高而言,这是一次非常有益的练习。
您也可以尝试 Visual Studio Android Emulator,它也可以作为独立的模拟器安装(您不需要 Visual Studio)。请注意,它只能安装在 Windows Pro 或更高版本的系统上。
启用此选项对我有用。
AVD 管理器 -> 选择设备并单击编辑 -> 启用选项“使用主机 GPU”
https://i.stack.imgur.com/2JQH4.png
我一直在使用 Intel(86) CPU/ABI。我使用 ARM(armeabi-v7a) 创建了另一个模拟器,我发现速度有了很大的提高。我正在使用平台 4.1.2 API 级别 16
将您当前的 Android Studio 更新为 Android Studio 2.0 并更新系统映像。
Android Studio 2.0 模拟器的运行速度比 Android 之前的模拟器快约 3 倍,并且通过 ADB 增强功能,您现在可以将应用程序和数据推送到模拟器的速度比物理设备快 10 倍。与物理设备一样,官方的 Android 模拟器也内置了 Google Play 服务,因此您可以测试更多的 API 功能。最后,新的模拟器具有丰富的新功能来管理通话、电池、网络、GPS 等。
/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg
。^(?!.*(nativeGetEnabledTags)).*$
作为文本过滤器。我已将此报告为 bug issue。另外,我认为您必须正确关闭您的模拟器设备(按住电源按钮,然后选择 Power off)以避免下次启动时出错(我可以关闭 ARM 模拟器,但对于英特尔仿真器,刚刚关闭 似乎会产生问题)。