gradle下,自动关联versionName,versionCode

来源:互联网 发布:我要开淘宝网店怎么开 编辑:程序博客网 时间:2024/06/05 05:12

一、基本介绍


  • versionCode
    用于版本升级,int 类型,对用户不可见。
  • versionName
    用于对用户展示的版本名,字符串类型。

二、关联


一般为了统计版本,方便后端的接口升级,会用一些算法他们关联起来。例如:

versionName  -> versionCode1.0.1     -> 100 000 0011.0.0     -> 1*2^16+0*2^8+0*2^1

注意:versionCode是Int型的。

三、简单实现


1,从文件读取versionName

//从version.properties文件获取versionNamedef getVersionName() {    def versionFile = file('version.properties')    if (versionFile.exists()) {        def Properties versionProps = new Properties()        versionProps.load(new FileInputStream(versionFile))        def versionCode = versionProps['build.name'].toString()        return versionCode    } else {        throw new GradleException("Could not find version.properties!")    }}

2,获取versionCode

//获取版本code,通过100 000 000 关联versionNamedef getVersionCode() {    def versionSplite = getVersionName().split("\\.")    println(versionSplite.toString())    StringBuffer sb = new StringBuffer();    for (item in versionSplite) {        switch (item.length()) {            case 1:                sb.append('00');                sb.append(item);                break            case 2:                sb.append('0');                sb.append(item);                break            case 3:                sb.append(item);                break            default:                throw new GradleException("version name is error !")                break        }    }    return sb.toInteger()}

3 version.properties

version.properties

4,配置gradle versionCode,versionName

 android{     ...    defaultConfig{        def vCode = getVersionCode()        def vName = getVersionName()        defaultConfig {            applicationId "com.xxx"            minSdkVersion 14            targetSdkVersion 22            versionCode vCode            versionName vName    }}

最后


用studio 时间不长,对gradle了解还不够。如果,有更好的方式或者学习资料,记得留个地址哈。

0 0
原创粉丝点击