Gradle实现 Apk包名设置 项目内versions name 设置

Gradle实现 Apk包名设置 项目内versions name 设置

我是需要让包名上带上时间戳,这样每次打出的包都是比较好区分,防止装错。

首先我们这些打包的各种配置都是要在Gradle中完成的。

Gradle基于Groovy语言,面向Android应用为主,它抛弃了基于XML的各种繁琐的配置,取而代之的是一种基于Grovvy的内部领域特定语言(DSL)。(网上copy的)

1.我们需要一个获取时间的方法:

def getTime(){
    return new Date().format("yyyyMMdd HHmm",TimeZone.getDefault());
}

2.下面就介绍一下打包的设置:

gradle打包配置是在buildTypes方法内的主要分为两个部分,一个是debug一个是release,实例如下:

buildTypes {
        debug {
            buildConfigField "boolean", "LOG_DEBUG", "true"
            //这里是给versionName添加后缀
            versionNameSuffix "_debug_${getTime()}"
            signingConfig signingConfigs.release
            minifyEnabled false
            zipAlignEnabled false
            //是否去除无用的资源文件
            shrinkResources false
        }

        release {
            buildConfigField "boolean", "LOG_DEBUG", "false"
            signingConfig signingConfigs.release
            zipAlignEnabled true
            minifyEnabled false
            shrinkResources false
            //这里是混淆了,如果你正在做混淆,可以参考我的另外一篇文章。
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
  //这里是构建apk包的地方了,fileName就是我们构建的apk的名字了。
        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    def fileName = "a_${defaultConfig.versionName}_${variant.productFlavors[0].name}_${getTime()}.apk"
                    output.outputFile = new File(outputFile.parent, fileName)
                }
            }
        }

    }

上面构建完成apk就是:

a_2.0.3_xxxx_201705121200.apk

在应用内读取到的versionName就是:

V2.0.3_debug_201705121200

结尾:

gradle的配置很丰富,如果有时间可以搜集一些资料看看,会有意想不到的发现。

补充问题:

1.如果发现添加该配置后经常运行不起来的话,请如下暂时解决:
注销掉fileName的生成的方法。
2.如发现不能gradle构建不成功的问题:
报错指向那一行尝试把那行所有的空格都删掉。
引起的原因是由于复制 粘贴引起的乱码导致的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值