前言
做过安卓开发的都知道,app版本控制主要依赖于两个参数versionName和versionCode,它们在我们项目模块的gradle文件中配置。而以往在做升级时,我们都是手动的去修改这两个参数。这在多人合作开发中是很不提倡的,因为往往较大的项目gradle文件经常要做修改替换,容易弄混,很不方便。
后来我们习惯将这两个参数的值提取出来,放在全局的配置文件gradle.properties中,然后在build.gradle中引用配置文件中定义的参数,从而确保版本控制参数从build.gradle中剥离。
//以下代码在根目录的gradle.properties中
VERSION_NAME = 1.0.0
VERSION_CODE = 1
//以下代码在build.gradle的android{}中配置
defaultConfig {
...
versionCode Integer.parseInt(project.VERSION_CODE)
versionName project.VERSION_NAME
...
}
还有种方式也是同样的思路,把版本号的配置单独的抽取出来的,放在单独的文件里,供build引用,就像我们在Android里,单独新建一个存放常量的Java类一样,供其他类调用。我们新建一个version.gradle文件并在其中添加以下代码。
ext{
VERSION_NAME = 1.0.0
VERSION_CODE = 1
}
然后在build.gradle中通过apply from:'version.gradle’来引用该模块,最后同上在build.gradle的android{}中配置即可。
其实以上几种方式都大同小异,都需要通过人为去修改参数从而控制版本号。那么有没有什么方式来自动控制版本号,实现版本自增的操作呢?接下来就让我们一起来实现它。
实现
第一步: 在app模块的根目录下新建一个version.properties,并在其中添加如下key-value。
version_major=0
version_minor=0
version_patch=1
version_build=0
version_name=v_0.0.1
version_code=1
这里解释以下这几个参数:
参数 | 说明 |
---|---|
version_major | 主版本号,除非有重大更新一般不需要去修改它 |
version_minor | 副版本号,小版本更新时去手动自增 |
version_patch |