[build.gradle配置系列(一)]android studio根据版本号动态生成apk名
程序员文章站
2023-11-30 14:44:34
1、 在build.gradle定义函数,根据时间动态返回时间标签
def static releasetime() {
return new date().format("...
1、 在build.gradle定义函数,根据时间动态返回时间标签
def static releasetime() { return new date().format("yyyymmdd", timezone.gettimezone("utc")) }
2、根据时间生成versionname
android { compilesdkversion 26 buildtoolsversion "26.0.0" defaultconfig { applicationid "com.jason.log.text" minsdkversion 21 targetsdkversion 26 versioncode 1 versionname "1.0".concat("_").concat(releasetime())//版本号加上时间 testinstrumentationrunner "android.support.test.runner.androidjunitrunner" }
3、在android标签中的buildtypes配置动态生成apk名
android { ... buildtypes { debug { minifyenabled false buildconfigfield "boolean", "log_debug", "false" //定义变量,区分debug 或release 状态,可直接在代码中buildconfig.log_debug使用,便于添加调试log } release { //签名 minifyenabled false buildconfigfield "boolean", "log_debug", "true" proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' } applicationvariants.all { variant -> variant.outputs.each { output -> def outputfile = output.outputfile if (outputfile != null && outputfile.name.endswith('.apk')) { def type = "" if (variant.buildtype.name == 'debug') { type = "_debug" } def filename = "logtest_v${defaultconfig.versionname}${type}.apk" //定义apk名 output.outputfile = new file(outputfile.parent, filename) } } } } }
另外,我们可以在debug或release 标签中定义一个变量,用于控制是否输出调试log,如下:
buildconfig.log_debug在debug状态为true,release 状态下为false
if(buildconfig.log_debug){ log.d(tag,"...."); }