APP组件化架构建设

515 阅读1分钟

一、架构设计

image.png

二、模块职责

1、空壳模块  空壳模块中声明app的Application,这个 Application必须继承自Common组件中的 BaseApplication,因为只有这样,在打包应用后才能让BaseApplication中的Context生效。

2、业务组件层,如图

image.png

  • 1)、技术选型:

    A、设计模式: MVVM(JetPack:ViewMode/ Livedata/Databinding/room等)

    B、路由框架:ARouter

    C、网络框架:Retrofit+Kotlin协程

  • 2)、组件划分:根据具体业务而独立形成一个的工程,实际开发需要考虑涉及的各个业务线。

  • 3)、组件通信

    a、gradle.properties里配置组件化开关: isBuildModule 为 true 时可以使每个组件独立运行,  false 则可以将所有组件集成到宿主 App 中。

    b、跳转

        传值:

        ARouter.getInstance().build(“xxx”)                                        

                                  .withString("name", bean.itemName)

                                  .withInt("type", type)

                                  .navigation()

     接收,Route注解注册路径

       @Route(path = "xxx")

        class XXX : BaseActivity()

3、功能组件层

  • 1)、基础框架( Common Library):支撑业务组件的基础,所有业务组件都要依赖。

    baseXXX (baseActivity等)

    utils

    网络模块:Kotlin + 协程

    数据存储:(MMKV,DataStore)

    权限

    日志

    基础UI(如 toolbar 等)

    . . . . . .

  • 2)、其他功能组件:某一个或几个业务组件依赖,并不是所有业务组件都依赖.

4、第三方库层

  • 主要包括公共基础库依赖的三方库如appcompat,其他功能组件使用到的三方库。