使用AndroidStudio生成Android APK时候,往往需要指定APK输出路径及重命名APK。
因此在build.gradle(Module:app)中编码,以实现上述需求:
android {
...// 省略已存在代码
applicationVariants.all {
// 判断Debug or Release
def buildType = it.buildType.name
def fileName
// 下面的channel是获取渠道号,根据渠道定义的规则确定代码,非必须
def channel = it.productFlavors[0].name.split("-")[0]
// 获取当前时间“YYYY-MM-dd”格式
def createTime = new Date().format("YYYY-MM-dd",TimeZone.getTimeZone("GMT+08:00"))
// 只有Release包可以变更路径(因为AS会自动安装Debug包,故Debug包路径不能改变)
if (buildType == "release") {
it.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/apks/${it.productFlavors[0].applicationId}/${createTime}")
}
it.outputs.each {
// 同理,只有Release包可以变更名称
if (buildType == "release") {
// 命名规则:渠道名_项目名_版本名_创建时间_构建类型.apk
fileName = "${channel}_项目名称_v${defaultConfig.versionName}_${createTime}_${buildType}.apk"
// 将名字打印出来查看效果
println "文件名:--->${fileName}"
// 命名生效
//it.outputFile = new File(it.outputFile.parent,fileName) // 适用于Gredle 4.0以下版本
it.outputFileName = fileName // Gradle 4.0及以上
}
}
}
...// 省略部分代码
}
将上述代码添加到自己的Gradle代码中按需更改即可
还有一点println fileName
输出可在Gradle Console中查看:
若找不到GradleConsole的话,点击右上角Gradle–>app,双击build,便可以在GradleConsole中运行build.gradle,其实就是4:Run窗口.println信息在输出的第一条,将编译信息滚动到最上边查看即可(win+F查找也行)