[Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行
来源:互联网 发布:淘宝保证金怎么套现 编辑:程序博客网 时间:2024/06/01 10:05
productFlavors对象可以用来分别定义产品不同的特性,使用它可以用一套代码创建不同的项目。productFlavors的使用有以下几种。
- 为产品设置不同的applicationId而编译出不同包名的APK,在app(module)目录下的build.gradle文件中加入productFlavors结构,代码如下:
productFlavors{ productA{ applicationId "com.gavinandre.product.a" versionName "version-a-1.0" } productB{ applicationId "com.gavinandre.product.b" versionName "version-b-1.0" }}
- 通过创建productFlavors对象,动态调整Build Variant的选项,更改AndroidManifest.xml中的meta-data标签的值,打包出不同的APK,代码如下:
//Module的build.gradle中productFlavors { SIT {} PRE {} PRD {}}productFlavors.all { flavor -> flavor.manifestPlaceholders = [ENV: name]}
//AndroidManifest.xml中<meta-data android:name="ENV" android:value="${ENV}" />
productFlavors.all这个方法就是遍历productFlavors对象,在其中给manifestPlaceholders的name属性赋值,动态改变ENV这个name标签的value的值。
然后通过选择Build Variant要打包的APK的选项动态调整选项:

另外,可以通过applicationVariants.all这个方法配制打包的名称:
applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = ''; def timeNow = getDate(); String env; if (outputFile.name.indexOf("SIT") != -1) { env = "sit"; } else if (outputFile.name.indexOf("PRE") != -1) { env = "pre"; } else if (outputFile.name.indexOf("PRD") != -1) { env = "prd"; } fileName = "RedBabyParkApp_${env}_${buildType.name}_${defaultConfig.versionName}_"+timeNow+".apk"; output.outputFile = new File(outputFile.parent, fileName) } }}
阅读全文
0 0
- [Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行
- 使用gradle的productFlavors实现Android项目多渠道打包
- 使用gradle的productFlavors实现Android项目多渠道打包
- 使用gradle的productFlavors实现Android项目多渠道打包
- 使用gradle的productFlavors实现Android项目多渠道打包
- AndroidStudio工程中的build.gradle中的buildTypes、productFlavors的多构建、多渠道打包APK
- Android 使用gradle的productFlavors实现多渠道打包
- Android多渠道打包:gradle的配置
- Android项目构建--gradle常用知识小结与多渠道多Apk打包
- Gradle 多环境、多渠道打包
- Gradle多环境多渠道打包
- productFlavors 实现多渠道多版本打包调试
- Productflavors 多渠道打包
- 多渠道打包(Gradle配置)
- Gradle配置多渠道打包
- Android Studio gradle 配置 多渠道打包
- Gradle App项目的多渠道打包实现
- Gradle Library项目的多渠道打包实现
- 时间戳转换时间
- [牛客网#35D 树的距离]离散化+线段树合并
- nil Nil NULL NSNull 之间的区别
- 异常 /C++
- ROS 学习记录
- [Android]配置Gradle的productFlavors构建项目用于多渠道打包或多环境运行
- 时间戳转几周前
- 如何突破Java程序员三年的门槛
- 论文笔记1:SummaRuNNer: A RNN based Sequence Model for Extractive Summarization of Documents
- Git-储藏(Stashing)
- MFC将ListCtrl列表导出到Excel-采用文件流写Excel兼容Html格式(不需要Excel环境)
- pm2 start 添加参数
- 页面跳转
- ubuntu16 无法调节亮度问题