BuildConfig 前面文章有简要提到,这次详细介绍每个命令代表什么。

这个功能非常强大,我们可以通过在这里设置一些key-value对,这些key-value 对在不同编译类型的 apk 下的值不同,比如我们可以为debug 和release 两种环境定义不同的服务器

先来看下简单的release模式

buildTypes {release {//是否开启混淆minifyEnabled true      //混淆文件    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}

对应的build是这样的:

你可能会问,没有设置debug版本,为啥有一个assembleDebug,其实你不设置release配置,assembleRelease也存在,因为debug,release是默认的配置。

我们可以加一些其他type。比如beta用于平时开发,这个命令打出来的包,日志开关开着,并且没有混淆,方便定位错误。proguard用于测试即将发布的版本,日志开关开着,加代码混淆,主要验证代码混淆后是否有异常,并且可以根据日志定位错误。

buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}beta {minifyEnabled true}proguard{minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}

再次查看我们的task,发现多了这些task

发布apk包,需要签名,非常简单只需要在对应的buildType下设置signingConfig

  signingConfigs {release {keyAlias 'keystore'keyPassword '111111'storePassword '111111'storeFile file('/Users/keystore/Documents/app/stone.keystore')}}buildTypes {release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}beta.initWith(buildTypes.debug)beta {minifyEnabled truesigningConfig signingConfigs.release}proguard{minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}}

signingConfig这个没什么说的gradle的api,signingConfigs.release中的signingConfigs对应signingConfigs task,这名称也不能修改,照着写就行了;signingConfigs.release中的release是自定义的,你可以随意定义,也可以根据buildType定义多套签名,一般为了方便,使用一套签名就ok

其他关于buildType的属性请查阅官网

Gradle 配置 BuildConfig详解相关推荐

  1. build.gradle配置参数详解

    转载地址:http://blog.csdn.net/baidu_31093133/article/details/51860637 build.gradle配置参数详解//声明是Android程序ap ...

  2. Android Gradle 自定义Task详解二:进阶

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78523958 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  3. Android Gradle 自定义Task 详解

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  4. Ehcache配置参数详解

    ehcache配置参数详解 <?xml version="1.0" encoding="UTF-8"?><ehcache><dis ...

  5. Apache+PHP配置过程详解

    Apache+PHP配置过程详解 经过两晚上的奋斗终于将Apache配置PHP成功,安装配置过程中走了不少弯路,特记录之. 1.Apache配置PHP个人认为首先要注意的是Apache和PHP的版本信 ...

  6. 九爷带你了解 nginx 日志配置指令详解

    nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...

  7. Cocos2d-x win7 + vs2010 配置图文详解(亲测)

    Cocos2d-x win7 + vs2010 配置图文详解(亲测) 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为coc ...

  8. Java编程配置思路详解

    Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...

  9. hibenate5.1配置mysql_hibernate5.2的基本配置方法(详解)

    目标:将Student实体对象加入数据库 1.首先需要下载三个东西:hibernate,slf4j,mysql. 2.分别取他们的包导入新建的项目中,我这里的版本是:hibernate-release ...

  10. ASP.NET Core的配置(2):配置模型详解

    在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...

最新文章

  1. python中赋值不正确的_python中的“赋值与深浅拷贝”
  2. LayaBox IDE 安装后执行项目报错解决方案的一些记录
  3. 来自网页的消息服务器繁处理忙,EventSource 对象用于接收服务器发送事件通知,是网页自动获取来自服务器的更新...
  4. linux如何在C程序中使用exit,c语言exit和return区别,在fork和vfork中使用
  5. css鼠标经过table文字变色,有没有可能用css实现当table被鼠标hover的时候,table列变色?...
  6. 专业英语笔记:Install and Use Python
  7. ubuntu无法设置亮度,触摸板失效,声音无法调节
  8. 无向带权图的存储结构_每天5分钟用C#学习数据结构(27)图 Part 8
  9. optisystem中器件的学习(4-Test Sets/Passives Library/Optical Switches)
  10. 3ds Max2021安装步骤详解
  11. 计算机人工智能领域英文文献,人工智能 英文文献译文
  12. 机器学习:k-means聚类效果评估
  13. clonezilla(clonezilla备份系统)
  14. Tony.SerialPorts.RS232串口参数配置模块:扫描事件例程
  15. 在Centos7下捣鼓邮件发送软件sendmail与postfix
  16. 零基础的人怎么备考二建
  17. 百度实体链接比赛后记:行为建模和实体链接(含代码分享)
  18. InnoDB内存架构之日志缓冲区
  19. excel计算标准分
  20. Unity3D摄像机Camera参数详解

热门文章

  1. 【博弈 —— NIM模型】
  2. linux openfire mysql_Linux系统安装openfire及其如何后台运行openfire
  3. oracle的成本核算,Oracle11gR2全表扫描成本计算(工作量模式-workload)
  4. Netty学习(三)高性能之ByteBuf源码解析(篇幅较长)
  5. 判断一个字符串出现次数最多的字符,并返回这个字符和次数
  6. jQuery als.js 跑马灯
  7. BZOJ 1011: [HNOI2008]遥远的行星( )
  8. TCP/IP 原理 -- ICMP:因特网控制报文协议
  9. 10010序列检测器的三段式状态机实现(verilog)
  10. Netty阶段性学习总结(一)