在编译本地代码时使用的NDK版本和安装APK的设备上运行的Android版本之间是否存在关系(约束/兼容限制)?
例如,我使用Android NDK r7编译本地代码,获取库并生成APK1;然后我使用NDK r10d编译,获取库并生成APK2。
在同一设备上运行APK1和APK2是否可能出现不同的行为?
在编译本地代码时使用的NDK版本和安装APK的设备上运行的Android版本之间是否存在关系(约束/兼容限制)?
例如,我使用Android NDK r7编译本地代码,获取库并生成APK1;然后我使用NDK r10d编译,获取库并生成APK2。
在同一设备上运行APK1和APK2是否可能出现不同的行为?
NDK中包含的编译器随着时间的推移不断改进,包括优化。因此,较新版本可能会产生更快的可执行文件。
此外,虽然64位系统可以运行32位可执行文件,但较新版本的NDK可以生成本机64位二进制文件,这些文件在此类设备上将更快。
不要将NDK发布与平台混淆!即使r.10e支持所有旧平台,但如果您为android-21构建您的应用程序,则无法在Froyo设备上加载该应用程序。另一方面,向前兼容性通常没问题,大多数为android-9构建的程序将在所有最新设备上运行,但可能会有一些问题,并且这些二进制文件可能无法充分利用新平台,并且不如为最高平台编译的那些二进制文件有效率。