一、架构设计
二、模块职责
1、空壳模块
空壳模块中声明app的Application,这个 Application必须继承自Common组件中的 BaseApplication,因为只有这样,在打包应用后才能让BaseApplication中的Context生效。
2、业务组件层,如图
-
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,其他功能组件使用到的三方库。