Android项目重构及架构设计

Android开发框架大全- http://www.ctolib.com/topics-113373.html?ref=myread

平安好医生技术栈的分析(APP架构)- http://blog.csdn.net/caroline_wendy/article/details/51426837

基于RxJava+Retrofit精心打造的Android基础框架(源码)-http://download.csdn.net/detail/xiaoyaoyou1212/9755991

好客户端是怎样炼成的- http://blog.csdn.net/a345017062/article/details/45538187

程序的功能才是我做的所有工作中用户真正想要和关心的。架构能够满足应用的需要即可。

 模块化开发

有赞 App 模块化实战经验总结- https://youzanmobile.github.io/2017/04/14/youzan-app-modularization/

Android 开发:由模块化到组件化(一)- http://blog.csdn.net/dd864140130/article/details/53645290

在Android Studio分为了相应的四个模块(Module):model、api、core、app。

model为模型层,api为接口层,core为核心层,app为界面层。
model、api、core这三个模块的类型为library,app模块的类型为application。
四个模块之间的依赖设置为:model没有任何依赖,接口层依赖了模型层,核心层依赖了模型层和接口层,界面层依赖了核心层和模型层。


  将项目分为了四个层级:模型层、接口层、核心层、界面层。模型层定义了所有的模型;接口层封装了服务器提供的API;核心层处理所有业务逻辑;界面层就处理界面的展示。

  模块化就是将一个程序按照其功能做拆分,分成相互独立的模块,以便于每个模块只包含与其功能相关的内容。模块我们相对熟悉,比如登录功能可以是一个模块,搜索功能可以是一个模块,汽车的发送机也可是一个模块.

  模块化开发,模块化开发中最大的问题就是组件间通讯-->路由的概念,把项目模块化了, 那两个组件间进行通讯或者跳转, 我们一般构建Intent的方式就不再使用了
 路由的方案:
1.完全自己实现路由, 完全封装跳转参数
2.利用隐式意图跳转(Android原生支持,仅支持Activity, Service, BroadcastReceiver)
go web开发之url路由设计- http://blog.csdn.net/qibin0506/article/details/52614290
Android路由实现- http://blog.csdn.net/qibin0506/article/details/53373412

App模块化分为5层模型:
(1)应用层是生成app和初始化操作的加载
(2)模块层,每个模块相当于一个业务,通过module来分隔开每个业务的逻辑。
(3)基础层,基础组件的整合,提供基础组件能力给业务层使用。
(4)组件层,通过图片加载,网络http,socket等基础功能划分为一层。
(5)基础库层,更加基础的库类依赖,此层非必须,例如(Rxjava,EventBus等一些代码结构优化的库),还有自己编写的封装类。

插件化,研发阶段考虑的问题
(1)资源冗余解决,包括对于base module的依赖和库依赖
(2)混淆相关和资源冲突
(3)插件加载方式
(4)通信依赖,数据交互,事件触发

模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口,这句话可能有点绕,等文章后面举例说明;异步调用是一种类似消息或事件的机制,解决了同步阻塞的问题。

> 重构围绕一个老生常谈的概念「解耦」展开,设定几个目标:

1.清晰划分各模块的角色
2.明确架构层级及各个模块所在的层级
3.提高整个架构横向扩展的能力
4.提高编译效率,由于我们项目大量使用 Kotlin 开发和 AOP 技术,在编译上面个比较耗时,期望在架构调整后,在整个项目的编译效率上又一次大的提升
5.各模块独立开发,面向接口和协议编程
6.提高可维护性

充分考虑可拓展性和可维护性,把模块化、性能优化、用户体验等
关于App重构的几个方面- http://www.jianshu.com/p/1125f4be4cc3

Android重构记录及其模块化- http://blog.csdn.net/jonstank2013/article/details/56833462

Android项目重构之路:架构篇 - http://keeganlee.me/post/android/20150605
Android项目重构之路:界面篇 - http://keeganlee.me/post/android/20150619
Android项目重构之路:实现篇- http://keeganlee.me/post/android/20150629


> App架构设计

App架构设计经验谈:接口的设计     - http://keeganlee.me/post/architecture/20160107
App架构设计经验谈:技术选型         - http://keeganlee.me/post/architecture/20160114
App架构设计经验谈:数据层的设计 - http://keeganlee.me/post/architecture/20160120
App架构设计经验谈:业务层的设计 - http://keeganlee.me/post/architecture/20160214

App架构设计经验谈:展示层的设计 - http://keeganlee.me/post/architecture/20160222

Android中级第十二讲浅谈架构设计- http://blog.csdn.net/reboot123/article/details/51321248

内容型App的客户端架构之道- http://www.infoq.com/cn/presentations/content-type-app-client-architecture

> 网络请求框架

各种Android网络请求框架、工具类- http://www.ctolib.com/topics-113377.html?ref=myread

网络框架AndNet- https://github.com/qibin0506/AndNet

Okhttp

你可能感兴趣的:(Android项目重构及架构设计)