全面组件化---DDComponentForAndroid分析(3)

前言

继续前两篇文章,这篇分析所使用的build-gradle插件。

1.全面组件化---DDComponentForAndroid分析(1)
2.全面组件化---DDComponentForAndroid分析(2)
3.全面组件化---DDComponentForAndroid分析(3)

一些预备姿势

这里只提一些能用得到的知识点,如果要完整的学习build-gradle插件开发,还应该去找官方教程。

build.gradle文件和gradle插件的关系

build.gradle 是一种配置文件。在eclipse时代,我们用的是xml文件。当然有的软件用的是json文件(vscode/submit)。
.gradle就是在as中专门使用的配置文件。然后gradle插件就是用来读取配置文件的工具了。

首先,AS工程必须引入的一个tools插件,最新版本3.0.0
使用构建脚本引入插件:

com.android.tools.build:gradle:3.0.0

然后直接在,gradle文件上使用apply plugin

apply plugin: 'com.android.application'

这就是 脚本插件和二进制插件

  • 脚本插件是额外的构建脚本,它会进一步配置构建,通常实行声明的方式操纵的构建.尽管他们可以外部化并且从远程位置访问,它们通常还是会在构建内部中使用.
  • 二进制插件是实现了Plugin接口的类,并且采用编程的方式来操纵构建.二进制插件可以驻留在构建脚本,项目层级内或外部的插件jar.

Android Gradle和Gradle插件区别和关系

打开gradle文件夹找到gradle-wrapper.properties文件,可以看到当前使用的gradle版本。

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
  • Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......,你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.
  • Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能
    当然官方的

所以,当你引入了gradle 之后,并没有什么卵用(当然还是有一些基本功能的),但他主要是API的提供者。就好像你电脑装了jdk,但是没有java程序,啥也干不了。

而这个程序,就是gradle插件了。

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。 面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。

所以你可以使用Java、Groovy和Scala来编写gradle插件。

多个gradle插件之间的关系

互不影响,如果为单选则只能选其一。

如何学习

gradle基于的语言是groovy,也是一个编程框架。就是学习一门编程语言。它基于jvm,所以生成的也是jar文件。


分析build-gradle插件源码

文件目录

全面组件化---DDComponentForAndroid分析(3)_第1张图片
QQ截图20171111104011.png

核心部分是groovy部分,关于发布以及resources文件夹不讲。


太简单了,一眼就看懂了。好像没什么好介绍的。我把注释打上,去源代码里面看吧。如果你稍微有点编程基础,就不会不懂了。
如果函数看不懂的,只需要利用谷歌即可
api查询:https://gradle.org/docs/

全面组件化---DDComponentForAndroid分析(3)_第2张图片
QQ截图20171111112534.png

重点关注红线部分

总结

https://github.com/HuRuWo/ZuJianHua

你可能感兴趣的:(全面组件化---DDComponentForAndroid分析(3))