- versionCode
versionCode是作为内部的一个版本号,必须是整型。版本号越大,离当前时间越近,这个数字不是给用户看的,仅用于应用市场,程序内部识别版本,判断新旧的用途。
由于每次发布时都需要手动修改版本号,作为懒惰的程序猿当然不能忍受这种事,所以就写了一个方法,每次打包保证版本号都会比之前的大。方法如下:
//versionCode取时间戳对应的天数(即1970.1.1到当前天数)
def getIncreasedVersionCode() {
return (int) (System.currentTimeMillis() / (1000 * 60 * 60 * 24))
}
- versionName
versionName是向用户展示的版本号,必须是字符串,这个版本号就是我们可以用来遵循规范的位置,可以作为版本比较,判断是否需要提示更新、强制更新的判断依据。也可以用来做接口API版本兼容。下文提到的版本号都是指versionName。
versionName的格式多数是3位和4位的,每一位的号码含义如下:
- 主版本号:当功能有较大变动(比如增加多个模块或者整体架构发生变化),增加主版本号
- 子版本号:当功能有一定的增加或变化,增加该版本号
- 补丁版本号:一般是修复bug或优化原有功能,还有一些小的变动,都可以通过升级该版本号
- 日期版本号(build号):用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本号,build号每次构建的都是都会自增