一、写在前面

1.1、生成apk自定义路径

AS开发工具打包时默认是生成到项目App模块里面的build文件夹下,但是我们在服务端维护(托管)项目代码的时候,通常会过滤掉build文件夹,这样的话就有个问题,我们没法在服务端托管生成的apk文件,apk在版本备份的时候如果能跟代码一起打入tag,能帮助我们后期根据应用版本快速找到当时打的apk包。
所以我们在生成生产版本的Apk时,指定生成的路径就派上用场了。

1.2、自定义Apk名称

详细的apk名称可以帮助我们快速定位某个版本的apk在打包时是如何选择变体等信息的,所以我们可以把觉得有用的信息在打包的时候就自动添加到生成的Apk名称中。

二、Sample

android {//...defaultConfig {applicationId "com.yann02.sample"versionCode 10001versionName "V1.0.1"//...}productFlavors {free {dimension "role"//...}vip {dimension "role"//...}//...}//...android.applicationVariants.all { variant ->def createTime = new Date().format("YYYY-MM-dd_HH.mm")if (variant.buildType.name == "release") {//  将release版本放到项目的apks文件夹下,其它编译类型使用默认生成路径即可variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/apks/${variant.buildType.name}/${createTime}")}variant.outputs.all {if (variant.buildType.name == "release") {outputFileName = "${defaultConfig.applicationId}_${variant.flavorName}_${variant.buildType.name}_${defaultConfig.versionName}_${defaultConfig.versionCode}_${createTime}.apk"}}}//...
}

三、分析上面的Sample

上面的样例设置了只对release编译类型的生成包做处理,包括常用的如何获取应用打包时生成Apk名字常用到的关键字段信息
获取应用包名:defaultConfig.applicationId
获取应用版本名称:有两种方式

  • defaultConfig.versionName
  • variant.versionName

获取应用版本号:有两种方式

  • defaultConfig.versionCode
  • variant.versionCode

获取应用变体:有两种方式

  • variant.flavorName
  • variant.productFlavors[0].name

获取编译类型:variant.buildType.name
使用时间:可根据个人需要设置格式,我这里精确到了时分,不含秒

  • new Date().format("YYYY-MM-dd_HH.mm")

Noteworthy:我这里用到了自定义生成apk的路径,每个路径下只能生成一个apk包,打包时系统会替换掉旧的apk包。
我这里用时间来生成路径,以保留历史安装包。可酌情使用,非必要。
不要修改debug类型的输出路径,否则会影响调试,包括查看输出的log。

四、相关的文章

这里记一个相关的安卓官方的关于配置应用打包时根据不同配置参数构建多个不同apk配置的文章构建多个APK

android自定义Apk名称和指定生成的路径相关推荐

  1. Android 自定义apk名称

    Android studio默认生成的apk的名字,一般默认是app-debug.apk,想要自定义apk名称在build.gradle中添加: android {android.applicatio ...

  2. android 自定义apk名,Android Studio多渠道打包、自定义打包APK名称

    现在为了推广产品,会在多个渠道应用市场发布应用,为了统计不同渠道的数据,需要在应用中表明渠道,如果一个一个去修改打包效率会很低.AS为我们提供了简便的方法,可以多渠道打包,一次打包所有的渠道包. 1. ...

  3. android 自定义apk名,Android Studio 打包自定义apk文件名

    使用Android Studio打包的时候,我们有时候需要自定义apk的文件名,在此记录一下. 在app的build.gradle中,根节点下使用关键词def声明一个全局变量,用于获取打包的时间,格式 ...

  4. android获取apk名称_安卓逆向——APK安装流程

    制丨文生 整理丨阿星 很多学习安卓逆向的朋友大多都会卡在安卓apk上,今天小生就来给大家讲解一下,安装apk的流程,希望能帮助到大家. 安装方式: ⑴系统程序安装 ⑵通过Android市场安装 ⑶手机 ...

  5. Android Studio生成APK自动追加版本号 自定义apk名称 指定签名证书文件

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/50538148   文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...

  6. android获取apk名称_apk瘦身;如何缩小体积呢?这篇文章来教你

    转载请声明出处! 前言 我们完成一个app后,都需要生成一个apk,然后上线,而apk的大小也一定程度的影响了用户是否愿意下载你的这个app,所以也就有了apk瘦身这门艺术. 目录 apk的结构图片压 ...

  7. android获取apk名称_apk是什么文件

    很多人在手机上安装软件时会发现有一个叫apk的文件,这就让人产生疑惑了,apk是什么文件,apk文件怎么打开呢?下面就个大家介绍一下吧. apk是什么文件 APK是Android Package的缩写 ...

  8. Android 自定义APP名称

    在app的gradle中添加,然后签名打包的时候就会换成自己修改的名字啦 android.applicationVariants.all { variant ->variant.outputs. ...

  9. android 自定义模板下载,android studio 自定义模板

    由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...

最新文章

  1. LATEX 在section层级目录上也加上虚线
  2. C#和Unity编码和游戏开发学习教程
  3. 汇总|SLAM常用linux命令,包括文件查找、查看文件大小、设置环境变量等
  4. Select 标签可输入
  5. 【学习/研发】嵌入式Linux/Android开发有它就够了——迅为4412开发板
  6. Error和Exception有什么区别?(还在总结)
  7. ubuntu环境下使用cat命令合并代码
  8. 时间序列预测系统α版本迭代总结
  9. C++安全方向:openssl,剧场版,一个字节多少位
  10. 使用Eclipse编写Processing小程序
  11. 详解spring 每个jar的作用(转)
  12. 分布式锁是啥?对比下redis和zk两种分布式锁的优劣?
  13. Excel VBA与VSTO基础实战指南 VBA和VSTO权威教材
  14. windows 7 64位 刷J-Link固件 无法识别成串口时 安装 sam-ba at91 usb to serial converter 驱动不成功的解决办法
  15. NCM转MP3神奇的网页
  16. 【论文快读】DeepFool(2016)
  17. hardhat 教程及 hardhat-deploy 插件使用
  18. python给全局变量赋值_Python 进程之间共享数据(全局变量)的方法 python 全局变量赋值的问题...
  19. M八七电影《新·奥特曼》主题曲歌手:米津玄師罗马音注释
  20. 看京东和淘宝的地址薄设计----填写订单的场景下

热门文章

  1. 二叉树(类模板、函数模板、函数对象、函数指针)
  2. 有人/无人机协同作战模式及关键技术研究
  3. 【认知智能】邓志东教授:如何迈向认知智能与通用人工智能
  4. 黑牛外汇交易系统2007年12月27日做单记录
  5. dev中循环展示图片的样式怎么写_DevExpress:可左右滑动的图片框的ImageSlider
  6. 昆仑通态触摸屏通讯ABB ACS530变频器恒压供水 ABB变频器恒压供水触摸屏通讯程序
  7. file not found
  8. UeeShop 如何对接轮询系统
  9. 如何修复火狐浏览器的乱码问题(最新版)
  10. informatica powercenter 9.6.1测试迁移数据