一步一步实现组件化(1)

先放上项目地址:GitHub - iblue007/SmartRouter: 一步步搭建组件化框架

大家会看组件化的东西,想必也知道组件化的优势了吧 ,这里就不在赘述。

想要写组件化,首先我们要构建一个组件化的结构,

就比如组件和插件可以独立运行起来这个要怎么弄呢,我们先来个简单的变量控制来实现(后面的博文会有其他的实现方法介绍)

这个版本先通过配置自定义的参数,也就是开关来控制组件和主项目之间的切换,开起来的时候是组件化里面的插件,关闭的时候就是一个独立的app,开关如下所示:

gradle可以添加额外的自定义属性,通过ext属性实现。先新建一个config.gradle文件,并自定义isRelease属性,用于动态切换:组件化模式/集成化模式

那么这个config文件怎么使用呢?需要在项目的根build.gradle文件通过 apply from 方式引用config.gradle文件

然后我们要做一些判断(demo中有两个模块一个是app,一个是my)

1.如果是组件化的情况下,主项目app里面是要引用my这么模块的,如果不是组件化的情况下是不引用my模块

2.同理,在my模块中,当my模块是组件的模块的情况下,my模块不能有包名applicationId,build.gradle应该引用com.android.library,当my是独立app模块的时候,应该引用独立的一个minifest.xml文件,build.gradle应该引用com.android.application

至此就能实现一个最基本的组件化工程了,大家想看这个部分的代码的话,可以通过github的日志,定位到如下的这个日志周期,就可以看到这个最基础的组件化看成的代码了。

如果喜欢的,麻烦大家给个赞,谢谢

下一篇,我们来讲点干货,通过注解、auto_service、javapoet等技术实现组件化中的项目访问。

猜你喜欢

转载自blog.csdn.net/iblue007/article/details/109160919