Android 项目架构探索

Android Architecture

概述

该项目结合 MVP 与 Clean 架构思想,探索在 Android 项目上的最佳实践。

遵循 Clean Architecture 的原则。

这里写图片描述

  • 数据层(Data Layer):加入数据转换层(Mapper)将服务端数据模型(Entity)与本地数据模型(Model)解耦。
  • 业务层(Domain Layer):按模块划分业务,具体业务交给 Usecase 处理。
  • 显示层(View Layer): Presenter 不再与 Activity/Fragment 一一对应,Presenter 按照业务模块划分功能,大大提高 Presenter 的复用性。Activity/Fragment 中可以实现多个 View,持有多个 Presenter 来完成业务逻辑。

示例

分支描述
master演示了 Model-View-Presenter(MVP)+ Clean 架构,提供一些基类,状态栏沉浸适配等
develop使用 butterknife
develop-dagger加入 dagger 的支持
develop-dagger-rxjava加入 rxjava 的支持

数据层(Data Layer)

这里写图片描述

数据层(Data Layer)主要是数据获取与数据缓存策略的处理。

比如:第一次获取到数据,缓存到持久层(持久层可以放入数据库,SharedPreferences,文件或者其他形式)和内存中;第二次获取数据时应优先从内存中读取,其次是持久层,若本地缓存失效则直接从远程服务端获取,然后缓存到本地。

具体实现参见 UserRepository

业务层(Domain Layer)

这里写图片描述

业务层(Domain Layer)主要是根据业务需求来操作数据的逻辑。业务层将每条需求交个 Usecase 来处理,Usecase 通过 Repository 来获取数据。业务层与数据层解耦,方便扩展与测试。

具体实现参见 LoginRemoteTask

显示层(View Layer)

这里写图片描述

显示层(View Layer)主要是数据的展示与更新操作。显示层通过 Presenter 与业务层交互,Activity / Fragment 与 Presenter 解耦,将业务实现由 Presenter 组合而成。Presenter 与 View 对应,Activity / Fragment 由多个 View 管理。

具体实现参见 LoginActivity

项目结构

这里写图片描述

参考资料

Android 开发规范

android-architecture

Android-CleanArchitecture

项目地址

https://github.com/jeanboydev/Android-Architecture



欢迎 长按下图 -> 识别图中二维码

或者 扫一扫 关注我的公众号

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值