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,"....");
}