Android Studio编译输出apk文件修改文件名

原文链接 http://www.jianshu.com/p/93051c9e97fb

http://blog.csdn.net/ylbf_dev/article/details/50750907

http://blog.csdn.net/mynameishuangshuai/article/details/51783303

Android Studio 打包App时生成的名称默认是 app-release.apk这样的名字
我这里使用Gradle 配置文件修改默认命名格式以更直观管理
我现在格式是这样的

我现在格式是这样的
包名_版本名称_生成时间的哈希-release|debug.apk
例如 com.demo.test_1.0.0.0_480550181-release.apk

实现的方法是在app的module里的build.gradle文件中,
先在android { ...}节点外面加上下面的函数 作用是返回时间的哈希值

    def releaseTime() {
    return new Date().time.hashCode()
}

之后在android { ...}里面加上下面一段代码,即可修改生成类似上面的apk的文件名。

android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                //这里修改apk文件名
                def fileName = outputFile.name.replace("app","${defaultConfig.applicationId }_${defaultConfig.versionName}_${releaseTime() }")
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }

是不是这样就好很多了。






新建一个Android工程,默认编译会生成一个叫app-debug.apk或者叫app-release.apk文件,说实话,单纯看文件名,我都不到任何有用的信息,我希望输出的文件名是这样的:

模块名-渠道名-版本号-版本名称-包名-编译时间.apk

当然,这只是举一个例子,可能不需要那么长,具体需要什么就加什么。

实现

通过build.gradle来做,具体看代码

apply plugin: 'com.android.application'

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}


android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.djk.myapplication"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors{
        develop{}
        xiaomi{}
        huawei{}
        anzhi{}
    }

    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                //这里修改apk文件名
                def fileName = "demo_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
}

看看效果


生成apk


好了,是不是看着好很多。



文/dongjunkun(简书作者)
原文链接:http://www.jianshu.com/p/93051c9e97fb
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值