Gradle 爬坑指南 -- 导论
Gradle 内容真是超乎寻常的多,在写本文之前我以为有个万把字就差不多了,但随着越看越多,我发现想写的话一本书都是可以写出来的 〒▽〒
因为内容多,我只能拆成多篇文章了,希望能写全吧
我写文章都是喜欢以小白为出发点的,希望对那些一点都不了解 Gralde 的朋友能所有帮助,也希望能大大缩短大家学习 Gralde 的时间成本。Gradle 这东西对于一般人真的是难,非常难理解。相关的技术文章都是18年后才开始涌现出来的,之前的文章(尤其是15年那会AS出现时的文章)真的是非常非常少,可见难度之大。我想也只有之前精通后端,熟悉 Ant,Maven 构建工具,转到 Android 的那些高手们才能一上来就玩转 Gradle 吧 (੭ˊᵕˋ)੭*ଘ
前言
长征一直是被世人当做奇迹来看待的,实在是不能想象要拥有如何的毅力才能跨越这些人类禁区,我想也只有:负重前行、披荆斩棘、为了唯一的光明、相互鼓励、相互扶持
的先人们才能做的到吧 ┗|`O′|┛ 嗷~~
可能是因为本猿感情丰富一些、平日爱做白日梦的关系吧,一直一来我都把软件开发这条路当做新时代版的万里长征
:未来很光明、路途很遥远、当下很艰难。谁能说编程学习路线上那每一座难关不是雪山、不是草地?迈过去的难度非常大,太多的人徘徊在关口呻吟、亦或是被碰的头破血流,但是只要迈过去了,后面的风景何其精彩。即便前路还有万千苦难,但我已成战士,百折不挠是我的血,握紧手里的剑,我能扶摇天际 (☆-v-)
曾几何时,大家还记得俯于案头而苦恼、百思不得其解而难过、怀疑自己能力而悲愤?Gradle 反反复复看了好几次,次次个把星期,但就是不得其解、不得其意、不得已精髓。而别人一个星期,Gradle 各种花样,各种黑科技,难倒大家不羡慕?为啥别人行我不行,为啥对比差距这么大?究其原因就是:低效学习!
基础薄弱怎能助自己攀登高峰,怀着没吃过猪肉还没见过猪跑的心情,怎能烹饪一手好红烧肉呢。全聚德的烤鸭之所以闻名全国,那是因为不仅了解、掌握食材的整个成长过程,更是自己优中选优选择最好的鸭苗,掌握鸭苗全程的成长,才能有的放矢,才能做出最好的烤鸭子
这里安利下自己的文章:Android 筑基导论,希望能让大家能静下心来想一想,梳理一下自己的过往,明白万丈高楼平地起,什么才是助自己走向高峰的基石 (o≖◡≖)
感谢前辈们孜孜不倦的输出,我才能把 Gradle 斩于马下,非常感谢 (๑•̀ㅂ•́)و✧
写的有点啰嗦,希望啰嗦一点把 gradle 讲清楚,掌握合适的学习脉络,其实 Gradle 不难入手的
本文主要是从 AS 角度来讲解 Gradle ✧(≖ ◡ ≖✿)
单词
学习 Gradle 第一个拦路虎就是有点多、不认识的单词了,总是看见不认识的单词、不理解是什么意思,其实挺劝退的,至少我的感受是这样。下面这些单词大家熟悉下:
Script
--> 脚本(build.gradle)Plugin
--> 插件(apply plugin: 'com.android.application')generic
--> 通用、一般task
--> 任务(cleanBuildCache)graph
--> 图表、曲线图assemble
--> 集合、收集、打包compile
--> 编译Evaluate
--> 评估、构建resolve
--> 决定Execution
--> 执行Closure
--> 闭包、终止(android{...})confuse
--> 混乱Script Block
--> 脚本块delegate
--> 委托transform
--> 变换channel
--> 渠道flavor
--> 味道、差异、这里代指渠道dimension
--> 维度variant
--> 变体annotationprocessor
--> 注解处理器ProGuard
--> 混淆console
--> 控制台company
--> 仓库
参考资料
官方:
B站视频:
- 来自Gradle开发团队的Gradle入门教程
- gradle快速入门
- Gradle系统详解
- 自定义编写Gradle插件
- 用Artifactory和Retryofit助力Gradle提高开发效率
- Gradle原理动画讲解
慕课视频:
- 199元--Gradle3.0自动化项目构建技术精讲+实战 -->有钱的可以看看
博客:
- 搞定Groovy闭包这一篇就够了
- 掘金小册-Mastering Gradle
- Gradle系列之从init.gradle说起
- Android Gradle 自定义Task 详解
- Gradle 与 Android 构建入门
- 来自百度团队的这篇文章对于依赖介绍的真是非常 Nice,值得大家一看
- 我终于被 implementation 和 api 逼疯了
掘金--jsonchao 的系列文章 --> 很不错的,既全面,又有深度
- 深度探索 Gradle 自动化构建技术(一、Gradle 核心配置篇)
- 深度探索 Gradle 自动化构建技术(二、Groovy 筑基篇)
- 深度探索 Gradle 自动化构建技术(三、Gradle 核心解密)
- 深度探索 Gradle 自动化构建技术(四、自定义 Gradle 插件)
- 深度探索 Gradle 自动化构建技术(五、Gradle 插件架构实现原理剖析 — 上)
- 深度探索 Gradle 自动化构建技术(五、Gradle 插件架构实现原理剖析 — 下)
- 深入探索 Gradle 自动化构建技术(九、Gradle 插件平台化框架 ByteX 探秘之旅)
gradle 打包加速的看这个 -->
maven 中心仓库 大家百度打开这个连接,进去直接搜索我们想看的第三当框架,能看到所有版本的信息,点开可以看到 maven 地址
我的学习文章
成体系的东西,尤其是你妹接触过的,我认为在学习阶段必须要写文章,要记录下来,即便网上这类文章有太多太多,你也必须写自己的文章。写完了你才能把自己学到的梳理清楚,动键盘开始码字你才知道有多少自己其实并没有学明白,记下来你才能记得清楚,忘了好回头看
第一阶段
该阶段目的在于了解 Gradle 构建工具、Groovy 语法,了解其中概念,知道什么是 Task、Plugin,了解 Gradle 内置对象、生命周期 Hook 函数,构建过程。这些都是 Gradle 比较粗粒度的知识体系,只有了解这些你才能上手、入门 Gradle
- Gradle 爬坑指南 -- 导论
- Gradle 爬坑指南 -- 概念初解、Grovvy 语法、常见 API
- Gradle 爬坑指南 -- 理解 Plugin、Task、构建过程
- Gradle 爬坑指南 -- Gradle 核心模型、Hook 函数、ext 扩展属性、Project API
第二阶段
该阶段在于深入学习 Gradle 的细节,及其基于自定义插件实现各种功能,学到这里基本就能出师了,Gradle 以后就不是问题了,再看见有新的内容也能看得懂、学的会了,就能跟上业界 Gradle 主流水平了
Gradle 学习指南
1. Gradle 基本学习路线
- 先了解什么是 Gradle、Groovy
- 熟悉 Groovy 语法
- 熟悉什么是 plugin 插件、task 任务
- 熟悉 Gradle 核心对象:Gradle、Setting、Project,Gradle 构建流程、生命周期、及其 hook 勾子函数
- 熟悉 Android 项目构建,application 这个插件
- 了解自定义 task,自定义 plugin 并上传 maven 以及使用
- 各种 自定义 plugin 花样
这是基本的学习思路,结合我提供的学习资料,我想至少可以给大家减少很多寻找资料、理清脉络、反复折腾的时间,下面贴一下具体学习指南
2. Gradle 学习资料食用指南
Gradle 很复杂、学习难度很大的,一遍基本是不够的,请大家耐心反复看几遍 <( ̄ˇ ̄)/
- 首先还是希望大家能先阅读下本文,先对 Gradle 有些基本理解再看后面,尤其是一点 Gradle 基础都没有的同学,我是真的建议大家先把我这篇文章看完,我写文章从来都是从小白出发
- 来自Gradle开发团队的Gradle入门教程 --> 优先推荐大家看看这个,来自 Gradle 管方团队的推广真不是盖的,概念解释清晰,言简意赅、逻辑条理 Nice,会帮你理解 Gradle 的全貌,虽然具体内容不是很多。但是带着官方的理解再去看其他资料能减少很多概念理解上的歧义,能帮助提升大家的学习效率
- Gradle系统详解 --> 这个4个来小时,尝试把 Gradle 都讲一遍,但是效果不怎么好,推荐大家过一遍,增加了解
- gradle快速入门 | 自定义编写Gradle插件 --> 这2篇都是讲 plugin 插件、task 的,大家看完之后对这2块会有比较深的了解
- 用Artifactory和Retryofit助力Gradle提高开发效率 --> 这个是讲解 Gradle 自动化打包、上传、发布的,适合有需求的朋友看
- 掘金小册-Mastering Gradle --> 这本掘金小册真的是新人杀手、劝退指南。文章虽然内容混乱,质量还是不错的,推荐大家对 Gradle 有系统了解之后再来看
- Gradle--官方文档 --> 管方文档最后还是推荐大家看看的,结合 Google 浏览器的自动翻译插件,还是能看的,完全没问题
- 剩下的就是 Gradle 插件的应用了原理了,这块推荐大家看看掘金
jsonchao
同学的系列文章,既全面,又有深度
这一套下来,基本上 Gradle 对于大家来说就没什么大问题了,剩下的就是在项目中实际应用了。再有掘金上有黑科技文章出来大家也不会看不懂,不会用了。总体耗时会长一些,但是真的可以一次学习,终身受益,不用反复折腾了
Android 插件打包流程图
作者:前行的乌龟
链接:https://juejin.cn/post/6882178101191639053
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。