[Android组件化]分发模块依赖倒置

你们好,我系苍王。
git

如下是我这个系列的相关文章,有兴趣能够参考一下,能够给个喜欢或者关注个人文章。github

[Android]如何作一个崩溃率少于千分之三噶应用app--章节列表架构


首先,这里先提一下,能够先查阅我以前的篇章app

1.Activity分发功能module架构
框架

2.Fragment分发module架构
异步

3.View分发module架构组件化

这里发布的是一个升级的的分发模块的架构,命名为ModuleBusEx(https://github.com/cangwang/ModuleBus/tree/ModuleBus_Ex),欢迎你们star一下。布局


使用这种框架,能够组件化实现例如映客直播间里面的效果,达到最佳完美的解耦。优化



一.ModuleBusEx优点

说一下ModuleBus进化版的优点线程

1.多层级,并且并木有重复叠加层级问题

2.同一个界面多模块独立研发

3.模块能够自由控制布局添加位置

4.模块中拥有自身的生命周期

5.自由加入和移除模块。

6.自由显示和隐藏模块。

7.通讯框架使用原ModuleBus升级,能够不须要在base类中添加信息对象,经过方法名记录索引通讯。(EventBus和RxBus须要在base中添加额外的通讯信息类,具体使用,能够参考ModuleBus


二.实现优化

(1)本次优化最重要使用了RxJava和RxAndroid的线程加载方式,让加载初始速度获得质的飞越,解决了原ModuleBus加载卡顿问题。

代码并不复杂,直接上代码吧,也就是使用RxJava和RxAndroid异步建立和加载。


(2)另外一个重要的升级是,使用层级加载。初始配置上中下三个层级,能够达到分层级布局和加载,咱们逻辑里是这样的。


然而使用FrameLayout做为总布局,其层级优化为最短。


(3)这里使用了依赖致使的方式,能够每一个模块自由配置布局方式。


已经封装布局加载方法



(4)自由加载模块和移除模块,随意隐藏和显示布局,这里注意须要使用自定义的findviewById方法。




(5)ModuleBus是经过方法名的注册和索引,基础的数据类型,无需在base module添加对象。



之后优化的方向

1.任意调整布局主层级。

2.模块叠加顺序调整。

详细能够查看ModuleBusEx(https://github.com/cangwang/ModuleBus/tree/ModuleBus_Ex),欢迎你们star一下。


尝试才能找到最优解。

下一节将会更精彩,敬请期待!!!

群号是316556016,也能够扫码进群。我在这里期待大家的加入!!!

相关文章
相关标签/搜索