问题 Android模拟器基于QEMU。我可以使用KVM吗?


我的笔记本电脑支持硬件虚拟化(AMD SVM),我知道:

  • QEMU可以通过KVM利用硬件虚拟化;
  • Android模拟器非常基于QEMU

自然的问题如下:我可以将两者(Android + KVM)结合起来,以提高模拟器的性能吗?


6291
2018-04-08 10:02


起源

有人写了一篇关于这个确切主题的论文: docs.google.com/... - Konklone
由于这是一个非常古老的问题(2010),当时正确答案是@ RichieHindle - 你不能。不过,最近,谷歌已经发布了可以硬件加速的仿真器和特殊AVD(基于Intel)的更新版本。 - Felix
@Konklone除了它是ARM上的KVM,而不是x86。 :) - Isa A
@Felix:......关于你对13年1月14日的评论...仅限英特尔硬件。如果你是AMD,显然,你可以下地狱。 Google搜索的相关错误字符串...“模拟器:警告:主机CPU缺少x86仿真所需的以下功能:SSSE3”。 SDK中的qemus在没有此支持的情况下失败(尽管能够在软件中捕获和实现)。看到 问题33483 这是2012年12月推定可修复的,然后(错误地)在2014年12月过时关闭。 - Eric Towers


答案:


是的你可以。只需在Android SDK中下载相应的Intel atom CPU软件包,并让您的AVD使用Intel atom CPU架构。 android模拟器甚至可以使用主机gpu。这是一个如何做到这一点的链接:

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


8
2018-01-13 11:22





你可以尝试使用AndroidVM - http://androvm.org/blog/ ...在我的测试中,您也可以使用硬件OpenGL和旋转支持(这有点令人费解,但所有内容都在AndroidVM页面上进行了解释)。

根据我的经验,这比Android SDK模拟器好几英里,至少在Windows和Mac上。

对于Linux,您应该能够使用VirtualBox for Linux来使用AndroidVM。由于它主要是OVA文件,因此您应该能够根据需要使用其他虚拟化客户端。

有趣的是,这不是模仿ARM,它是x86上的Android ...它有利有弊,但如果你可以在虚拟机上进行各种类型的初始测试,那么肯定有助于不必购买大量设备。 Android 4.1和x86手机和平板电脑等(IMO)的制造商通常不会过多地修改Android 4.1。


2
2018-01-08 07:29



对于googlers - 上面的链接现在重定向到genymotion(androidvm系列产品的商业风险)我认为他们企业的开源方面已经消失了。 genymotion.com - oPless


你可以跑 Android的86 在QEMU中使用KVM(甚至在VirtualBox中)。我不确定设置开发是多么容易,但它应该运行得更快。此外,英特尔 继续努力 将Android安装在他们的x86芯片上,这将有望在未来变得更加容易。

更新:我设法让它在VirtualBox中工作,除了一些网站崩溃网页浏览器。由于我正在制作一个网络应用程序,这没有帮助。它比标准的Android模拟器快得多,


1
2018-05-18 10:34





与你所追求的答案没有密切关系,但是

  • 使用 Run 当你在你的界面上工作时,或者在编码时尽可能多地工作(与Debug相比,它要快得多,甚至快10倍)
  • 尽量减少 Debug 运行,学习编码完美,所以少用Debug。
  • 可能您已经知道,您不需要为每个运行会话关闭模拟器,因此请保持打开状态。
  • 在使用一小时后重启Eclipse,但保持模拟器打开。重启Eclipse比模拟器更快。
  • 将Eclipse设置为 记得上次运行的项目,所以只需点击一下即可完成发布

0
2018-04-08 10:09



我已经做了所有这些事情,但谢谢。关于Debug运行,我实际上从不使用它们。我使用调试我的应用程序 logcat (我是那样的老派)。 - Felix
学会完美编码。噢,如果可能的话,我们就不需要IDE,调试应用程序和许多测试。哈。 - Shiki


针对x86的Google TV模拟器 支持KVM模式虚拟化

ARM还没有。我相信它目前正在进行中。


0
2017-11-14 15:51