ndkBuild 默认会编译多种 so
如果不配置 ndk 编译的 so 类型,Android Studio 默认会编译出多种 ABI 的 so,比如 Android Studio 已有项目添加NDK支持(mac/ndk-build) 中会有 arm64-v8a、armeabi-v7a、x86_64、x86 四种 so:
控制编译的 so 类型
如果需要控制 ndk-build 的 so 类型,只需要在 gradle.build 中添加:
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a' // arm64-v8a、armeabi-v7a、x86_64、x86 中的一个或多个
}
}
}
如果只配置了 armeabi-v7a ,那么只会编译出此 ABI 类型 so:
发现一个有趣的问题
当在 abiFilters 配置有 arm64-v8a 时,安装完app后,在手机的 /data/data/包名/libs 种并不会出现 libperformance_data.so
1、没有配置时
2、配置时
而手机 Vivi Vivo X21A (Android 9, API28)CPU 的 ABI 就是 arm64-v8a :
//todo 没时间搞清楚为什么,先做个记录