7

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

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

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

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

提前致谢!

4

4 回答 4

5

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

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

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

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

于 2010-12-20T14:20:11.640 回答
3

文档提供以下内容:

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)
于 2010-12-20T13:59:50.763 回答
2

使用 NDK 会不会是个坏主意?

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

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

Google TV 在 x86 (Atom) 上运行。

于 2010-12-20T19:14:50.083 回答
1

使用这个改进的 NDK:http: //developer.mips.com/android/download-android-ndk/

于 2012-03-24T01:58:15.637 回答