在开发过程中Apk的名字需要带上一些必要的信息,这样便于一目了然的确定当前的版本和版本号,及时定位到问题对应的版本,如:myApk-release-1.7.0(43)-2017614
- myApk是应用的名称,对应app_name
- release是开发的版本类型,对应buildType
- 1.7.0是版本名,对应versionName
- 43是版本号,对应versionCode
- 2017614则是打包的时间了
这期间,可以动态改变的就是时间和versionCode了
采用git作为版本控制工具的话,可以用commit的次数来增加versionCode
- 获取commit的次数
//获取以当前分支commit数目为版本号
def getVersionCode() {
def cmd = 'git rev-list --count HEAD'
return cmd.execute().text.trim().toInteger()
//2种方式都可以
// Process process = "git rev-list --count HEAD".execute()
// process.waitFor()
// return process.getText().toInteger()
}
- 获取时间
new Date().format('yyyyMMdd')
- 生成apk
buildTypes {
...
applicationVariants.all { variant ->
//修改生成的apk名字 “myApk-release-1.7.0(43)-2017614”
variant.outputs.each { output ->
def appName = 'finance'
def oldFile = output.outputFile as File
def releaseApkName
def date = new Date().format('yyyyMMdd')
releaseApkName = appName + "-" + variant.buildType.name + "-${defaultConfig.versionName}(${getVersionCode()})-" + date + ".apk"
output.outputFile = new File(oldFile.parent, releaseApkName)
}
}
...
}
欢迎关注我的公众号,和我一起每天进步一点点!