Android Studio中Gradle自定义APK名称及输出路径

使用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查找也行)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gaoyz1/article/details/82828926