NDK版本与Android版本之间的关系

时间:2015-11-02 00:17:55

标签: android build android-ndk cross-compiling native-code

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

在同一台设备上运行的APK1和APK2之间我可能会遇到不同的风险吗?

1 个答案:

答案 0 :(得分:1)

在NDK中找到并修复了错误。所以后期版本通常更好。但是可能会在以后的版本中引入错误,因此请继续跟踪论坛(例如SOgroups/android-ndk),跟踪issues,并随时准备升级。

NDK中包含的编译器随着时间的推移而改进,包括优化。因此,更高版本可能会生成更快的可执行文件。

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

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