Android模块化分层设计

一、模块化分层设计

 

1.前言

该设计只适用于有前景或工程庞大的项目,当然产品除外,其实研发没必要为了设计而设计,如果只是一个小项目,那么完全可以忽略这篇文章。大家在做产品或者做大项目的过程中,如果没有进行模块分层设计,特别是年代悠久的项目,那简直酸爽,客户在不停的变更需求,项目成员在不停的更替,这个时候基本是不敢轻易的修改代码,牵一发而动全身啊。如果我们在研发前期,采用模块化分层设计,将共用、基础构件与具体业务构件分离,大家各司其职,既能提高多团队间并发开发效率,同时也能提高软件重用度,减少维护成本,并且能根据项目的不同需求对功能进行裁剪和重组。

 

引用几个概念知识:

• 模块化:指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。

• 插件化:和模块化差不多,只是它是可以把模块打包成独立的apk,可以动态的加载,删除,独立的插件apk可以在线下载安装,有利于减少apk的体积和实现模块的热修复。目前热门的插件化方案有:阿里的atlas,360公司的RePlugin,滴滴的VirtualAPK等等;

• 组件化:组件是指通用的功能或者UI库可以做成一个组件,比如说分享,支付可以当成组件,下拉刷新可以做成组件,模块化项目是根据业务抽离的,而组件化项目则是根据功能UI抽离的,一个模块可以依赖多个组件。组件则不能再依赖其他组件。

 

2.具有的特征及优点

(1)业务模块间解耦;

(2)单个业务模块可单独编译打包;

(3)多团队间并发开发、测试;

(4)灵活应对组件插拔需求;

 

3.模块化分层设计

模块化分层设计一共分为以下5层:

 

(1)宿主层:不做具体的项目功能实现,只负责集成业务模块,组装成一个完整的APP;

(2)业务模块层:将项目的每个大功能模块拆分成的一个一个单独的module,可独立运行,同产品的不同项目也可复用;

(3)基础业务组件层:此层最大的作用是为了模块间复用,例如模块A和模块B都出现任务搜索功能,像这种与业务有关联且需要多处使用的情况,我们将其抽离出来作为基础业务组件,同产品的不同项目也可复用;

(4)通用组件层:此层的模块与业务无关,与项目也无关,可由多个核心组件构成,原则上,所有项目都可以全部复用;

(5)核心组件层:此层的模块与业务无关,与项目也无关,原则上,所有项目都可以全部复用;

 

建议通用组件和核心组件都有自己独立的Project,便于长期维护,基础业务组件和业务模块视情况而定,如果同类项目较多,可提炼公用部分创建独立的Project,比如IM通信,则可提炼出来,将UI、数据存储、网络请求等全部封装,如果其他项目有这个需求,直接拿过来用即可。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值