android 应用分为32位和64位两种,为了兼容性,一般应用两种都支持
但是,问题来了,包太大!!
怎样解决呢?
【解决方案】
用 android studio gradle 配置,实现分开编译32、64位版本
步骤如下:
1.在defaultConfig配置中,去除关于abiFilters的描述
defaultConfig {
applicationId "xxx.xxx.xxx"
versionCode 999009
versionName "9.9.9.9"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled true
manifestPlaceholders = [CHANNEL_NAME: "a00"]
// ndk {
// abiFilters 'armeabi-v7a','arm64-v8a'//'armeabi-v7a',armeabi, 'x86', 'x86_64', 'arm64-v8a'
// }
flavorDimensions "default"
}
2.通过productFlavorsi,分别定义32位 和64位版本,区别化处理,在其中添加externalNativeBuild标签,将对应的abiFilters放进去。
productFlavors {
a00 { // 通用包
}
b04 { // 华为包
}
a0032 { // 通用包
externalNativeBuild{
ndk {
abiFilters 'armeabi-v7a' //,armeabi, 'x86', 'x86_64', 'arm64-v8a'
}
}
}
a0064 { // 通用包
externalNativeBuild{
ndk {
abiFilters 'arm64-v8a'//'armeabi-v7a',armeabi, 'x86', 'x86_64', 'arm64-v8a'
}
}
}
}
3.gradle同步处理一下,一会儿后,在tasks中即可看见对应的编译任务了。
---------------------------------The End-----------------------------------------------