[Gradle] Android Studio批量打包完全自定义APK包名
来源:互联网 发布:多益网络试用期被辞退 编辑:程序博客网 时间:2024/04/27 13:35
Gradle 本身是基于 Groovy 语法, 支持批量打包, 非常方便, 大家都知道的. 但在批量打包时, 肯定有个包名重命名的需求, 比如当前项目的 versionName 是 1.2.0, 用户在设备安装APK后所看到的版本号就是 v1.2.0. 当然, APK 应用还有个名称, 比如叫 AppName (当然, 这个名字随意啦, 一般都是英文单词组成), 然后有 3 个渠道, 比如是 appchina, tencent 和 hiapk.
然后, 一般默认打包出来的 APK 文件名都是类似这样: AppName-appchina-release.apk. 现在我们想在批量打包时, 还对这个名字完全重命名, 变成: AppName_appchina_v1.2.0, AppName_hiapk_v1.2.0 和 AppName_tencent_v1.2.0.
之前很流行一句话是吧, Talk is cheap, show me your code. 来吧, 直接上代码, 在项目的 build.gradle 文件中加入仅仅是以下少量的代码:
productFlavors { tencent { manifestPlaceholders = [CHANNEL_VALUE: "tencent"] } hiapk { manifestPlaceholders = [CHANNEL_VALUE: "hiapk"] } appchina { manifestPlaceholders = [CHANNEL_VALUE: "appchina"] } mumayi { manifestPlaceholders = [CHANNEL_VALUE: "mumayi"] } } applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File( output.outputFile.parent, output.outputFile.name.replace(output.outputFile.name, "AppName_"+variant.productFlavors[0].name+"_v${variant.versionName}.apk")) } }
versionName 的值随意, 这里是 1.2.0
有了前面的条件前提, 看上面的代码应该很容易理解. 用自定义的文件名直接替换整个文件名, 自定义的文件名前缀是 "AppName_", 后面加上当前的渠道号名称字符串, 再拼接上下划线 "_" 和当前 build.gradle 文件中 versionName 的值. 也就是, 最终文件名为, AppName_当前渠道号名称_v1.2.0.apk. 整个命名关键的两个变量是, 当前渠道号名称 和 版本号, 有了这两个值你就能按自己的需求重命名APK了对吧, 当然 Gradle 所支持 Groovy 的丰富语法不仅仅这点地方体现, 自己还可以在文件中编写获取新的命名的方法, 获取当前打包的日期, 或者获取versionCode, 等等. 这个, 以此抛砖引玉自行体会了哈.
最后打包结果是这样:
大功告成~
- [Gradle] Android Studio批量打包完全自定义APK包名
- Android Studio apk打包自定义包名
- gradle批量打包apk
- Gradle分渠道/包名/应用名打包Apk
- gradle批量打包Android apk:不同的包使用不同的icon、label
- Android Studio 批量打包,apk重命名
- Android Studio 批量打包(渠道包,最新基于Gradle 2.2.1、Android Plugin 1.2.3)
- 第十一篇 Android Studio配置gradle实现一键打包以及自定义apk的文件名
- Android Studio使用gradle打包指定包名和类的jar
- Android Studio 一个工程打包多个不同包名的APK
- Android Studio打包apk,aar,jar包
- Android Studio打包apk,aar,jar包
- android Studio打包apk,aar,jar包
- 【Android Studio】 AS 使用记录04(自定义打包apk名)
- android studio gradle打包,怎么样通过打不同的包名所依赖的项目不同,即所生成的apk大小不一样呢(每个apk不包含所有的依赖的项目)
- Android Studio 多渠道打包, 自定义APK名称
- Android studio 自定义打包APK名称
- Android studio 自定义打包APK名称
- 【web前端】聊聊MUI
- 以太坊的历史
- 数据类型
- 一看就懂的ReactJs教程
- 编程基本功训练:流程图画法及练习
- [Gradle] Android Studio批量打包完全自定义APK包名
- Linux查看日志命令
- TCP建立连接的过程
- 坚持#第1天~我的好兄弟
- 初识Android Handler机制
- 【Caffe安装】caffe安装系列——史上最详细的安装步骤
- 暑假训练-训练7 概率DP
- Bootstrap
- UNIX网络编程笔记(12)—非阻塞IO