Android 系统本质是一个通过改造的 Linux 系统,so库是Linux系统上使用的共享库(相似windows上的dll)。最先,Android 系统只支持 ARMv5 的 CPU 构架,随着 Android 系统的发展,又加入了 ARMv7 (2010), x86 (2011), MIPS (2012), ARMv8, MIPS64 和 x86_64 (2014)。每一种 CPU 构架,都定义了一种 ABI(Application Binary Interface),ABI 决定了二进制文件如何与系统进行交互。 html
下面样例表示支持armeabi、armeabi-v7a和arm64-v8awindows
defaultConfig {
ndk {
abiFilters 'armeabi','armeabi-v7a','arm64-v8a'
}
}
复制代码
其实这个能够不设置,这样编译时,就会将项目里全部依赖资源包里的so库都打到最终的apk里。 bash
若是须要针对不一样的平台出不一样的包,能够在productFlavors里进行设置,可参考文章:blog.csdn.net/hknock/arti…架构
看上上面的描述,觉得新增一个so库文件能够随便根据须要适配的目录放,就错了。若是你有库文件在armeabi里有,可是armeabi-v7a目录下没有,那么运行在V7a的架构时,就会出现找不到so库文件的状况。具体描述参照:Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题。spa
安卓开发技术分享: blog.csdn.net/yinxing2008… .net