Android Studio轻松配置自动版本号和版本名

在开发过程中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)
        }

    }
    ...
}


欢迎关注我的公众号,和我一起每天进步一点点!
这里写图片描述

你可能感兴趣的:(Android)