在虚拟机中运行的Android X86是否可以代替Android模拟器?

6
我正在使用jQuery Mobile、Phonegap和Google地图的jQuery插件开发Android应用程序。模拟器加载网页太慢,使得测试我的代码成为一项痛苦的操作。我在虚拟机上安装了Android x86,并将其链接到Eclipse以调试我的应用程序。
这个解决方案比模拟器更快,但问题是我的应用程序总是崩溃,而在模拟器中并非如此。这让我产生了疑问:Android x86在虚拟机上是模拟器的稳定替代品吗?
3个回答

4
根据我的经验,答案绝对是“是”。与您所描述的情况不同,我的应用程序从未在Android-x86虚拟机上崩溃,由于SDK的模拟器不支持麦克风输入,这实际上是测试我的应用程序的唯一方法,而无需为每个Android变体购买真实设备。另外,正如您所指出的,它运行得快得多。与Google声称的“接近本地速度”相反,Android的SDK运行速度极慢,肯定比真正的手机或平板电脑慢得多。您的应用程序在Android-x86 VM上运行时崩溃的事实实际上可能是一件好事:检查使您的应用程序更加健壮以应对不可预见的情况的方法(您知道,有许多类型的设备)。
唯一的缺点是 Android-x86 仅支持 ICS(Android 4.0.4),这意味着您无法在 Jelly Bean(Android 4.1.x)中测试应用程序。 通过构建您自己的 VirtualBox-AOSP 可以解决这个问题。

现在可用于Nougat(7.1)。 - Display Name
现在是Pie时代... - dawid

1
许多虚拟化软件和系统都依赖于CPU的硬件虚拟化能力(如VT等),但即使没有这些,VirtualBox也可以很好地运行Android x86(eeepc iso)(快速)。显然存在一些限制,但请记住,任何模拟器都只能做到这么多。
如果您的CPU不支持硬件虚拟化,那么这是一个非常好的替代方案。

1
Genymotion是一个打包和支持的解决方案,为不同版本的Android提供了一堆虚拟机,您可能想看看它。 - Pierre-Luc Paour

0

自从版本17起,Google的Android SDK模拟器已经本地化。

Google在他们的ADT版本17中表示changelog

其中一个新功能是对Android模拟器的大型更新-来自英特尔对AOSP的贡献意味着模拟器现在在Windows和Mac OS X上以接近本地速度运行。

因此,如果您使用最新版本的sdktools和模拟器,则不应该看到应用程序运行速度方面的巨大差异。


速度并不是唯一的区别。在GNU/Linux以外的平台上,谷歌模拟器需要Intel HAXM来运行x86映像,这是一个侵入式的专有软件(它使用内核扩展)。如果您已经安装了VirtualBox,则可能有意义使用VBox而不增加攻击面(因为添加内核扩展的软件中出现漏洞或后门可能非常糟糕;顺便说一下,曾经有真实情况发生过,即Intel HAXM导致主机系统崩溃)。 - Display Name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接