自定义插件实现Android组件化开发

本篇文章参考资料:
1、Android彻底组件化方案实践
2、Gradle用户手册

Gradle在Android工程中的运用
Groovy简单了解
AndroidStudio中自定义Gradle插件
之前写了三篇都是入门知识,都是为了这篇打基础。在Android项目开发中,对于项目功能较多、好几个人开发的情况下,组件化开发是一个不错的方案。关于组件化开发,这位开发者的文章有一个比较全面的阐述。其中的核心功能就是用一个自定义插件实现的。

去阐述怎样实现组件化app之前,先了解一下gradle在android工程中的几个要点。

Project

Project api详见https://docs.gradle.org/current/dsl/org.gradle.api.Project.html
以上一篇的demo代码作为基础。这里只列出几个常用的api
Project. path
Project的路径

String path = project.getPath()

Project.dependencies
可以添加依赖、删除依赖

project.getDependencies().add("compile", 'home')

Project. gradle
读取gradle编译该project的tasks

String taskNames = project.getGradle().getStartParameter().getTaskNames().toString()

Project. properties
读取属性、设置属性

String name = project.getProperties().get("userName")
project.setProperty("userName", "zhang")

Project. sourceSets
设置sourceSets

project.android.sourceSets {
    main {
          manifest.srcFile 'src/main/debug/AndroidManifest.xml'
          java.srcDirs = ['src/main/java']
          res.srcDirs = ['src/main/res']
       }
 }
Task

通常编译的时候,会有以下这么多类的Tasks会执行。


1.png

2.png

assemble 任务就是组装任务,比如我们Run app就是Executing tasks: [:app:assembleDebug]
install任务就是安装app任务,比如:Executing tasks: [installDebug]
还有其他的uninstall、build、clean任务等等。

组件化开发

了解了Project和Task以及它们的一些api,就可以来学习一下组件化开发了。 从Android彻底组件化方案实践这篇文章了解到,每个组件就是一个module,可以用ARouter作为组件间页面跳转,也可以定义接口访问。然后比较方便的是每个组件可以单独编译运行也可以组装成一个app。这个功能就是采用的自定义插件。从前面了解的project和task的知识,很简单就能去实现了。
具体实现还是去看作者demo吧。
作者demo
我的demo

你可能感兴趣的:(自定义插件实现Android组件化开发)