美文网首页安卓Android知识Android开发
[Android]如何做一个崩溃率少于千分之三噶应用app(15

[Android]如何做一个崩溃率少于千分之三噶应用app(15

作者: CangWang | 来源:发表于2017-01-16 10:36 被阅读933次

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

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

    这个系列的有关架构的概念,适合有大概 三年以上Android经验 的同学理解。如果你大概一年半以上经验,入门进阶了,我近段时间会开展分析MVP的相关架构章节。到时有兴趣的同学,可以查看一番。

    如果没看过上一篇Activity分发功能module,还有Fragment分发module架构,请移步查看。

    如果有看过我上两编文章的同学,才能真正感受到组件化的威力。

    这个框架才是真正可以分离出module架构,反映出组件化开发的分工的架构方式。

    一.从Activity和Fragment作出分发,有些人一定会想知道最小可以分发module的分子是什么?

    应该是View。

    在Activity和Fragment分发的架构中可以看出,都是分发一个RelativeLayout到其他module里面作为布局View的。

    View架构图示

    那么最小单位就应该是分发一个RelativeLayout作为Module的View布局。

    从Fragment的布局中可以是把相关的RelativeLayout id加入到视图Map里面

    然后通过id来获取视图再分发到每个module的moduleContext里面

    关联视图

    你是否清楚View和ViewGroup的生命周期?

    如果我们希望每个module里面都应该拥有Activity或者Fragment的周期,那么应该如何处理?

    请认真思考一下。

    上两章所说Fragment和Activity,都拥有自己的生命周期,我们通过封装抽象类,重写他们的方法,让其每个Module都拥有Fragment和Activity一样的生命周期。

    但是View并没有像Activity和Fragment一样的生命周期流程。页面暂停恢复,View是没法通过自身的方法感知到外部Activity和Fragment的情况的。

    那么我们只能抽象类View,让其设定一些生命周期函数。

    ModuleManagerView

    通过外部依附的Activity或Fragment生命中调用,传递周期。

    生命周期传递

    当然有熟知View或者ViewGroup生命周期的函数的同学,也可以自主去做一些周期函数优化,例如

    onDetachedFromWindow,onFinishInflate等等。

    然后需要在Fragment的onCreateView或者Activity的onCreate中创建出抽象类View出来,只需要复写一个moduleConfig的方法就可以完成。

    抽象类创建时

    理论上ViewModuleManager和FragmentModuleManager获取的root分发moduleContex的对象应该无差别。

    ViewModuleManager

    在ModuleBus的例子里,将提供一个简单的实例让大家参考。

    添加一个page_view的module用于作为分发的module,其依赖于base module,而app module要依赖于这个page_view的module。

    PageConfig添加模块入口的包名文件地址。

    在Fragment中添加上面所说得ModuleManagerView的实例。(Activity也是一样的方式即可创建)

    参考上一节的ModuleExampleFragment的显示,添加了Page_View显示的布局。

    View视图

    当然演示样例,都会放到ModuleBus的开源代码上面,欢迎大家给个star支持一下。

    组件化非一定要用到ModuleManagerView,这里是介绍只是ModuleManagerView为组件化最小单位,是让大家有这样的概念思想。有同学觉得管理成本太大,可以考虑优化,我很欢迎听到更多的建议。

    这节的内容就到这里,

    你心里面是否有组件化的概念?你觉得这个架构如何?你觉得是否有什么缺陷的地方?

    下一节,将会给出一些组件化优化的策略,敬请期待!!!

    我建立了一个关于Android架构学习的群,里面可以进一步进行组件化学习和架构思想的的交流。

    群号是316556016,也可以扫码进群。我在这里期待你们的加入!!!

    相关文章

      网友评论

      • 1955720f3ac2:复杂,并且侵入性强,实际上有更简单的做法
        1955720f3ac2:@CangWang
        可以参考google的Lifecycle,抽象出LifecycleDispatcher,LifecycleOwner,LifecycleObserver三个概念
        1.生命周期变化 的分发起点可以放在ActivityLifecycleCallbacks和FragmentCallback
        2.不建议对View这么做,事件分发的终点应该是功能组件,UI管理类,或者MVx中的Controller
        CangWang:@EkkoLee 请赐教更加简答的做法
      • db59667c4a37:期待下一期
        CangWang:新的一期已经出了。
      • 香沙小熊:能不能建一个微信群😀
        CangWang:平时大家工作时候都是用QQ群比较多,微信群反而少上,有问题交流还是QQ群比较方便,不排除以后也会开微信群

      本文标题:[Android]如何做一个崩溃率少于千分之三噶应用app(15

      本文链接:https://www.haomeiwen.com/subject/thqebttx.html