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

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

前言

说实话,我在 * 工作的时候,就见过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

标签:android,gradle,apk名字
0
投稿

猜你喜欢

  • 详解Java单元测试之JUnit篇

    2023-06-12 16:42:13
  • 使用Jacoco获取 Java 程序的代码执行覆盖率的步骤详解

    2022-07-22 00:25:13
  • Flutter开发Widgets 之 PageView使用示例

    2023-06-24 13:23:34
  • SpringBoot如何使用ApplicationContext获取bean对象

    2023-06-28 20:36:55
  • SpringSecurity解决POST方式下CSRF问题

    2023-07-18 18:59:51
  • 10种简单的Java性能优化

    2023-06-20 20:43:41
  • Java List集合排序实现方法解析

    2023-01-06 05:40:14
  • java实现的冒泡排序算法示例

    2022-12-29 20:35:03
  • C#中Task.Yield的用途深入讲解

    2022-11-12 00:16:23
  • Java及数据库对日期进行格式化方式

    2023-08-23 12:27:52
  • C#中Clone一个对象的值到另一个对象案例

    2022-10-11 21:41:14
  • 利用java实现二叉搜索树

    2023-10-25 13:25:07
  • Android编程之selector下设置背景属性值的方法

    2023-08-23 08:07:49
  • Android编程开发ScrollView中ViewPager无法正常滑动问题解决方法

    2023-12-15 01:21:32
  • C#实现异步编程的方法

    2022-03-01 22:43:27
  • Java多种经典排序算法(含动态图)

    2023-09-24 00:45:02
  • Android巧用XListView实现万能下拉刷新控件

    2023-07-25 00:33:03
  • JAVA实现基于Tcp协议的简单Socket通信实例

    2022-07-07 21:44:36
  • java多线程抓取铃声多多官网的铃声数据

    2023-12-18 23:20:05
  • 详解Elasticsearch如何把一个索引变为只读

    2023-01-22 12:00:59
  • asp之家 软件编程 m.aspxhome.com