安卓开发 第二篇 我的安卓应用架构设计

说起架构,很多人可能会觉得那是很高大上的东西,自己是做不到的;说起安卓架构,很多人更是会嗤之以鼻,就安卓应用,所有东西都是在activity里面执行的,直接把业务罗辑写到里面就行了。其实不然,我们做任何事情都需要有规划,这样能够提高效率,同时也会避免后期的混乱。

开发一款app就像建造一幢房屋一样,提前对这幢房屋进行规划,设计,考虑各种因素,然后画出结构图纸,当我们去建造房子的时候才会思路清晰,并且建造起来才会快速(而不是先把房子建出来,觉得不满意就推到重来)。架构的好坏直接决定了你建出来的是城中村还是小区房,是别墅还是土屋,是温馨安全的家还是危楼(有的app改一个地方就会崩)。

对于新项目来说,由于对于业务流程不熟悉,我们可以按照自己的方式快速开发出第一个版本,然后根据需要进行架构设计(不然你可能会比较迷茫,不知道设计架构app的时候某些行为是否有必要,就像有人找你设计建造一个房子,你不知道他具体想要什么样的房子,他的投入是多少等等,然后你就无法凭空设计),重构你的项目。

就像Torvalds说的,与其长时间纠结于各种可选方案,我更倾向于先做出一个哪怕事后证明是错误的决定。是的,架构项目的时候不要空想,如果你确实不知道怎么选择,那就先去敲代码,验证自己的想法,哪怕是错误的,至少自己知道自己错在哪里。重构对于一个程序猿来说,应该是一件稀松平常的事,你不能保证你的每个想法和敲出的代码都是完美的,也许一段时间后,你去看自己以前的代码,你会吃惊的说:“天哪,这是我写的吗,我怎么会写这样糟糕的代码”。

好了,废话就不多说了,接下来就谈谈我的安卓架构设计吧。

我的应用架构设计是基于MVP开发模式和clean架构思想,如果你不知道MVP开发模式,那么请自行谷歌,百度。clean的架构思想是Bob大叔提出的,核心思想是你可以把一个应用划分成许多层,外层对于内层是透明的(内层不知道外层有些什么东西),而内层对外层是完全可见的(想象一下洋葱的结构)。

结构图如下(自己也纠结了好久,弄成这个样子)

安卓开发 第二篇 我的安卓应用架构设计_第1张图片

下面就具体说说。

1.数据层
数据层包含model类,网络接口类,网络请求返回数据类(具体的返回数据,一般会根据需要再将数据转化为model对象),以及一些缓存类(db缓存,sd卡缓存等等)

2.领域层
领域层是一些仓库类,包含具体的获取数据的方式(网络请求,缓存策略等等),和Presenter类,进行具体的业务罗辑的处理。

3.展现层
这里我一共分为了四个包:adapter(放置适配器),ui(放置activity,fragment,一些辅助类)
,view(presenter操作view的接口),di(依赖注入)

4.附加层
这里包含一些工具类,第三方SDK,库(比如百度地图,极光推送,友盟分享,支付SDk等等),以及一些连接这些第三方sdk和自己项目的类似于胶水性质的类。

总体上来说,就是这样,关于我的架构设计的细节,会在接下来的文章中慢慢讲述。

如果有更深的理解,本文将会修改;
如果有错误的地方,欢迎指正;
如果你有更好的理解,欢迎交流。

本文为原创文章,版权归博主所有,转载请注明出处。

更多资料:
Android上实现MVP模式的途径:http://android.jobbole.com/80915/
clean 架构:https://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
我的github地址以及使用demo: https://github.com/naivor/naivorapp

你可能感兴趣的:(android,架构设计,clean,结构,mvp)