Android Gradle配置构建

使用gradle构建不同的应用名和图标

详情可以参考学习链接 文章链接

对于manifest中字段,可以在gradle中通过manifestPlaceholders来进行配置,具体的写法manifestPlaceholders=[key:value]
例如我想在debug版本和release版本通过appname和icon进行区分的话可以在buildType中进行如下的配置

debug{manifestPlaceholders = [app_icon:"@drawable/ic_launcher_debug" ,label:"@string/app_name_debug"]
}

然后对应的manifest文件

<applicationandroid:icon="${app_icon}"     //替换iconandroid:label="${label}"     //替换名字tools:replace="android:icon,android:label"> //在进行包合并时,声明替换icon和name

在release中也可以进行相应的配置,但是如果是多渠道打包的话,则在productFlavors来构建不同的变体,如下示例

productFlavors{huawei{manifestPlaceholders=[app_icon:"@drawable/ic_huawei",label:"@string/app_name_huawei"]}oppo{manifestPlaceholders=[app_icon:"@drawable/ic_oppo",label:"@string/app_name_oppo"]}xiaomi{manifestPlaceholders=[app_icon:"@drawable/ic_xiaomi",label:"@string/app_name_xiaomi"]}
}

如果配置还需要配置不同的友盟key或者secret的话,同样的方式,只需要在manifestPlaceholders中增加字段就行了

自定义gradle文件

如果配置信息太多的话,可以自定义一个gradle文件中,比如在工程目录下新建一个config.gradle的文件,在里面需要定义一些字段,可以这样写

ext{youmeng=[app_key:123456,app_secret:123456]baidu=[app_key:123456,app_secret:123456,app_name:"百度相关"]
}

在module对应的gradle下面,可以通过rootProject来拿到自定义文件中的字段,写法如下

rootProject.ext.youmeng.app_key
rootProject.ext.baidu.app_name

当然有些字段是需要Java代码中需要的,那么就需要通过buildConfig对象来获取,因为每一个module在构建时,都会有一个buildConfig对象的生成,我们可以通过自定义一些字段,来方便自己获取,写法如下buildConfigField(type,key,value)

buildConfigField("String","app_msg","\"hello world\"")     //如果是字符串的话,一定要添加转义符,不然双引号会被过滤掉进行报错
//在Java代码中,只需要通过buildConfig来直接条用就可以了(一下为Java代码)
System.out.println(BuildConfig.app_msg)     //输出 hello world

当然最重要的是在使用自己自定义的gradle文件时,需要在项目的build.gradle文件中的头部添加 apply from:“config.gradle”,不然会找不到config文件而报错

配置签名等属性

在gradle中配置签名各种信息后,在build的时候,就不需要在进行输入密码之类的具体配置模板

signingConfigs{debug{}release{keyAlias:"xxxx"  //对应签名时的keyAliaskeyPassword:"xxx"     //对应签名是的keyPasswordstoreFile  file("xxx.jks")     //对应签名文件storePassword:"xxxx"      //对应签名是的storePasswordv1SigningEnabled  true     //使用v1签名方式v2SigningEnabled  true        //使用v2签名方式}
}

在buildType配置中使用签名配置

buildType{debug{signingConfig signingConfigs.debug}release{signingConfig signingConfigs.release}
}

关于Android构建的更多信息,请参见官方资料官方链接

Android使用gradle打包的各种配置

Android Gradle配置构建相关推荐

  1. Android gradle配置签名文件

    项目场景: 使用命令行生成apk的时候自动签名 打包命令 Linux # 同时生成release和debug的apk ./gradlew clean build ./gradlew clean ass ...

  2. Android Gradle 配置阿里仓库镜像

    Android Gradle 配置阿里仓库镜像 阿里云镜像官网地址:https://developer.aliyun.com/mvn/guide 配置如下: // Top-level build fi ...

  3. Android 开发使用 Gradle 配置构建库模块的工作方式

    Android 开发过程中,我们不可避免地需要引入其他人的工作成果.减少重复"造轮子"的时间,投入到更有意义的核心任务当中. Android 库模块在结构上与 Android 应用 ...

  4. android gradle 设置,android gradle配置指南

    Gradle简介 Gradle 是一个基于Ant和Maven概念的项目自动化建构工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,这比我们的ANT使用XML构建配置要灵活的多.在 ...

  5. Android Gradle 配置Java src目录、Res 目录

    工程目录: 我们看到,在Java目录里面,每一个目录下都是一个模块,每个模块都有自己的res目录. Gradle 配置如下: def srcDirs = ['application','applica ...

  6. 【错误记录】Android Gradle 配置报错 ( gradle.properties 配置到 BuildConfig 中需要注意类型转换 | 位置: 类 BuildConfig )

    文章目录 一.报错信息 二.解决方案 一.报错信息 报错信息 : D:\002_Project\002_Android_Learn\ClassLoader_Demo\app\build\generat ...

  7. 读书笔记--Android Gradle权威指南(上)

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 最近看了一本书<Android Gradle 权威指南>,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所 ...

  8. Android Gradle学习(一)

    文章目录 一.Gradle及Groovy简介 1.Gradle及自动化构建 (1)Gradle介绍 (2)为什么要学习Gradle (3)关于项目构建 (4)安卓自动化构建发展史 (5)Gradle提 ...

  9. Android Gradle的基本概念梳理(二)

    前言 逐步整理的一系列的总结: Android Gradle插件开发初次交手(一) Android Gradle的基本概念梳理(二) Android 自定义Gradle插件的完整流程(三)       ...

  10. 【错误记录】Android Studio 配置 AspectJ 报错 ( all buildscript {} blocks must appear before any plugins {} )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 配置 AspectJ 报错 : Build file 'D:\002_Project\002_Android_Le ...

最新文章

  1. 关于ES6中Promise的应用-顺序合并Promise,并将返回结果以数组的形式输出
  2. 适合初学者对Yaf框架的学习(一)
  3. Vmware虚拟机网络模式NAT模式
  4. 线程间通信————同步
  5. 卡巴斯基公布7月中国地区20大恶意软件排行
  6. struts2 s:property/标签的使用--输出时间格式转换
  7. 性能测试--jmeter结合charles,以及charles的基本使用【11】
  8. LeetCode: Combination Sum II
  9. android客户端服务器传输,【图片】【转】通过Android 客户端上传数据到服务器【aide吧】_百度贴吧...
  10. 塑料盖行业调研报告 - 市场现状分析与发展前景预测
  11. 对拳击“海盗式”打法特点的剖析
  12. 华为电脑和手机一碰传_华为手机怎么一碰传连接电脑传输照片和文件
  13. python实现multi函数参数个数不限、返回所有参数乘积_实现multi()函数,参数个数不限,返回所有参数的乘积。_学小易找答案...
  14. 数据结构之树的操作大全
  15. 项目经理需要的基本技能
  16. hangfire-简单开始
  17. composer init 命令详解
  18. 贪心算法的最优解条件
  19. 6大科研神器,科研党必备,至少提高效率90%
  20. 模拟SPI进行TF卡操作+Fatfs文件系统移植

热门文章

  1. 解决微信小程序Video 某些属性设置不起作用问题
  2. java中关于日期类Calendar的简单使用
  3. Party (Standard IO)
  4. 浅论教材砍压并补联的原则
  5. 关于 单窗口服务模型模拟 进行的小测试
  6. Android 文件系统路径
  7. gdb对应vc调试命令
  8. Android优美代码赏析:Snake游戏分析
  9. Mariadb数据库设置及操作 一主多从 备份还原(实测笔记)
  10. Java 使用BigDecimal类处理高精度计算