ChatGPT解决这个技术问题 Extra ChatGPT

让安卓模拟器跑得更快

Android模拟器有点慢。对于某些设备,例如摩托罗拉 Droid 和 Nexus One,应用程序在实际设备中的运行速度比模拟器快。这是测试游戏和视觉效果时的问题。

如何让模拟器运行得尽可能快?我一直在玩弄它的参数,但还没有找到显示明显改进的配置。

我所有的应用程序在设备上运行得更快
这很有趣,因为 iPhone 模拟器正好相反。应用程序在设备上运行速度较慢。在大多数情况下,我更喜欢速度较慢的模拟器,因为它会刺激您改进您的应用程序,但有时您只想看到它像在真实设备中一样工作。
使用 VirtualBox 可以使其运行得更快,也就是正常运行 - 请参阅 stackoverflow.com/a/6058689/40961
iOS 和 Windows Mobile 使用模拟器,而 Android 使用模拟器。模拟器使用主机库重新实现所有移动库和 API,因此速度很快。模拟器使用与真实设备上相同的库,因此速度较慢。在安卓方面,如果使用安卓虚拟机,速度会非常快。我们在此处提供免费 vm:leapdroid.com
... 6 年后有多疯狂,即使使用 HAXM 和 x86 系统映像以及规范的开发环境,Android 模拟器仍然像糖蜜一样慢?

I
Ibrahim.H

Official web page

约快 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

PS For Fedorafor Ubuntu

操作系统-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也很方便


这也适用于 OSX。从 SDK 管理器下载软件包后,您需要安装 /extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg
带有“使用主机 GPU”的 Windows 指令给了我一个超快的模拟器! (我有一个受支持的 Intel 处理器和一个 nVidia 显卡。)动画非常流畅(大部分时间;在其他时候,很少有抖动)!请注意,您必须重新启动 Eclipse 才能让 AVD 管理器选择 Intel Atom (x86) CPU 选项。提示:不要分配太多 RAM。使用 1GB RAM,模拟器无法启动(使用 GPU),但使用 512MB RAM,它运行平稳并且启动非常快(再次使用 GPU)。
我发现 LogCat 收到大量跟踪警告的垃圾邮件。要过滤掉它们,请使用 ^(?!.*(nativeGetEnabledTags)).*$ 作为文本过滤器。我已将此报告为 bug issue。另外,我认为您必须正确关闭您的模拟器设备(按住电源按钮,然后选择 Power off)以避免下次启动时出错(我可以关闭 ARM 模拟器,但对于英特尔仿真器,刚刚关闭 似乎会产生问题)。
如果可以的话,我会给你+100。在 Windows 8 上运行,性能大幅提升!
我必须首先通过控制面板下的程序和功能禁用 Hyper V 技术才能使其正常工作。
C
Community

更新:现在英特尔 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


当您禁用超线程时,CPU 百分比翻了一番,因为您将逻辑处理器的数量减半。
它就像魅力一样,但是......你知道如何在 Ubuntu 11.10 上做到这一点吗?
@Timothy003 是的,绝对正确。并将模拟器将使用的 CPU 加倍。
您只会在任务管理器显示的数字中看到翻倍;不是在现实中。如果您没有运行足够的软件来生成足够的工作以在 100% CPU 下拥有相当于至少 4 个线程,那么少数使用大量 CPU 的应用程序仍将有效地获得几乎整个内核,而不是您天真的假设的半个内核任务管理器显示的意思。
确认@Dan Neely 所说的:我有一个单核应用程序,它只会消耗 100% 的 cpu。当我有 HT 时它显示大约 25%,没有它显示大约 50%,但实际上计算它必须同时计算的内容。所以没有区别(至少在桑迪桥上)。
P
Paul Lammertsma

我想建议给 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 的来源。)


J
John Lehmann

如果您使用 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


C
Community

编辑 虽然使用 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


T
TripleG

我最近从具有 3gb ram 的 core 2 @ 2.5 切换到具有 8gb ram 的 i7 @ 1.73(两个系统都运行 Ubuntu 10.10),并且模拟器现在运行速度至少是原来的两倍。投入更多的硬件肯定会有所帮助。


这并不是一个真正的解决方案:它可能使模拟器每次具有更高的吞吐量,但实际上不会使其运行得更快。
s
sonicboom

只是想说,在我安装了 Intel HAXM 加速器并使用 Intel Atom 映像后,仿真器的运行速度似乎快了 50 倍。差别太大了,快来看看吧!

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html


J
Joe P

我注意到模拟器默认只有核心 0,大多数 Windows 应用程序将默认为“任何”核心。另外,如果你把它放在另一个核心上(比如最后一个核心),它可能会让模拟器发疯。如果可以,您可以尝试将高 CPU 使用率的应用程序放在其他 CPU 内核上以提高速度。

在硬件方面,获得适用于单核应用程序的最快 CPU。多于 2 个内核在仿真器性能方面可能不会有太大差异。

Eclipse + Android 模拟器一起吃掉了大量的内存。我会推荐至少 3 GB 的 RAM,因为我使用了一个具有 2 GB RAM 的系统,并且它变慢了,因为系统用完了 RAM 并开始使用页面文件。

我觉得最好的 CPU 可能会有一个高时钟(顺便说一句,仅使用时钟作为同系列 CPU 的衡量标准),很好地处理非 SIMD 操作,并具有涡轮增压机制。基于 Java 的基准测试并不多,但总体上会寻找压缩和办公等应用程序基准。不要看游戏或媒体,因为它们受 SIMD 的影响很大。如果你找到一个 Java 的,那就更好了。


C
Cesar

在今年的谷歌 I/O(2011)上,谷歌展示了一个更快的模拟器。问题不在于 ARM 和 x86 之间的字节码,而在于 QEMU 执行的软件渲染。他们绕过 QEMU 的渲染并将渲染直接发送到我相信的 X 服务器。他们展示了一款具有非常好的性能和fps的汽车游戏。

我想知道什么时候可以为开发人员提供...


有这个模拟器的消息吗?它叫什么名字?
我没有任何消息。在过去一年左右的时间里,我没有跟进 Android 模拟器的更新。
K
Koc

谷歌最近宣布了一个新的安卓模拟器。它比旧的更快更好。您可以找到有关它的更多信息here


D
Dan Alboteanu

如果您没有好的显卡(比如我),请选择低分辨率模拟器(例如:Nexus S)


a
assad

我认为是因为 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


h
horcle_buzz

谢谢@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 分钟解决这些问题之外,就模拟器性能的提高而言,这是一次非常有益的练习。


D
David Dostal

您也可以尝试 Visual Studio Android Emulator,它也可以作为独立的模拟器安装(您不需要 Visual Studio)。请注意,它只能安装在 Windows Pro 或更高版本的系统上。


P
Prilaga

使用 Genymotion 而不是模拟器。 Genymotion 具有更好的性能https://www.genymotion.com


a
anandhu

启用此选项对我有用。

AVD 管理器 -> 选择设备并单击编辑 -> 启用选项“使用主机 GPU”

https://i.stack.imgur.com/2JQH4.png


s
strange_developer

我一直在使用 Intel(86) CPU/ABI。我使用 ARM(armeabi-v7a) 创建了另一个模拟器,我发现速度有了很大的提高。我正在使用平台 4.1.2 API 级别 16


U
Umer

将您当前的 Android Studio 更新为 Android Studio 2.0 并更新系统映像。

Android Studio 2.0 模拟器的运行速度比 Android 之前的模拟器快约 3 倍,并且通过 ADB 增强功能,您现在可以将应用程序和数据推送到模拟器的速度比物理设备快 10 倍。与物理设备一样,官方的 Android 模拟器也内置了 Google Play 服务,因此您可以测试更多的 API 功能。最后,新的模拟器具有丰富的新功能来管理通话、电池、网络、GPS 等。