软件编程
位置:首页>> 软件编程>> Android编程>> android gradle如何修改生成的apk名字

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

作者:李笑笑哈哈  发布时间:2023-03-09 23:38:56 

标签: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的包

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

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


./gradlew assembleRelease --只打release的包

来源:http://www.jianshu.com/p/7f69ce981e6f

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com