前言
去年年底的时候,写过一篇博客叫《Android-application中使用provided-aar并没有那么简单》。当时文章中介绍了android gradle plugin不同版本的实现方式,对android gradle plugin 2.2.0以下版本的实现,是采用使用gradle maven的api实现,利用gradle本地缓存,这种方式不但反射的地方非常多,而且不支持传递依赖,局限性非常大。周末有空,又重新拿起来研究了下,最终实现了android gradle plugin [1.3.0,3.2.0+)版本的传递依赖,在插件化中起着重要意义,几乎是全版本兼容了,通过源码发现使用相同的方式无法进行兼容1.3.0以下的版本,且版本过于久远,所以直接不支持了。建议阅读本篇博客前,强烈建议先将之前的那篇博客看一下,否则可能无法理解。没有特殊说明的情况下,下文将android gradle plugin简称为AGP。