自定义插件实现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 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,243评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,519评论 2 45
  • 一般对于回顾的频率,只有周回顾,月回顾,年度回顾的说法。周回顾,月回顾这些是从时间线横向的划分,我觉得还应该有一个...
    时间管理讲师泽阳阅读 278评论 0 1
  • 一时兴趣在网上买了几株剑兰,拿回来的时候都是含苞未放的,看着甚是好看,我看着心情很愉悦,每天早上起来问下花香。晚上...
    月儿的2016阅读 226评论 0 0
  • 六个和死亡有关的纪录 呼吸这种平常小事 对于他们来说 无所谓了 只因为 不再 活 着 26周双子星 待产室很拥挤,...
    就是笑笑啊_阅读 459评论 8 5