如下是我这个系列的相关文章,有兴趣能够参考一下,能够给个喜欢或者关注个人文章。
git
[Android]如何作一个崩溃率少于千分之三噶应用app--章节列表github
这个系列的有关架构的概念,适合有大概 三年以上Android经验 的同窗理解。若是你大概一年半以上经验,入门进阶了,我近段时间会开展分析MVP的相关架构章节。到时有兴趣的同窗,能够查看一番。架构
若是有看过我上两编文章的同窗,才能真正感觉到组件化的威力。app
这个框架才是真正能够分离出module架构,反映出组件化开发的分工的架构方式。框架
应该是View。函数
在Activity和Fragment分发的架构中能够看出,都是分发一个RelativeLayout到其余module里面做为布局View的。组件化
那么最小单位就应该是分发一个RelativeLayout做为Module的View布局。布局
从Fragment的布局中能够是把相关的RelativeLayout id加入到视图Map里面学习
而后经过id来获取视图再分发到每一个module的moduleContext里面优化
请认真思考一下。
上两章所说Fragment和Activity,都拥有本身的生命周期,咱们经过封装抽象类,重写他们的方法,让其每一个Module都拥有Fragment和Activity同样的生命周期。
可是View并无像Activity和Fragment同样的生命周期流程。页面暂停恢复,View是无法经过自身的方法感知到外部Activity和Fragment的状况的。
那么咱们只能抽象类View,让其设定一些生命周期函数。
经过外部依附的Activity或Fragment生命中调用,传递周期。
固然有熟知View或者ViewGroup生命周期的函数的同窗,也能够自主去作一些周期函数优化,例如
onDetachedFromWindow,onFinishInflate等等。
而后须要在Fragment的onCreateView或者Activity的onCreate中建立出抽象类View出来,只须要复写一个moduleConfig的方法就能够完成。
理论上ViewModuleManager和FragmentModuleManager获取的root分发moduleContex的对象应该无差异。
在ModuleBus的例子里,将提供一个简单的实例让你们参考。
添加一个page_view的module用于做为分发的module,其依赖于base module,而app module要依赖于这个page_view的module。
PageConfig添加模块入口的包名文件地址。
在Fragment中添加上面所说得ModuleManagerView的实例。(Activity也是同样的方式便可建立)
参考上一节的ModuleExampleFragment的显示,添加了Page_View显示的布局。
固然演示样例,都会放到ModuleBus的开源代码上面,欢迎你们给个star支持一下。
组件化非必定要用到ModuleManagerView,这里是介绍只是ModuleManagerView为组件化最小单位,是让你们有这样的概念思想。有同窗以为管理成本太大,能够考虑优化,我很欢迎听到更多的建议。
这节的内容就到这里,
下一节,将会给出一些组件化优化的策略,敬请期待!!!
我创建了一个关于Android架构学习的群,里面能够进一步进行组件化学习和架构思想的的交流。
群号是316556016,也能够扫码进群。我在这里期待大家的加入!!!