1、什么是组件化,为什么需要组件化
2、集成环境/组件化环境自动部署
3、组件化 子模块交互方式(非ARouter版)
4、组件化 子模块交互方式(ARouter版)
早期的单一分层:
问题1:无论分包怎么做,随着项目增大,项目失去层次感,后面的人接受很难
问题2:包名约束太弱,稍有不注意,就会不同业务包直接相互调用,代码耦合度高
问题3:多人开发在版本管理中,容出现代码覆盖冲突等问题
1、什么是组件化,为什么需要组件化
组件化的意义:不相互一来,可以互相交互,任意组合,耦合度高,自由拆卸,足有组装,重复利用,分层独立
2、集成环境/组件化环境自动部署
我们可以单独创建一个管理的gradle,来管理我们各个模块的相关导入资源,定义一个变量isRealease变量控制正式环境(各个模块依附APP壳运行)测试环境(各个模块可以单独运行)等操作,这个可以自己去找资料学习。
3、组件化 子模块交互方式(非ARouter版)
交互的方式有5种:
1)使用EventBus的方式:缺点:EventBus维护成本太高,不好去管理
2)使用广播的方式:缺点不好管理,都同一发出去了
3)隐士Intent的方式:缺点在AndroidManifest.xml里面配置xml写的太多了
4)类加载的方式:缺点是容易写错包名,不过还算是不错的
5)使用全局Map的方式:缺点这个要注册很多对象
4、组件化 子模块交互方式(ARouter版)
ARouter版需要用到的技术:1、APT技术 2、高级用法JavaPoet 3、组件化项目部署,ARouter原理
1)ARouter需要我们在编译期间帮我们生成需要的文件,所以需要用到APT技术
2)JavaPoet语法,因为我们需要拼凑出需要的类、方法要用到JavaPoet语法
3)ARouter原理:我们得要对于模块进行分组
由于时间匆促,这里讲个大概的概念,之后详细慢慢补充,模块之间如何使用通讯。