-1

我正在构建一个使用NDK执行一些 CPU 密集型操作的 android 应用程序(2.2 及更高版本)。

我们在开发 NDK 应用程序时需要更加小心,因为它在不同的CPU 架构上表现不同。

我希望我的应用程序能够在ARM、ARM-NEON、MIPS 和 x86 架构上运行。

在这里我读到,

如果您将本机库部署到 x86 ,您的应用程序必须面向 Android 2.3 或更高版本。

由于我的目标是android 2.2 及更高版本,这有什么问题吗?

我怎样才能让我的应用程序在上述所有架构上运行?

4

3 回答 3

1

我不知道这一点,但 Android 开发人员规范似乎很清楚。

 [...] your application must target Android 2.3 or later

也许可能有一些扩展使您成为可能,但我想这不是编写 Android 扩展库的最常见领域。尝试谷歌。

编辑:

看看这些链接:

http://www.nordichardware.com/Operating-systems/android-22-goes-native-x86-in-q3.html

http://www.android-x86.org/

于 2013-03-05T06:33:37.587 回答
1

从技术上讲,如果您可以使用 9 级兼容的 NDK 构建并将其打包,它应该可以在 2.2 ARM 设备和 2.3 其他基于架构的设备上运行(除非 2.3 不支持其他架构,因此我们没有任何类似的设备)。

事情是当您为特定架构添加本机库时,您的应用将在Google Play中受到过滤。

包含针对特定 CPU 架构(例如 ARM EABI v7 或 x86)的本机库的应用程序仅在支持该架构的设备上可见。

因此,即使您的应用程序也有可能在具有 8 级 api 的 x86 设备上运行,它可能会从市场中被过滤掉,而 x86 设备将无法将其视为可用。

于 2013-03-05T07:52:25.440 回答
1

我有一个针对 Android 1.5 及更高版本的 x86、MIPS 和 ARM 的应用程序,它没有引起任何问题。

请注意,没有 ARM-NEON 架构:armeabiv7a 不保证支持 NEON。

于 2013-03-05T07:57:34.313 回答