适用于Android 6.0 API的NDK?

时间:2015-12-07 00:31:21

标签: android-ndk android-6.0-marshmallow

我正在测试脚本以从命令行构建共享对象。根据{{​​3}},最新下载的内容是 android-ndk-r10e (我认为这是旧版下载)。

但是,当我检查 android-23 时,我发现没有可用的内容:

$ echo "$ANDROID_NDK_ROOT"
/opt/android-ndk-r10e

$ ls "$ANDROID_NDK_ROOT/platforms"
android-12  android-15  android-18  android-3   android-8
android-13  android-16  android-19  android-4   android-9
android-14  android-17  android-21  android-5

我认为NDK for Android 6.0是 android-23 ,不可用吗?或许也许其他我不太了解的事情。

(我关注主要的版本颠簸,以及它所包含的重大变化,例如NDK Downloads并破坏了东西)。

2 个答案:

答案 0 :(得分:1)

6.0中没有新的原生API,因此无需在NDK中提供该目标 - 它与5.1和5.0的目标相同。

使用NDK进行构建时,目标平台将被选为在您选择目标平台之前实际存在的最新平台(最早的目标平台,对于稍后介绍的ABI)。

请记住,“目标API”在Java和本机代码之间的表现完全不同。如果您使用一个目标API级别构建本机代码,则代码可能根本不会在旧版本上运行 - 请参阅例如https://stackoverflow.com/a/27338365/3115956https://stackoverflow.com/a/27093163/3115956

因此,除非您想尝试在某些平台上手动加载和使用新功能(如果可用),您应该将目标版本(APP_PLATFORM中的jni/Application.mk)设置为您希望的最低版本要运行的代码,即对应于minSdkVersion

答案 1 :(得分:0)

根据我的理解,NDK处于开发的单独“流”中,其发布次数比Android平台本身更少或更频繁。您应该可以毫无问题地为 android-23 设备开发NDK应用程序,Google可能还没有时间更新 android-23 的NDK版本。

看看修订版, r10e 刚刚发布,但事实是它也是今天的最新版本。