Android 开发经过十多年的技术演进,如今 Gradle 对于开发者,已是必备工具。一个企业级的 Android 项目,仅使用 Android Studio 项目里的默认配置,不通过 Gradle 定制编译测试流程、不与 Android Gradle Plugin(下文简称 AGP)深度交互,几乎是不可能的。常见的基础应用场景,例如多渠道打包分发、自动化多语言包下载,APK、AAR、AAB 上传与发布等等,是不少团队会面临的问题。
上述问题我搜索、复制、粘贴,一气呵成,感觉不需要深入学习呀?
的确,不少人对于 Gradle 在 Android 开发中的印象如上所述,公司里讨论 Gradle 的人好像都是高级工程师或架构负责人。这其中可能的原因是:因为大部分人都没有“真正”学过,所以在碰到一些场景时你并不会想到“我需要它”。举一个夸张的例子,例如:没人会招聘“能使用喷气飞行器(Jetpack)”的高工作业工人,对吧?但如果真的有低成本又安全的喷气飞行器出现了,你觉得老板会说“不,我们不需要这样的技能、工具”吗?
Gradle 作为一个平台型工具,背后关联的知识体系复杂、学习曲线陡峭,涉及到多门语言(Groovy、Java、Kotlin)、Maven 仓库与依赖、Android Build Tools(例如 AAPT、Kotlin Compiler、D8/R8 等)、资源/源码/字节码等文件、格式的解析与流程扩展(例如 KSP/ASM),以及最终的插件开发(例如 Gradle 和 AGP 的 API)等等。在实际工程中,这类问题多数是由公司的个别高级工程师或基础架构团队负责,因此网上的讨论度并不高,一些有价值的场景和话题也就难以大面积暴露。
实际上,Android 开发者掌握 Gradle 及关联技术对于工作的帮助是多方面的。当你把这个技能运用在团队合作,通过对基础架构和 CI/CD 的贡献,会发现大家对你的依赖逐步加重;当把知识技能写在简历上,可以反应个人高水平的工程能力,也拓宽回答问题的思路,为整个面试加分添彩。进一步说,越大的团队对于 Gradle 就有越强的需求,不管是考虑到公司的成长、团队的扩张,抑或面试大公司时,构建与架构的能力都是查缺补漏的关键一环。
那...这些我都不懂呀,一直看大家说 Gradle 难,网上也没有系统性的资料,该怎么学?
这便是本书编写的目的所在:本书瞄准的人群,不仅仅是国内外各 Android 团队的高级工程师或架构负责人,还包括有志成为这样角色的人。市面上不乏讲解 Gradle 的书籍,但均使用 Groovy 且已年久失修,不利于快速上手。进一步地,若要涉及到 Android 构建流程(AGP)和对应的架构实战资料,更是寥寥无几,无法满足系统性学习的需求。
本书采用 Kotlin 编写,基于最新的 Gradle 7 和 AGP 7(含部分 AGP 8 前瞻)。它不局限于 build.gradle(.kts) 的脚本配置,而是引入大量 Gradle 的进阶内容为铺垫,超过 40 个自定义的生态协同插件为载体,带你探讨新版 AGP 的接口与原理,思考如何在 AGP 相对闭环的容器中定制项目所需的构建流程。
通过这些内容,你对于 Gradle、AGP 的理解,以及插件编写的技术可提高数个层级,如下问题便能轻松解决了:
在此基础上,后期我们还设定了一系列的架构实践章节,涵盖资源任务扩展、Kotlin 源码任务扩展、JVM 字节码任务扩展、构建优化技巧等多个部分,巩固对 Android App 构建与架构的认知。我们将引导你从 App 基础架构设计的角度深入思考更多问题:
通过系统性地学习 Gradle 与 AGP 的高级应用,你将筑起厚实的技术壁垒,包括 Gradle 技术与 Android 构建的理解已能超过大多数的 Android 开发者。 倘若成为该领域的专家需要 10 分的知识储备(例如 Gradle Fellowship 的官方认证专家),完整消化本书能帮你达到 7-8 分。
按照传统 A5 大小的纸书估算,本书有近 700 页的容量,是市面上一般技术图书的 2 倍。本书所配套的材料,包括示例源码、参考资料均以开源至我的 Github 仓库。
(篇幅所限此处仅展示了 2 级目录,完整的 3 级目录参见资料仓库)。
本书目前上架了电子版:定价 ¥499,点击链接或扫描下面二维码购买,进入后请点击“专栏”阅读(推荐使用网页版获得最佳阅读体验)。
为了对等待本书的朋友表示感谢,即日起只要关注Android高效开发公众号,回复“Android 构建与架构实战”即可领取高达 150 元的早鸟优惠券。首批 150 元优惠券为 50 张,领完后我会再更新 50 张 100 元,然后再 50 张 50 元,最后恢复原价。(活动最终解释权归本人所有)
既然选择知识星球作为专栏输出,我就打算再送一些额外福利给大家,目前星球计划的主营内容:
本书于编写尾期进行了第一轮校对,几位一线的 Android 基础架构工程师提出了数十个宝贵的修改建议。目前正在进行的第二轮校对中,我邀请了十多位 Android 各垂直领域的专家。他们将提供更加全面的审阅视角,而校对的评论将公开于星球当中,因为我相信这些高水平的思想碰撞亦是富有价值的学习材料。
我是 AB,常用 ID 为 2BAB。Android 开发者、开源贡献者、技术书籍《KOGE》和《Android 构建与架构实战》作者,以及《二分电台》播客主理人。
于 2013 年开始接触 Android 与 Gradle 相关开发,活跃于 Android 技术社区,创作包括文章、书籍、演讲、播客等形式,乐于交流、与他人碰撞思想。曾在阿里巴巴等国际公司就职,主要从事移动基础架构研发。同时,我是中国大陆八位 Android GDE(Google 开发者专家)之一。
你可以在我的博客主页找到全部的作品。https://2bab.me/zh/
Kotlin DSL 现在成为新 Gradle 构建的默认设置。Gradle Kotlin DSL 带来的好处有:
尤其第二点,“自动补全”是过去使用 Groovy DSL 编写 Gradle 脚本的一大痛点,而现在 Kotlin 为我们解决了这个问题。而作为 Android 开发者,一门语言带来的统一体验(App 主体开发和构建工具开发)亦是令人欣喜。
很多人应该看到了最近 Kotlin 官方和 Gradle 官方在转发我的另外一本开源小册 《KOGE》和《Android 构建与架构实战》又有哪些不同?
同样是使用 Kotlin 作为 Gradle 脚本/插件的编写语言,《KOGE》完美地成为了本书的前置课程——事实上《KOGE》便是本书在写作过程中产生的想法:如果能把基础概念都归纳到一本小册子,《Android 构建与架构实战》就能更流畅地专注在插件编写、AGP、架构、最佳实践等进阶命题。
借用前文的比喻,倘若成为该领域的专家需要 10 分的知识储备,《KOGE》能做到 2 分,而完整消化本书能帮你提升至 7-8 分。
欢迎关注我的 Github / 公众号 / 播客 / Twitter。