了解build.gradle

原创 2016年08月30日 21:17:44

              每个使用Android Studio编写Android工程的时候,都会好奇是怎么把工程编译成apk的,这就不得不说说一个比较重要的编译工具gradle,而工程里面能遇到gradle的文件也比较多。

文件settings.gradle里面是依赖的module,工程有几个module就有几个,比如:

include ':app', ':testaar'。这个就是有apptestaar两个module

文件local.properties里面是工程的sdkndk的路径,比如:sdk.dir=D\:\\Software

\\android-sdk-win

文件gradle.properties里面是一些gradle里面用到的变量,常用的有设置网络代理和设置

jvm的参数等。比如:org.gradle.jvmargs=-Xmx2g。如果设置了代理就可以下载gradle的依赖。

文件build.gradle是最复杂的,内容比较多,工程最外面的build.gradle是适用整个

工程的配置。单个module里面的build.gradle是适用该module的设置,下面依次说明。


   这个是添加gradle的配置,也就是说这是给gradle使用的。repositories里面的配置参数是一个仓库的地址,当gradle的配置和本地不匹配的时候,就会从这个仓库里找一个匹配的版本去下载。dependencies是gradle的编译工具版本,如果版本不合适,也会去重新下载。第一次使用因为没有这些配置,默认都会去下载的,后面如果别人工程和你的配置不一致,你可以参考你第一次下载的配置,修改配置,这样就不用重新去下载配置了。


   这句话表明这个module是一个纯android应用,对应的还有另外一个’com.android.library’,代表的意思这个module是一个库;当然如果不确定是那个类型,可以偷懒写’android’也是可以的。其实还有其他的插件,比如写在最后的’java’,就表示引入了gradlejava插件而不是android的了。


   这个和buildscript很类似,但是含义差别很大。这个是供工程使用的配置,而不是给gradle使用的。repositories指定的就是存放jar或者aar等库文件的位置,一般都是工程的libs里面;dependencies是需要编译打包到工程里面的必要库文件,第一句是把libs里面的所有jar文件打包进去;后面是把一些需要的aar文件打包。

android{}这个是对Android工程编译说明,可编程性很强,所以内容也比较多。


   signingConfigs是签名相关说明,工程可以有多个签名,常用有debug和release两种,这里给的是release的。里面的四个参数分别表示签名文件名,签名文件密码,签名的key别名,签名的key密码。不过有些文章说为了密码安全,简易把这些写到一个配置文件里面,然后把配置文件不加入版本控制里面,这样就不是所有开发者都知道这个密码,个人感觉没必要,正直!


   这个是编译的sdk版本和编译工具的版本。


   打包的时候把列出来的文件排除在外,这里是指把所有.apk的文件都不打包。


   dex选项,可以设置一些dex的属性,这里是设置了最大堆大小。


   这个是编译时程序分析工具的设置,有很多属性,这里的abortOnError是指遇到错误是否会停止编译,设置成false意思就是遇到错误依然会继续编译。


   这个是android工程的默认配置,applicationId是程序的ID,和包名有区分;signingConfig是使用的签名,后面参数是release那个签名;versionCode和versionName是版本信息,这里采用的是从一个自定义函数里面获取的,获取路径是AndroidManifest.xml里面定义的版本号和版本名称。自定义函数就是调用系统的方法,如下图。




   sourceSets是指定代码或者资源,库文件等源的位置。可以通过设定不同的源,来编译不同的包。注意里面的写法,可以有很多种。


    buildTypes是构建类型,可以同时构建多个渠道包,这里写了debug和release两种类型,其中有一些参数,signingConfig是签名相关,debuggable是否打开调试开关,minifyEnabled是否打开混淆,shrinkResources是否删除未使用资源,如果设为true,在没有资源需要减少时反而增加了size。


   productFlavors是构建不同渠道的包,里面可以自己添加渠道和渠道的一些信息。

参考的文章有:

http://avatarqing.github.io/Gradle-Plugin-User-Guide-Chinese-Verision/index.html

http://ask.android-studio.org/?/article/40






版权声明:本文因海牛宝宝童鞋才疏学浅,可能晦涩难懂,但也是呕心沥血之作,麻烦转载的时候留个申明。

Gradle Build速度慢解决方案

2018/1/8 11:16:00 先看效果,配置后: 平均28s,当然这个还是要看项目情况未优化前: 将近5分钟gradle.proerties 文件org.gradle.daemon=tru...
  • tianbo_zhang
  • tianbo_zhang
  • 2018年01月08日 11:25
  • 31

【转载】详解build.gradle

转载自:http://blog.csdn.net/xx326664162/article/details/48462881AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解...
  • u011412234
  • u011412234
  • 2017年06月21日 14:40
  • 93

android开发项目中的build.gradle文件介绍

在开发android项目中,我们通常会遇到两个build.gradle文件。如下图所示: 一个用于整个项目,另一个用于app应用模块。应用于整个项目的内容很少,没啥好解释的,内容保持默认不变...
  • m0_37222746
  • m0_37222746
  • 2017年01月12日 11:45
  • 2906

build.gradle 的设置和相关说明

build.gradle 的设置和相关说明 //声明启用android 应用插件 apply plugin: ‘com.android.library' //依赖包 dependencies{...
  • loveanao
  • loveanao
  • 2015年09月28日 21:26
  • 4904

AndroidStudio升级2.3.1gradle无法升级导致build卡主问题解决

那首先要明白一个问题,就是墙和VPN,这个不懂得,自己找度娘问去。 最悲伤的时候就是配置都对了没挂VPN下不动。 无论你是2.2还是升级2.3如果失败了,最好自己去配置下。下面给出...
  • q172107875
  • q172107875
  • 2017年05月03日 00:51
  • 405

关于build.gradle文件操作

有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com...
  • chy6575
  • chy6575
  • 2016年06月17日 17:04
  • 1116

Android 项目开发必备-建立属于你的build.gradle文件

开发一个Android项目不仅仅需要你会写java/kotlin代码,而且你还要了解各种配置文件。例如。AndroidManifest.xml,混淆文件,build.gradle等。这里面最难理解也是...
  • qq_40239822
  • qq_40239822
  • 2017年12月18日 10:25
  • 46

android 多渠道打包,build.gradle文件配置、manifest文件配置

build.gradle apply plugin: 'com.android.application' android { signingConfigs { SP {...
  • u010566681
  • u010566681
  • 2016年08月01日 14:16
  • 1265

加快AS的Gradle Build速度

随着项目的代码以及依赖库的日益增多,构建的速度却是越来越慢,Android Studio2.0 之后提供了Instant Run貌似福利来了,但经过一段时间的使用发现不尽如人意,最大的吐槽点是首次编译...
  • xsl_bj
  • xsl_bj
  • 2016年07月04日 11:34
  • 3287

build.gradle文件详解

一个普通的android项目工程里面有两个build.gradle文件,一个位于根目录,一个位于app文件夹内. dependencies里面的classpath声明的一个Gradle的插件,因为g...
  • caoyangyang123
  • caoyangyang123
  • 2017年03月22日 22:23
  • 464
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:了解build.gradle
举报原因:
原因补充:

(最多只允许输入30个字)