一. 前言

1. Gradle是什么?

Gradle是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它使用一种基于 Groovy 的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于 Java,Groovy 和 Scale,计划未来将支持更多的语言。

2. Gradle 的重要性

Coding 只是软件开发的一部分

  • 编译源代码
  • 运行单元测试和集成测试
  • 执行静态代码分析
  • 生成分析报告
  • 创建发布版本
  • 部署到目标环境
  • 部署传递过程
  • 执行冒烟测试和自动功能测试

二. 文件解析

1. 项目-gradle-gradle-wrapper.properties文件

声明了gradle的目录与下载路径以及当前项目使用的gradle版本。默认的路径我们一般不会更改。

2. Gradle同步的文件存储的路径

3. 项目-settings.gradle文件

声明当前项目中含有什么module。如果有多个module会以‘,’分开,如:include ':app',':app2'

4. 项目-build.gradle文件

  • 项目的编译环境配置,可以说是Gradle最主要的配置文件。
  • 这里是对Project的配置,是最顶层的配置,在module中同样有一个build.gradle文件,是对module的配置,如果module里没有进行配置,将使用这里的配置信息。
  • 一个是声明仓库的源,这里可以看到是指明的jcenter(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优。另一个是声明了android gradle plugin的版本。
  • 我们可以将仓库的源换成以后公司中的仓库源。

5. 项目-Module-build.gradle文件

  • Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件。
  • apply plugin:gradle版本的写法,声明这是一个Android程序。
  • compileSdkVersion:编译Android的SDK版本。
  • minSdkVersion:允许运行的最低版本。
  • targetSdkVersion:运行的目标版本。
  • buildToolsVersion:编译工具的版本。
  • applicationId:这里可以很方便的修改打包之后的包名。
  • versionCode:apk的版本。
  • versionName:apk显示的版本。
  • dependencies:添加依赖。

6. 添加三种依赖

  • Library Dependency:添加静态库依赖。
  • Jar Dependency:添加Jar包依赖。
  • Module Dependency:添加模块依赖。

三. Gradle命令

1. 首先需要配置一下Gradle

参考:Mac下AndroidStudio中手动配置Gradle

2. Gradle的命令

  • gradle –help
  • radle – version
  • gradle –build
  • gradle –clean
  • gradle –tasks
  • gradle tasks –all

四. 其他

1. 缩写

2. Test

3. Lint支持

4. 合并规则

  • 多个文件夹中的所有的源代码(src/*/java)都会合并起来生成一个输出。
  • 所有的Manifest文件都会合并成一个Manifest文件。

5. 缓存的坑