利用gradle构建android版本号、包名

转: http://blog.csdn.net/maosidiaoxian/article/details/39638289

更完整的资料 :http://m.blog.csdn.net/article/details?id=50465885


Java的程序中,貌似都没有这个构建版本号的概念,用的诸如eclipse, idea和Android studio的IDE也没有直接提供构建版本号的选项。不过我却想在android程序的版本号当中添加一个构建版本号,当然,这个只是个人的蛋疼需求。虽然在stackoverflow上看到其他人也有这种需求,但相信人不多。

这里分享一下我的解决方法。

首先在app的build.gradle中的android方法里面,把defaultConfig的代码替换成以下代码:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. def verName = "1.0.0"  
  2. def suffix = "(RC)"  
  3.   
  4. defaultConfig {  
  5.     applicationId "cn.irains.access.v2"  
  6.     minSdkVersion 14  
  7.     targetSdkVersion 20  
  8.     versionCode 5  
  9.     versionName verName + suffix  
  10. }  
  11.   
  12. def versionPropsFile = file('version.properties')  
  13.   
  14. if (versionPropsFile.canRead()) {  
  15.     def Properties versionProps = new Properties()  
  16.   
  17.     versionProps.load(new FileInputStream(versionPropsFile))  
  18.   
  19.     def name = versionProps['VERSION_NAME'].toInteger()  
  20.   
  21.     def runTasks = gradle.startParameter.taskNames  
  22.     if ('b' in runTasks || 'build' in runTasks ) {  
  23.         name++  
  24.     }  
  25.   
  26.     versionProps['VERSION_NAME']=name.toString()  
  27.     versionProps.store(versionPropsFile.newWriter(), null)  
  28.     defaultConfig {  
  29.         versionName verName + "." + name + suffix  
  30.     }  
  31. }  
  32.   
  33. android.applicationVariants.all { variant ->  
  34.     def file = variant.outputFile  
  35.     variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))  
  36. }  

上面的android.applicationVariant.all就是指定了新的apk的文件名。前面的一大堆代码都是构建版本号的逻辑。因为是构建版本号,所以先读取任务,仅在任务为b(build的缩写)或build的情况下,版本号才加一。

然后我们还需要在build.gradle的同级目录下建立一个叫version.properties的文件,用于保存构建版本号。

完成之后,构建一下试试吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值