Android Studio Gradle

文/stormzhang
原文链接:http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/
著作权归作者所有,转载请联系作者获得授权。

什么是Gradle?

Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

Gradle基本概念

下面讲述的代码是我第一次导入Trinea的android-Ultra-Pull-to-Refresh项目为例:

Android Studio Gradle_第1张图片
Android Project.png
  • build.gradle(Project:projectName)
    这个文件是整个项目的gradle基础配置文件
Android Studio Gradle_第2张图片
build_gradle_project.png

内容主要包含了两个方面:一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本。
buildscript//设置脚本运行的环境
repositories//支持java 依赖库管理(maven/ivy),用于项目的依赖。
dependencies//依赖包的定义。支持maven/ivy,远程,本地库,也支持单文件

  • build.gradle(Module:app)
    这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件

Android Studio Gradle_第3张图片
build_gradle_app.png

compile file(file/依赖文件)编译单文件依赖
compile fileTree 用于编译libs目录下的所有jar包
proguardFiles 这部分有两段,前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,免去了我们很多事,这个文件的目录在 /tools/proguard/proguard-android.txt , 后一部分是我们项目里的自定义的混淆文件,目录就在 app/proguard-rules.txt , 如果你用Studio创建的新项目默认生成的文件名是 proguard-rules.pro , 这个名字没关系,在这个文件里你可以声明一些第三方依赖的一些混淆规则。最终混淆的结果是这两部分文件共同作用的。
testCompile 用于添加测试依赖

  • build.gradle(ptr-lib)
    每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’
  • build.gradle(ptr-demo)
    Android Studio Gradle_第4张图片
    build_gradle_demo.png

    compile (project(':ptr-lib'))
    因为项目中还有其他的Module
  • gradle-wrapper.properties
    项目目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties
    Android Studio Gradle_第5张图片
    gradle-wrapper.png

    可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。
  • settings.gradle
    这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module
settings_gradle.png

你可能感兴趣的:(Android Studio Gradle)