美文网首页
Android Gradle(一)- 开篇

Android Gradle(一)- 开篇

作者: Stan_Z | 来源:发表于2020-04-10 00:23 被阅读0次

    对于Android开发来说,Gradle的重要性不用多说,非常有必要花时间好好学习和梳理一下相关内容,形成一个相对完整的知识体系。这个系列就是针对Gradle进行一个知识体系梳理,当然内容无法覆盖到方方面面,但是核心内容基本都会覆盖到。

    开篇写得比较简单,不花大篇幅在一些概念上绕了,相关文章网上应该也有一大堆。这里首先开门见山做个基本介绍和框架梳理。文章基于Gradle Version :5.4.1。

    一、Gradle基本介绍

    Gradle是一种项目构建框架,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。它提供灵活的通用构建工具,就像ant。同时完美兼容Maven或Ivy仓库。

    二、Gradle大框架
    Gradle生命周期层面:

    初始化 完成所有工程的初始化,解析settings.gradle文件,觉定工程有哪些子项目,同时构建所有project对应的project对象。

    配置 执行所有工程中build.gradle的配置代码,解析所有project对象中的task,构建task的拓扑图。

    执行 执行task及其依赖task。

    Gradle构建组成层面:

    settings.gradle决定了工程有哪些子项目,跟工程与各module都对应一个build.gradle,根工程偏向于全局配置,各module偏向于各自的功能配置。一个build.gradle文件对应一个project实例,project作为脚本代码的入口,主要功能包括定位文件、获取root工程、管理子工程,配置android属性、为project添加依赖等等。而project中的业务功能又由一个或者多个task组成。 task是指不可分的最小工作单元,是真正执行逻辑的角色,大到源码编译,小到copy功能最后的执行者都是task,基本功能包括创建、查找、指定输入输出、执行顺序、依赖等等。另外,提到task就不得不提plugin,它本质上就是对完成特定功能的task的封装。而最终task中的具体业务代码是由groovy语言来书写的,groovy全面兼容java,包括java的语法和api都能用,同时也有自己的特性语法和api。这些内容是gradle组成最核心的部分。

    因此一个具体的功能可以封装为插件,以Gradle生命周期为依托,通过project和task配合来完成,而功能本身的业务逻辑则需要groovy语言来支持。

    三、梳理计划

    经过上面框架的梳理,基本上对gradle有了大致了解。基于此,系列文章大概会按如下框架来输出:groovy、gradle和自定义plugin:

    系列文章框架

    相关文章

      网友评论

          本文标题:Android Gradle(一)- 开篇

          本文链接:https://www.haomeiwen.com/subject/emgkmhtx.html