【问题标题】:Does Android really exist on other platforms than ARM?Android 真的存在于 ARM 以外的其他平台上吗?
【发布时间】:2010-12-20 13:37:47
【问题描述】:

我想将用 C++ 编写的应用程序移植到 android。将应用程序从 C++ 转换为 Java 需要做很多工作,我更愿意使用这些工作来使应用程序更适合该平台,而不是修复转换错误和解决重构问题。

NDK 似乎是一条不错的路线,但实际上我不想仅仅因为 NDK 不支持或不支持它而错过一个平台(如果它占据了相当大的市场份额)。

Android 声称支持 MIPS、ARM、X86 等……但实际上我所看到的所有实现都只在 ARM 上(或 arm 兼容)。 我在这个网站上检查过: http://www.pdadb.net/

使用 NDK 会不会是个坏主意?
是否有运行或将运行 Android 的非 ARM 设备?
我在哪里可以找到有关此的更多信息?

提前致谢!

【问题讨论】:

  • 好吧,如果并且当有人实际在不同的拱门上运行 android 时,它应该只是编译到不同拱门的问题。除非你使用内联 asm 什么的。
  • 那么你完成了你的游戏吗?我很想玩。
  • 也请分享您适应的解决方案

标签: android android-ndk multiplatform


【解决方案1】:

此时的问题不是你不会因为 CPU 架构而失去市场份额,因为目前非 ARM 的 Android 设备很少,问题是你可能会因为要求用户失去市场份额运行 Android 2.3 或更高版本,您必须使用它来创建可以访问窗口、传感器和输入子系统的完全原生应用程序。

避免重写代码是一个很好的目标,但由于 Android 的不同 Window 和生命周期 API,您可能不得不重写部分代码。现在你必须用 C++ 而不是 Java 重写代码的一些重要部分。

您可以尝试一种混合方法,用 Java 编写大部分 UI,然后调用现有的 C++ 代码。

你在做游戏吗?然后你可能想要处理这些问题并继续使用 NDK。如果没有,请尝试用 Java 实现尽可能多的程序,并将 NDK 用于需要快速的复杂、经过测试的代码部分。

【讨论】:

  • 是的!游戏而已。忘了说 :P 基本上我会用 Java 做 OpenGLES/Sound 和系统调用。但我不想接触 C++ 代码,因为它需要大量工作才能转换它。我的计划是使用 Android 2.1,这似乎会在几个月内超过 95%(可能我也可以支持 1.6)我担心必须在 6 个月内用 Java 重做游戏......如何我能确定我会没事的吗?
  • 遗憾的是,我不能肯定你会没事,但我很确定你不会突然发现自己用 Java 重写了所有内容。另外,正如 NDK 文档中所说,“您还可以同时为两种 [ARM] 架构构建,并将所有内容存储在最终的 .apk 中。”所以你会为可预见的未来做好准备。祝你好运!
【解决方案2】:

documentation 给出以下信息:

The latest release of the NDK supports these ARM instruction sets:

ARMv5TE (including Thumb-1 instructions)
ARMv7-A (including Thumb-2 and VFPv3-D16 instructions, with optional support for     NEON/VFPv3-D32 instructions)

Future releases of the NDK will also support:

x86 instructions (see CPU-ARCH-ABIS.HTML for more information)

【讨论】:

    【解决方案3】:

    使用 NDK 会不会不好?

    对于算法,NDK 很好。对于游戏,NDK 很好。对于实现一个普通的应用程序,NDK 不会有太大帮助。

    是否有运行或将运行 Android 的非 ARM 设备?

    Google TV 在 x86 (Atom) 上运行。

    【讨论】:

    • @richq:嗯,是的,那很糟糕。我澄清了答案。感谢您指出!
    【解决方案4】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多