用于编译本机代码的NDK版本与安装APK的设备上运行的Android版本之间是否有任何关系(约束/兼容性限制)?
例如,我用Android r7编译本机代码,得到库并生成APK1;然后用r10d编译,获得库并生成APK2。
在同一个设备上运行的APK1和APK2之间可能会有不同的行为,这是否有风险?
发布于 2015-11-02 04:59:18
在NDK中发现并修复了错误。因此,以后的版本通常更好。但是在以后的版本中可能会引入But,所以继续跟踪论坛(例如所以和组/android),跟踪问题,随时准备升级。
NDK中包含的编译器随着时间的推移而改进,包括优化。因此,以后的版本可能会产生更快的可执行文件。
此外,尽管64位系统可以运行32位可执行文件,但后来的NDK版本可以生成本机64位二进制文件,这些二进制文件在这种设备上会更快。
不要把NDK版本和平台混淆起来!即使是r.10e也支持所有较老的平台,但是如果您为android-21构建应用程序,它将不会在带有Froyo的设备上加载。另一方面,前向可比性通常是可以接受的,大多数为android-9构建的程序都会在所有最新设备上运行,但可能会出现故障,这样的二进制文件可能没有充分利用新平台,而且效率低于为最高平台编译的程序。
https://stackoverflow.com/questions/33468849
复制相似问题