模块化分层
1.结构清晰,各模块代码分离,符合高内聚低耦合,快速定位查找代码
2.团队协作开发灵活,互不影响,各模块完成后合并即可完成整体app
3.抽离公共层、模块层、业务层,方便维护管理
分层架构图
- App下的Home(首页)、Mine(我的)、Login(登录)、Main(主页)等是app功能模块划分,根据模块大小自由定义拆分粒度
- 公共层主要作为app各大功能模块的共有依赖,抽取模块共性(如:接口调用、数据库、公共页面、公共业务工具类)
- 底层库是所有项目通用的,主要是些base类,网络接口封装、工具类等
代码结构

config.gradle
config.gradle文件主要是统一管理定义整个项目的所有依赖包的版本、编译工具、最低最高适配,这里定义的版本号建议明确化版本,不要有4.+这类模糊版本定义,一旦产品成型,不要轻易升级第三方版本,除非必要,毕竟稳定性优先!
代码封装
1.base类,主要分类三类
1)所有项目都通用都base,放到module_common_base库,主要封装一些打印信息、常用BaseActivity、BaseFragment甚至Base所有的View控件等功能
2)本项目特定的base,继承module_common_base库base,放到module_app_common的base里,定制项目通用的base,如通用导航栏、下拉刷新上拉加载更多等
3)某些页面共性封装,如同类产品详情页面、同类列表页面等
2.建议所有第三方库都需要再封装一层
1)编程语言、系统更新都很快,第三方库不一定能及时更行
2)随着项目的扩张,某些第三方库已经无法满足需求,需要找替代品
3)第三方库功能过多,需要封装出项目特定的API接口
架构适用性
此接口适合中小型app项目,大型项目的话可以把App里功能Modules再细分,每个module都可以拆分为UI层module、business业务层module,module_app_common库下的各模块功能各作为一个module(如:数据库、支付、Service、Router等)。如果需要对外提供SDK的同样需要再抽离出module。可以根据实际情况拆分
架构分层
不要被MVC、MVVM、VIPER等架构锁死,这些架构只是提供一些思路,学会了需要灵活运用,总结归纳,适合自己的才是最好的
源码下载
网友评论