栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Gradle原理流程分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gradle原理流程分析

认识Gradle

​ 首先我们需要了解什么是Gradle,笔者第一次接触Gradle是在Android开发中使用到的,刚开始会想当然认为Gradle是为Android量身定制的工具,其实不然。Gradle首先可以理解为一个项目构建工具,或者深入理解来说就是一种编程框架,与平台无关,与工程类型无关。

首先我们来梳理一下,我们如果要手动来完成执行一个Java程序或者打包一个android程序需要经历的步骤:

执行Java程序(代码以及写完)步骤:

  1. 下载第三方包
  2. 使用java工具将java文件编译成.class
  3. 生成.class可能需要生成文档
  4. 使用java工具将所有资源打包成一个jar

打包Android程序简要步骤:

  1. aapt2打包res资源文件
  2. aapt2建立索引
  3. 通过javac编译java成class文件
  4. 通过d8工具生成dex
  5. 通过aapt2合并关联res和dex
  6. 通过zipalign工具对齐处理
  7. 通过apksigner工具签名

​ 简单介绍就这些步骤,其中还有很多细节处理,比如多项目支持,差异化处理,缓存优化等等。这些如果手动处理基本上不可能,要让流程简单化,就需要对这些流程进行封装,这就是Gradle的作用了。帮助我们对各种应用程序构建执行流程化,减轻我们的工作量。

Gradle结构

Gradle单独来讲,就是一个单独的构建工具,不依赖于javaandroid等。让我们走进gradle原始工程

  1. 准备Gradle

    gradle是一个单独的构建工具,可以单独执行。所以一般会手动单独下载或者AS自动下载到本地:

    gradle工具默认目录:

    Windows:C:Usersxxxxxx.gradlewrapperdistsgradle-6.7-all

    Mac:/Users/xxxxxx/.gradle/wrapper/dists/gradle-6.7-all

  2. 基本结构

    每一个Gradle项目基本结构

    文件作用
    gradlegradle-wrapper.jar是Gradle Wrapper的主体功能包
    gradle-wrapper.properties 自动生成的配置文件
    distributionbase 下载的Gradle压缩包解压后存储的主目录
    distributionPath 相对于distributionbase的解压后的Gradle压缩包的路径
    zipStorebase 同 distributionbase ,只不过是存放zip压缩包
    zipStorePath 同 distributionPath ,只不过是存放zip压缩包
    distributionUrl gradle发行版压缩包的下载地址
    .gradle自动生成的一些记录,可以不用管它
    build.gradle文件包含项目构建所使用的脚本,是针对单个项目的具体配置
    setting.gradle是gradle项目的总体配置文件,一般会把子项目中通用的一些配置放在这个文件中
    gradlew.batwindows环境下gradle执行脚本
    gradlewLinux/mac环境下gradle执行脚本
Gradle构建流程

了解了Gradle的整体结构,下面我们来一起学习下Gradle的构建流程。

Gradle的构建流程分为三部分分别是:

  1. 初始化阶段

    扫描setting.gradle,解析整个工程中所有的Project,构建所有的Project对应的project对象

  2. 配置阶段

    加载所有参与本次构建项目下的build.gradle文件,解析所有project对象中的task,分析project之间依赖关系生成拓扑图TaskGraph

  3. 执行阶段

    这是Task真正被执行阶段,Gradle会根据依赖关系决定task执行流程,Task是Gradle中最小执行单元,我们所有的构建,编译,打包,debug都是执行了某一个(多个)Task

以上是gradle构建流程的基本三个步骤,也就是说无论执行哪个task,那怕是task没有内容,也会执行这三部。

Gradle生命周期监听

所有gradle中能操作的动作,有对应的类文件定义它,我们搜索可查看Gradle.java的文件可以查看到这些监听的事件。

各个阶段的回调监听如图:


本文旨在初始Gralde,Gradle的构建流程,以及如何监听它的生命周期

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/281786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号