gradle由简入深
众所周知android编译有两种方式分别是,make和gradle Gradle 附 gradle文档 gradle这种方式包含project、task、action、closures,他们关系如下图: Project 一个project与一个build.gradle文件是一对一的关系 project与project的关系是树形结构的,通过getParent()获得父project,通过getSubprojects()获得所有子project 提出一个问题,build.gradle是一个project对象吗? 答案:不是的,根据官方文档介绍可以知道每一个build.gradle脚本与关联的project对象有一个委托关系。所以脚本使用的任何属性或方法都通过关联的项目对象进行委托。 举个例子 我们在build.gradle文件中常用的Project属性,实际代理的是 Project getProject(); Project Properties 一个project的properties可以有5种范围 project自身的,比如任何 getters and setters修饰的属性 extra 比如在ext{}里定义的 由插件添加的Convention 由插件添加的 extensions task的名字,比如task:compile,它的名字就是一个属性