【问题标题】:ARM Translation on GenymotionGenymotion 上的 ARM 翻译
【发布时间】:2015-03-02 11:22:18
【问题描述】:

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

-提前致谢。

【问题讨论】:

    标签: android genymotion


    【解决方案1】:

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

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

    它不是必须的,但很多应用没有它就无法运行。

    【讨论】:

      【解决方案2】:

      Android 游戏通常使用 OpenGL ES,它是从头开始构建的,专门用于 ARM SoC。 Android NDK 本身允许游戏开发者使用 C/C++ 甚至 ARM 汇编代码来优化他们的软件。

      GenyMotion 仿真器旨在围绕 Intel x86 / x64 架构运行,这就是它们比 Android 仿真器更快的原因。但正因为如此,而且他们现在决定放弃 ARM 翻译,所以他们无法运行游戏。

      标准的 Android 模拟器实际上将 Java 源代码编译为 dex,并将 dex 编译为 ARM 程序集,这些 ARM 指令在称为 QEMU 的 ARM 模拟器上运行。这使得 Android 模拟器非常慢,因为它实际上是在 Intel-Windows 机器上运行 ARM 处理器的模拟。但它可以运行游戏。

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

      【讨论】:

      • 有些真实,这里有些错误。 OpenGL 与 ARM 或 X86 无关。模拟器并不真正编译代码。 Dex 字节码永远不会编译为 ARM 程序集。
      • 您的评论迫使我重新评估自己的理解。我已经看到 NDK 允许您根据需要在 ARM 程序集中编写部分代码,因此我自动假设 OpenGL ES 必须进行类似的优化。我找不到任何关于模拟器内部工作的有用文章,请您指出正确的方向吗?
      猜你喜欢
      • 1970-01-01
      • 2018-10-26
      • 2016-04-02
      • 2015-02-25
      • 2016-11-27
      • 2014-05-31
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多