您的位置:首页 > 移动开发 > Android开发

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

2016-05-25 10:50 609 查看
转: 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







def verName = "1.0.0"

def suffix = "(RC)"

defaultConfig {

applicationId "cn.irains.access.v2"

minSdkVersion 14

targetSdkVersion 20

versionCode 5

versionName verName + suffix

}

def versionPropsFile = file('version.properties')

if (versionPropsFile.canRead()) {

def Properties versionProps = new Properties()

versionProps.load(new FileInputStream(versionPropsFile))

def name = versionProps['VERSION_NAME'].toInteger()

def runTasks = gradle.startParameter.taskNames

if ('b' in runTasks || 'build' in runTasks ) {

name++

}

versionProps['VERSION_NAME']=name.toString()

versionProps.store(versionPropsFile.newWriter(), null)

defaultConfig {

versionName verName + "." + name + suffix

}

}

android.applicationVariants.all { variant ->

def file = variant.outputFile

variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))

}

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

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

完成之后,构建一下试试吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: