这门课解决什么问题
Gradle 插件与字节码插桩,是 Android 工程化里绕不开的硬骨头。日常开发中,我们常遇到这类需求:要在打包时自动改写 AndroidManifest 里的版本号或渠道标识,或者在不改动业务源码的前提下,给所有页面统一加上埋点、无痕埋点、方法耗时监控。如果靠手动修改或者侵入业务代码,不仅容易冲突,后续维护成本也极高。这门课聚焦的正是如何用 Gradle 插件在编译期动态介入,去修改中间产物。它没有铺陈太多理论,而是直接对着两个真实场景开干:一是通过 Plugin 和 Task 动态改写 manifest 文件,二是用 Transform 机制在编译流水线里修改 class 文件。学懂这两手,你就能搞清楚编译流水线里产物到底在哪一步被生成、又能在哪一步被拦截和篡改。
适合什么基础与学习建议
这资料不适合零基础。你得先有扎实的 Android 开发经验,熟悉 Gradle 基本配置,最好写过几个自定义 Task。如果你连 build.gradle 里的闭包逻辑都看着吃力,建议先补基础再看。对于满足门槛的读者,建议按资料原本的顺序推进,别跳着看。先快速过导学和 Plugin、Task 入门,确认自己能独立跑通一个空壳插件。接着把重心放在两个实战案例上。看动态改 manifest 那段时,重点听它怎么定位到合并后的清单文件路径,以及怎么用正则或解析器改写节点。看 Transform 修改 class 文件那块时,重点理清输入输出流怎么接管,以及怎么用相关 API 遍历和处理字节码。每看完一段,务必暂停视频,自己在项目里把对应逻辑敲一遍,只看不练到头来连插件都注册不上。
学完能独立做什么
完整跟下来并动手实操后,你能独立搭出一个带自定义逻辑的编译插件。具体来说,你可以写一个插件,在打包时自动把 AndroidManifest 里的占位符替换成当前环境变量,省去手动维护的麻烦;也能基于 Transform 写一套自动插桩工具,给特定注解的方法批量插入统计代码或性能探针。这些能力对应着高级开发日常要解决的工程化痛点。资料本身只提供核心链路的思路与代码演示,在真实项目里落地时,你还需要自己去查阅官方文档,处理增量编译、并发修改等边界情况。把它当成入门工程化的实操指南,照着把流程跑通,比干啃理论管用得多。
Plugin入门开发;Gradle-Task入门开发;Plugin高阶应用,动态修改编译文件
课程目录
* 01 课程导学/
* 01 课程导学.mp4 00:40
* 02 认识和学习Plugin/
* 01 自定义一个Plugin.mp4 11:31
* 02 课堂小结.mp4 01:08
* 03 认识和学习Task/
* 01 认识和学习Task.mp4 03:56
* 02 通过class 实现Task插入.mp4 11:58
* 03 自定义Task代码实战.mp4 08:41
* 04 实战案例一:动态修改manifest文件/
* 01 通过Plugin-Task动态修改manifest文件.mp4 54:23
* 05 实战案例二:动态修改.class 文件/
* 01 通过Transform动态修改.class 文件.mp4 57:36






