NDK版本与Android版本的关系

Relation between the NDK version and the Android version

用于编译本机代码的NDK版本与安装APK的设备上的Android版本运行之间是否存在任何关系(constraint/compatibility限制) ?
例如,我使用 Android NDK r7 编译本机代码,我获取库并生成 APK1;然后我用 NDK r10d 编译,获取库并生成 APK2。

在同一台设备上,我可能会在 APK1 和 APK2 运行 之间获得不同的行为,这是否存在任何风险?

在 NDK 中发现并修复了错误。所以一般越晚的版本越好。但后续版本可能会出现BUG,请继续关注论坛(如SO and groups/android-ndk), track issues,随时准备升级

NDK 中包含的编译器与时俱进,包括优化。因此,更高版本可能会生成更快的可执行文件。

此外,虽然 64 位系统可以 运行 32 位可执行文件,但更高版本的 NDK 可以生成本机 64 位二进制文​​件,这在此类设备上会更快。

不要将 NDK 版本与 平台 混淆!即使 r.10e 也支持所有较旧的平台,但如果您为 android-21 构建应用程序,它不会在具有 Froyo 的设备上加载。另一方面,向前比较通常是可以的,大多数为 android-9 构建的程序将在所有最新设备上 运行,但可能会有小故障,并且此类二进制文件可能未充分利用新平台,并且效率低于为最高平台编译的二进制文件。