2015-03-02 44 views
6

Okey,BlueStacks在我的电脑上有点慢,所以我在互联网上的某处读到Genymotion比BlueStacks快一点。然后我下载了Genymotion并安装了它。经过很多复杂的步骤,我终于明白我需要ARM translation and Google app来玩Android游戏。现在,我可以理解Google应用需要获取Play商店。但是我仍然对'ARM翻译'一无所知。为什么需要?它有什么作用?如果我不使用ARM翻译会发生什么?最后,ARM代表什么?Genymotion上的ARM翻译

- 预先感谢。

回答

1

ARM是一种处理器架构,您可以阅读更多关于它的文章here

Android应用程序有时设计为X86体系结构,有时使用ARM。 您必须安装ARM翻译才能安装在使用ARM体系结构的模拟器应用程序上。

这不是必须的,但许多应用程序没有它将无法正常工作。

2

Android游戏通常使用OpenGL ES,它从底层开始专门与ARM SoC一起工作。 Android NDK本身允许游戏开发者通过使用C/C++甚至ARM汇编代码来优化他们的软件。

GenyMotion仿真器专为英特尔x86/x64架构而设计,这就是为什么它们比Android仿真器更快的原因。但因为这一点,并且因为他们现在决定放弃ARM翻译,所以他们无法运行游戏。

一个标准的Android模拟器实际上将Java源代码编译为dex,dex编译为ARM程序集,而这些ARM指令则运行在名为QEMU的ARM模拟器上。这使得Android仿真器非常慢,因为它实际上是在Intel-Windows机器上运行仿真ARM处理器。但它能够运行游戏。

Android模拟器模拟,而GenyMotion更有效的是模拟

+1

一些thruth,这里的一些错误。 OpenGL与ARM或X86无关。模拟器并不真正编译代码。 Dex字节码永远不会编译到ARM程序集。 – pcans 2015-03-04 08:24:40

+0

你的评论迫使我重新评估自己的理解。我已经看到NDK允许您在ARM程序集中编写部分代码,所以我自动假定OpenGL ES必须进行类似的优化。我找不到有关仿真器内部工作的任何有用的文章,请您指点我正确的方向? – 2015-03-05 11:49:04