Cpu与ABIs:
ARMv5 设备:只支持armeabi
ARMv7 设备:支持 armeabi 和 armeabi-v7a
ARMv8 设备:支持 armeabi-v7a、armeabi 和 arm64-v8a
X86 设备:支持 armeabi(性能有所损耗) 和 x86
x86_64 设备:支持 x86 和 x86_64
mips 设备: 支持 mips
mips_64 设备:支持 mips 和 mips_64
1.不同CPU架构的android手机加载时会在libs下找自己对应的目录,从对应的目录下寻找需要的.so文件;
2.如果没有对应的目录,就会去armeabi下去寻找,如果已经有对应的目录,却没有找到对应的.so文件,也不会去armeabi下去寻找了;
例如:以x86设备为例,x86设备会在项目中的 libs文件夹寻找是否含有x86文件夹,如果含有x86文件夹,则用该文件夹下的so文件,只有x86文件夹而文件夹下没有so,程序会报错 find library returned null
;如果工程本身不含有x86文件夹,则会寻找armeabi或者armeabi-v7a文件夹,兼容运行。
3.x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。
4.64位设备(arm64-v8a, x86_64, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等)。