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

8

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

在同一设备上运行APK1和APK2是否可能出现不同的行为?

1个回答

3
NDK中会发现并修复bug。因此,较新版本通常更好。但是,较新版本可能会引入错误,因此请跟踪论坛(例如SOgroups/android-ndk),跟踪问题,并随时准备升级。

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

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

不要将NDK发布与平台混淆!即使r.10e支持所有旧平台,但如果您为android-21构建您的应用程序,则无法在Froyo设备上加载该应用程序。另一方面,向前兼容性通常没问题,大多数为android-9构建的程序将在所有最新设备上运行,但可能会有一些问题,并且这些二进制文件可能无法充分利用新平台,并且不如为最高平台编译的那些二进制文件有效率。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接