Android(安卓)项目配置之 Version Name & Code
16lz
2021-01-26
简评:优雅的设置 Android 应用的 versionCode & Name。
Android 开发者一定对下面的这两个属性很熟悉吧:
defaultConfig { ... versionCode 1 versionName "1.0.0"}
但直接这样设置有两个不好的地方:
- 不知道这个 version 对应的是哪一个 commit。
- 每次修改 versionCode 和 versionName,都要更新 build.gradle 文件。
如果你使用 git 作为你的版本控制工具,这篇文章就可以帮助你快捷设置 versionName & versionCode。
Version Name
对于 versionName 我们可以用 git describe 命令。
a. git describe 会从当前 commit 找到最近的一个 tag。
b. 如果这个 tag 就指向当前 commit,那就直接输出 tag。
c. 否则输出之前的 tag + 中间间隔的 commit 数 + 当前的 commit ID。比如:1.0-2-gdc226a
Version Code
versionCode 是一个数字,通常每一个 git tag 对应一个 version。
当然,对于开发中的内部版本是没有必要每个都打 tag 的,这时我们可以用时间戳来作为 versionCode。
因此,可以创建一个 script-git-version.gradle 文件:
buildscript { repositories { jcenter() } dependencies { classpath 'org.ajoberstar:grgit:1.5.0' }}import org.ajoberstar.grgit.Grgitext { git = Grgit.open(currentDir: projectDir) gitVersionName = git.describe() gitVersionCode = git.tag.list().size() gitVersionCodeTime = git.head().time}task printVersion() { println("Version Name: $gitVersionName") println("Version Code: $gitVersionCode") println("Version Code Time: $gitVersionCodeTime")}
之后在 build.gradle 中这样用:
apply plugin: 'com.android.application'apply from: "$project.rootDir/tools/script-git-version.gradle"
productFlavors { dev { versionCode gitVersionCodeTime versionName gitVersionName } prod { versionCode gitVersionCode versionName gitVersionName }}
Version Name: 1.0-2-gdca226aVersion Code: 2Version Code Time: 1484407970
这样来设置 versionCode 和 versionName 就可以很方便的分辨出每个版本对应的 commit,也不用每次都手动去改 build.gradle 文件了。
原文:Configuring Android Project — Version Name & Code
欢迎关注知乎专栏「极光日报」,每天为 Makers 导读三篇优质英文文章。
日报延伸阅读:
-改进 Android 项目的资源目录
-正确配置你的 Android 项目
更多相关文章
- Android(安卓)6.0中添加硬件抽象层(HAL)
- android 动态设置读取文件的编码格式(charset)
- Android(安卓)Studio 配置签名
- Android中对/data/data//files下文件的读写操作
- Android(安卓)使用aab 发布
- Android音频处理学习之MediaExtractor获取aac文件后添加ADTS头
- 【转载】【Android】如何快速分析fd leaks, 文件句柄泄露.
- 笔记33--ListView和ScrollView点击事件的冲突
- 关于Android(安卓)版本覆盖安装,安装过程中闪退出现的问题,