Android studio 自定义打包apk名

Android Studio打包应用默认生成的apk名称是:app-release.apk 、如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了

需要在build.gradle(Module:app)文件下android{ }中添加:

// apk name def
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.outputFile = new File(output.outputFile.parent, defaultConfig.applicationId + "-" + buildType.name + "-v" +
                    defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk" );
        }
    }

这样我们打包的apk名就是:com.test.demo-release-v1.01-2.apk   ,就自动带上我们的包名和版本号了,省去每次都要手动自己改了。

如果要生成如下版本号时间戳的apk包名,则可以用如下build.gradle代码:模块名-渠道名-版本号-版本名称-包名-编译时间.apk
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‘
}

效果

时间: 2024-07-31 14:29:23

Android studio 自定义打包apk名的相关文章

Android studio 自定义打包APK名称

Android Studio打包应用默认生成的apk名称是:app-release.apk .如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了,要怎么做呢. 我们只需要再build.gradle(Module:app)文件下android{ }中添加: 1 android.applicationVariants.all { variant -> 2 variant.outputs.each { output -> 3 output.outputFile =

Android studio 使用心得(四)—android studio 多渠道打包(二)

Android studio 使用心得(四)—android studio 多渠道打包 这篇文章讲了一种打包方式.是直接在android studio 里面可视化操作,结合配置文件.我个人觉得严格上来讲是不完全正确的操作,因为配置文件里面的签名文件根本没有用到.但是,打出来的包绝对没问题的.这篇主要是介绍直接在dos命令里面使用gradle命令打包.两行命令,简单gradle clean ,gradle build. 1,配置文件还是和之前的一样,我才贴一次代码 ? 1 2 3 4 5 6 7

Android Studio 自定义debug签名文件keystore

Android Studio 自定义debug签名文件keystore

Android studio 使用心得(十)---android studio 多渠道打包(三)

关于使用android studio 如何打包  大家可以看这两篇文章 Android studio 使用心得(四)---android studio 多渠道打包 Android studio 使用心得(四)---android studio 多渠道打包(二) 真正的项目开发,当然是建议 Android studio 使用心得(四)---android studio 多渠道打包(二) 其实,android studio 对上面这种打包方式还有更简单的方法,就是使用as 里面自带的Terminal

Android之编译打包apk时几个常用的技巧

今天和大家分享一下用eclipse打包apk时的三个小技巧: 一.防止被反编译而扰乱混淆加密: 1. 请打开project.properties文件中的这句话(即将这句前面的"#"去掉即可)    proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 2. 然后可以根据自己的需求对proguard-project.txt文件做出"例外"的方法或类的规则定

android studio 反编译apk

android studio 可以将apk导入,解析出AndroidManifest.xml文件.不用再使用工具那么复杂的解析了. Select Build > Analyze APK in the menu bar and then select your APK. 参考链接 https://developer.android.com/studio/build/apk-analyzer.html

如何用Android Studio打多包名APK

问题:项目中不同的分发渠道可能需要打包多种APK(同样的代码),包名可能是不一样的,如果一个一个修改包名重新编apk是很麻烦,可以参考下列步骤在Android Studio上操纵Gradle来打包不同包名的apk. 这里例子的目标是,同样的代码,打包成com.example.android.newsreader和com.example.android.newsreaderdev两个不同包名的apk 1. 首先在build.gradle的android节点中加入下列代码 productFlavor

Android Studio 之 打包生成的 apk 安装包装到手机上闪退

今天,在 Android Studio 中的模拟器中测试 app 程序正常,然后打包 apk 安装包程序,发给领导后,领导反馈安装后打开闪退,抓紧安装到自己手机上,发现果然存在闪退.查阅资料后,解决方案总结如下: 1.把 Android Studio 的 Instant Run 给关掉,File → Settings → Build,Execution,Deployment → Instant Run 如图: 注意:应该在" Project "状态下进行设置. 2.然后把所有生成缓存清

[Android Studio] Android studio 多渠道打包(超简洁版)

转载:http://xuyazhou.com/archives/461 http://relex.me/using-manifestplaceholders/ 最近一直用android studio 进行开发,在开发和发版的时候,遇到一个多渠道打包的问题,由于公司里是有七个渠道的包进行分发,由于每次去AndroidManifest.xml修改渠道的值,甚是麻烦... 最后去google了一番,发现有些方法,是在gradle文件里切换各种不同的AndroidManifest.xml文件,感觉这样也