https://blog.csdn.net/chennai1101/article/details/103280304
https://blog.csdn.net/heng615975867/article/details/104800248
目录
一、 Gradle构建的流程
1、Initialization初始化阶段
- 解析整个工程中的所有project,构建所有的Project对应的project对象
2、Configuration配置阶段
- 解析所有的projects对象中的task,构建好所有的task的拓扑图(有向无环图)
3、Execution执行阶段
- 执行具体的task及其依赖的task
二、 Gradle构建的生命周期
Gradle生命周期分为Project与Gradle两个对象的生命周期。
执行android studio的build按钮,会打出以下日志。
Executing tasks: [:app:assembleDebug] in project D:\WorkRoot\CodeSpace\Company-LianYou\as\standard\LyRouterDemo
settings:执行settingsEvaluated...
settings:执行projectsLoaded...
> Configure project :
settings:执行LyRouterDemo beforeProject
根项目配置开始---
根项目里任务配置---
根项目配置结束---
settings:执行LyRouterDemo afterProject
> Configure project :app
settings:执行app beforeProject
子项目project ':app'beforeEvaluate回调...
APP子项目配置开始---
APP子项目里任务配置---
APP子项目配置结束---
settings:执行app afterProject
APP子项目afterEvaluate回调...
> Configure project :moduleA
settings:执行moduleA beforeProject
子项目project ':moduleA'beforeEvaluate回调...
组件A配置开始---
组件A里任务配置---
组件A配置结束---
settings:执行moduleA afterProject
组件A afterEvaluate回调...
> Configure project :moduleB
settings:执行moduleB beforeProject
子项目project ':moduleB'beforeEvaluate回调...
组件B配置开始---
组件B里任务配置---
组件B配置结束---
settings:执行moduleB afterProject
组件B afterEvaluate回调...
> Configure project :moduleBase
settings:执行moduleBase beforeProject
子项目project ':moduleBase'beforeEvaluate回调...
组件Base配置开始---
组件Base里任务配置---
组件Base配置结束---
settings:执行moduleBase afterProject
组件Base afterEvaluate回调...
settings: 执行projectsEvaluated...
> Task :xxx UP-TO-DATE
...
> Task :xxx UP-TO-DATE
构建结束...
从上面的日志可以看出,build相当于执行app的assembleDebug的task,gradle首先会执行Configuration配置阶段
1.先执行Gradle的生命周期settingsEvaluated、projectsLoaded,
2.后依次configure Pro,app,各个module,而各个Project执行的生命周期顺序又是
beforeProject
beforeEvaluate
afterProject
afterEvaluate
3.最后执行Gradle的生命周期projectsEvaluated
然后开始Execution执行阶段,执行 assembleDebug 依赖的其它的task。
0 条评论