Android Studio 自定义打包apk名字

 
  

Android Studio打包的时候,我们想自定义自己的文件名,则可以使用

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.apk')) {

            // apk_渠道名-版本号-版本名称-编译时间.apk
            def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
            output.outputFile = new File(outputFile.parent, fileName)
        }
    }
}

其中releaseTime()如下:

def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}


Sync Now之后,正常打包,打出来的文件名就会是我们想要的了
apk_渠道名-版本号-版本名称-编译时间.apk

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "app."
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 10 // 9
        versionName "1.2.4"
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
    }

    buildTypes {
        release {
            // 混淆
            minifyEnabled true
            // Zipalign优化
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true
            // 前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {

                        // apk_渠道名-版本号-版本名称-编译时间.apk
                        def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }

    productFlavors {
        qihu360 {} // 360手机助手
        yingyongbao {} // 腾讯应用宝
        wandoujia {} // 豌豆荚
//        baidu {} // 百度手机助手
//        miui {} // 小米
//        flyme {} // 魅族
//        lenovo {} // 联想-乐商店
//        oppo {} // Oppo-可可软件商店
//        huawei {} // 华为
//        vivo {} // vivo
//        hiapk {} // 安卓市场
//        sj91 {} // 91手机助手
//        sogou {} // 搜狗手机市场
//        sohu {} // 搜狐应用中心

//        taobao {} // 淘宝手机助手
//        gfan {} // 机锋
//        appchina {} // 应用汇
//        mumayi {} // 木蚂蚁
//        wangyi163 {} // 网易应用
//        nduoa {} // N多市场
//        mm10086 {} // MM商城-中国移动
//        wostore {} // WO商店
//        youyi {} // 优异
//        uc {} // UC+开发平台
//        anzhi {} // 安智市场
//        google {} // google play
//        amazon {} // 亚马逊

    }


    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

}

def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}

你可能感兴趣的:(Android开发)