[Android]如何做一个崩溃率少于千分之三噶应用app(27)-分发模块依赖倒置

96
作者 CangWang
2017.06.26 10:10 字数 729

大家好,我系苍王。

以下是我这个系列的相关文章,有兴趣可以参考一下,可以给个喜欢或者关注我的文章。

[Android]如何做一个崩溃率少于千分之三噶应用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,也可以扫码进群。我在这里期待你们的加入!!!


Android组件化