之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。

晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。

详细记录如下:

1、打开app这个directory下的build.gradle

2、定义打包时间:

//时间

def releaseTime() {

return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

}

3、自定义发布时的版本号(return的返回值可自行修改,例如1.0、2.0):

//版本号

def getVersionName(){

return "2.0"

}

4、自定义打包名称(代码中的XYZ可修改为app名字):

//名称

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

def fileName

if (outputFile != null && outputFile.name.endsWith('.apk')) {

if (variant.buildType.name.equals('release')) {

variant.mergedFlavor.versionName = getVersionName()

fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

} else if (variant.buildType.name.equals('debug')) {

variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

}

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

5、build.gradle的完整代码:

apply plugin: 'com.android.application'

//定义时间

def releaseTime() {

return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))

}

//设置发布时的版本号

def getVersionName(){

return "2.0"

}

android {

compileSdkVersion 26

buildToolsVersion "26.0.0"

defaultConfig {

applicationId "***"

minSdkVersion 14

targetSdkVersion 23

versionCode 1

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

buildConfigField("boolean","API_DEBUG","false")

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

debug {

buildConfigField("boolean","API_DEBUG","true")

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

//配置打包名称

applicationVariants.all { variant ->

variant.outputs.each { output ->

def outputFile = output.outputFile

def fileName

if (outputFile != null && outputFile.name.endsWith('.apk')) {

if (variant.buildType.name.equals('release')) {

variant.mergedFlavor.versionName = getVersionName()

fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"

} else if (variant.buildType.name.equals('debug')) {

variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()

fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"

}

output.outputFile = new File(outputFile.parent, fileName)

}

}

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

exclude group: 'com.android.support', module: 'support-annotations'

})

}

Android打包 & Gradle用法

Ref: Maven仓库上查插件最新版本号The Central Repository Search Enginehttp://search.maven.org/#search%7Cga%7C1%7C ...

Android打包的那些事

使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进.在此,把这些相关的东西记录,做一总结. 1. 替换AndroidManifes ...

unity3d在菜单栏,一键设置Player setting及自动打包并设置apk的存储位置

项目进行中,领导要求能够进行一键设置Player settings及自动打包并设置apk的位置,所以自己就上网搜索了很多大神的文章.最后是完成了领导需要的功能,在这里记录并分享一下(此项指针对安卓ap ...

ionic3应用的Android打包签名发布步骤

版权声明:本文为博主原创文章,未经博主允许不得转载. 当我们的ionic应用开发结束之后,就要开始上线到应用市场,那么Android的发布步骤具体是怎么样的呢? 1)编译 运行命令行: ionic c ...

RN在Android打包发布App

参考资料:http://www.jianshu.com/p/b8811669bcb6 RN在Android打包发布App 1-:生成一个签名密钥你可以用keytool命令生成一个私有密钥.在Windo ...

[原]Android打包之Eclipse打多渠道包

Android自动打包流程详细图: 步骤一和步骤二参考:[原]Android打包之Eclipse打包 步骤三:编写build.xml <?xml version="1.0" ...

&lbrack;转&plus;补&rsqb;Android打包so后魅族5中安装运行崩溃问题的解决方法

上周在做噪音检测so集成中,遇到不同的so库打包到 APK 时,安装在某些机器上,出现 java.lang.UnsatisfiedLinkError 加载失败. 为此,深究了一下原理,和给出了解决方案 ...

Android学习路线(十九)支持不同设备——支持不同&lpar;Android&rpar;平台版本号

当最新的Android版本号为你的应用提供着非常棒的APIs时.你却要在很多其它的设备更新之前继续支持老的系统版本号.这篇课程怎样在继续支持低版本号的系统的情况下使用新版本号的高级API. Platf ...

Android提示版本号更新操作流程

Android提示版本号更新操作流程 2014年5月8日: andorid的app应用中都会有版本号更新的操作,今天空暇的时候就花了点心思弄了一下.主要技术方面用到了AsyncTask异步载入.htt ...

随机推荐

php 执行程序分析

记录程序运行细节 记录程序运行时间 <?php $start = microtime(true); //index.php $end = microtime(true); $time = num ...

HDU1402 A &ast; B Problem Plus(FFT)

http://acm.hdu.edu.cn/showproblem.php?pid=1402 初学FFT. http://www.cnblogs.com/WABoss/p/FFT_Note.html ...

JavaScript里面三个等号和两个等号有什么区别?

1.对于string,number等基础类型,==和===是有区别的 a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 b)同类型比较,直接进 ...

java web 学习三(Tomcat 服务器学习和使用2)

一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

hdoj 4183 Pahom on Water

Pahom on Water Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

CSS常见问题及兼容性

CSS常见问题 1 (IE6,7)H5标签兼容 解决方法1:(只显示核心代码) 1

iOS 开发中中 textView 作为子控件点击输入文本,然后退出文本的方式

方式1. 使用当双击输入的时候弹出键盘同时,使用手势和通知监听键盘的方法实现 代码如下: 1. 监听键盘通知 [[NSNotificationCenter defaultCenter] addObse ...

Core Animation 文档翻译 (第四篇)

Core Animation 文档翻译(第四篇) 让Layer的content动画起来 核心动画的基础接口以及为拥有Layer的View做的动画扩展接口,使得为Layer制作复杂动画变得简单化.例如改 ...

js 解密

需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...

dos命令 创建数据库,建表,两表联查,三表联查(mysql---第一篇)

首先打开mysql的控制台,输入密码进行登录  (ps:本文的mysql控制台,是运用的php的集成环境(phpstudy),点击运行,找到mysql命令行,直接打开就可以了) 登陆成功后,就可以进行 ...

android 打包版本号,Android打包版本号设置相关推荐

  1. Android Studio Gradle打包实践之多渠道+版本号管理

    上次介绍了 Android Studio的安装.配置和基本使用 .这次讲一下Android Studio用到的打包工具Gradle. Gradle 是一种构建项目的框架,兼容Maven.Ant,为Ja ...

  2. Android 工程打包资源文件-OBB文件设置

    Android 工程打包资源文件-OBB文件设置 设备/引擎:Mac(11.6)/cocos 开发工具:Android studio(4.1.2) 开发语言:java 开发需求:对工程的资源文件进行打 ...

  3. android ndk 编译虚幻4,[UE4]Android 打包步骤与keystore生成设置

    官方文档步骤: https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/index.html 注:这里演示使 ...

  4. Android 将音乐文件打包到程序中并设置为铃声的详细方法介绍

    本文主要介绍如何将音乐文件打包到程序中并设置为铃声 首先,将我们的铃声文件放到res/raw目录下,没有的话就建一个raw目录 如图 canon.mp3文件放到raw目录下 然后在程序里读取这个文件: ...

  5. android打包工具多渠道批量打包,Android 快速渠道批量打包详解教程-美团多渠道打包方案...

    今天写一篇文章来总结下android批量打渠道包美团版本.之前项目上一直用的是gradle 批量打包方式,那个速度啊真是令人发指,15个渠道得跑上半个小时,出去吃顿饭回来,还在跑.特别是赶上项目上线的 ...

  6. java调用android打包_Android Gradle打包基础

    Android gradle打包基础 gradle目录 [代码]java代码:12345MyApp├── build.gradle ( 可以查看Gradle的版本 )├── settings.grad ...

  7. Gradle 实现 Android 多渠道定制化打包

    最近在项目中遇到需要实现 Apk 多渠道.定制化打包, 查找了一些资料,成功实现了上述功能,在此记录以备不时之需,温故而知新,可以为师矣~ 需求可以总结如下:  如何实现多个 Apk 安装在同一设备 ...

  8. [置顶]Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  9. android多渠道打包插件,Android几种多渠道打包的步骤详解

    1.什么是多渠道打包 在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包.在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的 ...

最新文章

  1. 源码编译安装mysql
  2. ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发
  3. Orleans—一些概念
  4. 漫话:为什么你下载小电影的时候进度总是卡在99%就不动了?
  5. C++ Primer 第五版 第6章 6.2——函数参数传递习题答案
  6. c语言16位字节只能用到255,《C语言程序设计》月考试题(第三章).doc
  7. 提升Hive操作Amazon S3读写数据的性能
  8. 暴雪战网重装失败问题解决
  9. Android中通用配器的使用
  10. 新型超级电容/法拉电容介绍
  11. php微信小程序 留言功能,微信小程序评论/留言功能,附:前端+后端代码+视频讲解!...
  12. BUUCTF MD5
  13. 衡量两个向量相似度的方法:余弦相似度
  14. 薛兆丰经济学思维研究:权利的经济学讨论
  15. Hadoop集群搭建之SSH无密码登录配置
  16. 系统架构设计师-软件开发模型(瀑布模型)
  17. 第七届全国大学生工程训练综合能力竞赛(工训赛) 智能配送无人机赛项 省赛心得
  18. CentOS_计划任务之At
  19. ClickHouse之mysql引擎
  20. Leetcode 273.整数转换英文表示

热门文章

  1. PS无法储存或导出文件,请问有小伙伴可以帮忙解答一下吗?非常感谢!!!
  2. 低概率事件在样本量足够大时总会出现
  3. 强大的终端模拟器:Termux
  4. Java节流阀设计与实现
  5. https网站 支持百度API解决方法
  6. html怎么复制到Excel表格里,网页上的简历表格怎么复制到excel
  7. 作为一个十年卷王,告诫你们年轻人应该如何才能认清自己的价值
  8. 分享6款优秀的 AR/VR 开源库
  9. 三层架构理解(表现层、业务层、持久层)
  10. 内网上传、浏览“AV 信息”,一员工被百度开除了!