android gradle如何修改生成的apk名字

前言

说实话,我在大法工作的时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且大法工具组的工程师还将其和Android Studio大法版一起推送,偶一看就更没兴趣了。为什么那个时候如此不待见Gradle呢?因为我此前一直是做ROM开发。在这个层面上,我们用make,mm或者mmm就可以了。而且,编译耗时对我们来说也不是啥痛点,因为用组内吊炸天的神机服务器完整编译大法的image也要耗费1个小时左右。所以,那个时侯Gradle完全不是我们的菜。
现在,搞APP开发居多,编译/打包等问题立即就成痛点了。

比如:

一个APP有多个版本,Release版、Debug版、Test版。甚至针对不同APP Store都有不同的版本。在以前ROM的环境下,虽然可以配置Android.mk,但是需要依赖整个Android源码,而且还不能完全做到满足条件,很多事情需要手动搞。一个app如果涉及到多个开发者,手动操作必然会带来混乱。

library工程我们需要编译成jar包,然后发布给其他开发者使用。以前是用eclipse的export,做一堆选择。要是能自动编译成jar包就爽了。

上述问题对绝大部分APP开发者而言都不陌生,而Gradle作为一种很方便的的构建工具,可以非常轻松得解决构建过程中的各种问题。

本文将详细介绍关于android gradle修改生成的apk名字的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

android gradle修改生成的apk名字

Android Studio打包应用默认生成的apk名称是:app-release.apk 、app-debug.apk

如果我们要让生成的apk名跟我们版本包名、渠道号有联系的话,那我们就要自定义生成的apk名了

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

android.applicationVariants.all {
  variant ->
   variant.outputs.each { output ->
    def outputFile = output.outputFile
    if (outputFile != null && outputFile.name.endsWith('.apk')) {
     def name = "qq_v${defaultConfig.versionName}_${variant.productFlavors[0].name}_${buildType.name}.apk"
     output.outputFile = new File(outputFile.parent, name)
    }
   }
 }
//多渠道
 productFlavors {
  tencent{
  }
  vivo{
  }
  oppo{
  }
 }

修改名字的地方

def name = "xxx_${defaultConfig.versionName}_${variant.productFlavors[0].name}_${buildType.name}.apk"
xxx:为你自己的工程名,自己起的标识- 比如 wx、qq、taobao
defaultConfig.versionName:版本号
variant.productFlavors[0].name:渠道标识
buildType.name:build方式release/debug
//这么写也可以
def name= "qq"+"_"+"v"+defaultConfig.versionName+"_"+variant.productFlavors[0].name+"_"+buildType.name+".apk"

然后使用命令打包

./gradlew assemble --会同时打debug和release的包

使用如上命令测试出包如图:

./gradlew assembleRelease --只打release的包

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对呐喊教程的支持。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。