安卓 gradle 配置生成不同 ABI 版本
2021-12-16 本文已影响0人
咸死的鱼_O
Gradle abi 分包设置:
android {
defaultConfig {
splits {
abi {
enable true // 设为true,才能启用abi拆分机制在打包时根据架构生成不同的apk文件
reset() //将要包含的abi列表重置为空字符串(这允许与include 一起指示使用哪个 abi 而不是忽略哪些abi)
include 'armeabi-v7a', 'arm64-v8a' // 设置所有要支持的abi类型,构建多个包,每个包只包含一个架构的so
universalApk false // If true, 构建支持所有平台abi类型,构建一个包,包含多个架构的so(只要代码中有的都会打进去)
exclude 'armeabi' , 'x86 ' //设置不支持的abi类型
}
}
}
}
打包输出不同名称的apk包:
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
def aid = variant.applicationId.split("\\.")
def name = aid[aid.length - 1]
def flavor = variant.flavorName //渠道名
def name = "名称"
def buildType = variant.name
def abi = output.getFilter(com.android.build.OutputFile.ABI)
if (abi == null) abi = "all"
def version = variant.versionName
def versionCode = variant.versionCode
def date = new Date()
def formattedDate = date.format('yyyyMMdd_HHmm')
outputFileName =
"${name}" +
"${"_"}${flavor}" +
"${"_"}${buildType}" +
"${"_"}${abi}" +
"${"_"}${"v"}${version}" +
"${"_"}${"b"}${versionCode}" +
"${"_"}${formattedDate}.apk"
}
}