0

在某些计算机逻辑中,我认为本机 c 代码(从 java 本机方法调用)将比 java 运行得快。那么在这种情况下,我似乎必须使用ndk。

然而谷歌表示:

值得注意的是,在 Android 上使用原生代码通常不会带来显着的性能提升,但它总是会增加应用程序的复杂性

所以我很困惑。ndk 有必要吗?

4

1 回答 1

3

NDK 是必需的。这是否与您的案件有关很难说,因为您没有提供具体细节。

与服务器端 Java 不同,C 代码实际上比其 DVM 代码要快得多。另一方面,正如文档指出的那样,通常不是。跨越原生边界需要大量时间。调用 NDK 方法的循环很可能不会发生重大变化。完全在 NDK 的 C 端实现的循环很可能会发生重大变化。

另请注意,如果您选择使用 NDK,则会大大限制您支持的设备。您可以生成具有多个版本的库的胖二进制文件,每个支持的设备一个版本。当然,这会影响您的应用程序的大小,并且不能保证它会在某些新手机上运行。

于 2013-03-18T03:37:42.453 回答