【问题标题】:Android emulator is based on QEMU. Can I use KVM with it?Android 模拟器基于 QEMU。我可以使用 KVM 吗?
【发布时间】:2011-02-05 15:16:52
【问题描述】:

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

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

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

【问题讨论】:

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

标签: android android-emulator qemu


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以使用 KVM(甚至在 VirtualBox)在 QEMU 中运行 Android-x86。我不确定为开发设置有多容易,但它应该运行得更快一些。此外,英特尔working on 在其 x86 芯片上安装了 Android,因此希望将来这会变得更容易。

    更新:我设法让它在 VirtualBox 中运行,除了一些网站使 Web 浏览器崩溃。因为我正在制作一个网络应用程序,所以这没有帮助。不过,它比标准的 Android 模拟器要快得多,

    【讨论】:

      【解决方案3】:

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

      根据我的经验,这比 Android SDK Emulator 要好几倍,至少在 Windows 和 Mac 上是这样。

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

      有趣的是,这不是在模拟 ARM,而是在 x86 上运行 Android... 有利也有弊,但如果您可以在虚拟设备上进行各种类型的初步测试,那么绝对有助于不必购买大量设备机器,因为 Android 4.1 通常不会被 ARM 和 x86 手机和平板电脑等 (IMO) 的制造商过多地修改。

      【讨论】:

      • 对于 googlers - 上面的链接现在重定向到 genymotion(androidvm 系列的商业风险)我认为他们企业的开源方面已经消失了。 genymotion.com
      【解决方案4】:

      与你所追求的答案不密切相关,但

      • 在处理界面时使用Run,或在编码时尽可能多地使用(与调试相比,它要快得多,甚至快 10 倍)
      • 尽量减少 Debug 的运行次数,学习完美编码,因此少用 Debug。
      • 您可能已经知道,您不需要为每个运行会话关闭模拟器,因此请保持打开状态。
      • 使用一小时后重新启动 Eclipse,但保持模拟器打开。重启 Eclipse 比 Emulator 更快。
      • 将 Eclipse 设置为remember the last run project,因此只需单击即可启动

      【讨论】:

      • 我已经做了所有这些事情,但是谢谢。关于调试运行,我实际上从不使用它们。我使用logcat 调试我的应用程序(我就是这样的老派)。
      • 学习完美编码。哦,伙计,如果可以的话,我们就不需要 IDE、调试应用程序和这么多的测试了。哈。
      【解决方案5】:

      针对 x86 supports KVM mode virtualization 的 Google TV 模拟器。

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

      【讨论】:

        猜你喜欢
        • 2018-04-03
        • 2023-03-09
        • 1970-01-01
        • 2021-07-14
        • 1970-01-01
        • 2012-12-23
        • 1970-01-01
        • 2010-12-30
        • 2011-05-01
        相关资源
        最近更新 更多