热文导读 |
点击标题阅读
2017 春季最酷、最受欢迎的 30 个 Android 库,快收藏!
吊炸天!74款APP完整源码!
移动端开发者以后的路在哪里?
来源:http://www.imliujun.com/gradle1.html
文章目录
-
1. 场景介绍
-
2. 解决问题
-
2.1. 配置服务器版本
-
2.2. 定制 versionName
-
2.3. versionCode 自增
-
2.4. 个性化渠道名
-
2.5. debug 包使用 release 签名
-
2.6. 日志开关
-
3. 结语
本篇文章主要根据实际开发中遇到的需求,讲解使用
Gradle
对应用的不同版本进行个性化定制。
场景介绍
-
一般的应用基本上都有正式服和测试服,这个就不需要多说了。但是有些应用可能还有
超管服务器
专供运营人员使用,对应用内的一些内容进行监管,具有一些管理员才有的操作权限。
-
开发过程中发布测试服务器的安装包需要在版本号后面增加版本序号,超管服务器的包在版本号后面增加
管理员
文字,线上包则正常显示版本号。
-
每次打包
versionCode
自增,避免发版时忘记手动修改导致老版本不能覆盖安装。
-
超管包的渠道名为
admin
,日常运行的
debug
包渠道名为
test
,上线的包使用加固软件进行多渠道加固。
-
debug
包和
release
包使用同样的签名,避免直接运行的
debug
包因为签名问题不能使用需要校验签名的第三方服务,比如:QQ 登录,微信登录,高德地图。
-
debug
包打印日志信息,
release
包不打印日志信息
以上某些场景从我工作以来就一直存在,以前用
eclipse
开发时除了每次都手动去修改一些开关变量也没啥好办法,可能是因为当时菜 ╮(╯▽╰)╭(如果你们有什么好方法的话)。后来切换到
Android Studio
后使用
Gradle
进行依赖管理已经让人很是欣喜,既然如此能不能使用
Gradle
将以上问题统统解决,完全自动化呢?答案是:必须的。
解决问题
先上完整的
Gradle
配置
。
根目录下的
build.gradle
文件进行如下配置,主要是将版本号和测试包的序号抽取出来:
下面就根据场景来依次介绍对应的配置代码。
配置服务器版本
这里创建了三个 flavor,分别是
offline 测试服
、
online 正式服
、
admin 超管服
。并且通过
buildConfigField
动态配置服务器的 URL 常量值到编译后自动生成的
BuildConfig
类中。
自动生成的 BuildConfig 类
图中可以看到,不止有
DOMAIN_NAME
常量值,还有一个
FLAVOR
常量。这个
FLAVOR
常量中的值是
offline
,代表当前在
offline
这个版本上面。那怎么切换到其他的服务器呢?
切换不同的变种版本
点开左下角的
Build Variants
, 可以自由切换当前运行的版本。需要在管理员包中开启一些高级的功能,可以判断
FLAVOR
的值是不是
admin
,如果是的话就显示管理员的操作布局。当然必不可少的要对用户权限进行校验哦。
定制
versionName
大家看上图
BuildConfig
类中
VERSION_NAME
常量的值为
2.0.2.0001-debug
,当前是测试服的
debug
包,所以
versionName
应该是正常的 2.0.2 版本后面拼上当前出包的序号 0001 ,再拼上
debug
的后缀,所以完整的版本号是
2.0.2.0001-debug
。
看看不同服务器版本的
VERSION_NAME
:
-
offlineRelease
版本为
2.0.2.0001
-
offlineDebug
版本为
2.0.2.0001-debug
-
adminRelease
版本为
2.0.2-管理员
-
adminDebug