Android APP架构的那点事儿 [开篇]

来源:互联网 发布:2016获取访客qq源码 编辑:程序博客网 时间:2024/06/06 04:09

万事开头难,相信很多朋友都是半途切入一个项目完成第一次真正意义APP开发。那么问题就来,很多新人都会抱怨说我缺少一个完整项目的经验、要学习App架构巴拉巴拉。。。

成!那今天我们就扒一扒APP架构的那些事。

架构很重要?

真的,很重要!很重要!很重要!说三遍!

  • 早期的架构设计抉择对app的影响很大、很大、很大!
  • 基本架构会让你思考需要解决的问题变得更容易或困难。

哪种模式?

  • MVC
  • MVP
  • MVVM
  • 其他…

在选择什么样的模式之前,首先理解用户不会关心你系统的架构,他们只在意用户体验。而当我们的PM在为提升用户体验是不是要经常更改需求、增加功能、删除功能,然后各种修改UI、修改逻辑、折磨可怜的程序猿,最好APP迭代上线。

那么问题来了,某个模块的代码改来改去,到最后有可能改的连开发者自己都知道这段代码出自哪个需求了。so,我们需要一个”代码结构清晰”、”Model和View解耦”、”代码模块化”、”经得起PM频繁改需求的考验”、更重要的是”能拿出手出去吹牛逼”,所以我们就选了MVP模式(其实也是博主比较熟悉的一种模式罢了,感兴趣的朋友自行搜索)。

第三方库的选择?

  • APP需要实现什么功能(代码层面)?
  • APP需要实现哪些需求(用户层面)?
  • APP需要达到什么要求?是否需要支持随时更换?

现在我们要做一个天气预报的例子,首先请求网络是必须的,其次图片下载貌似也成标配了,接着天气预报是不是要画天气折线图(理解趋势图也行),当然不能忘记的是JSON数据解析了。so…

我们需要:    1. JSON解析库 gson     2. 趋势图库 mpandroid chart library     3. 图片下载库 universal image loader     4. 网络请求库 Volly

基本架构

so,准好好需要的素材后是不是就该着手编码了.But 此编码非彼编码.要明白我们现在是在搭架构,架构明白么?咱是在给APP做设计架构,不是搬砖!别上来就想编写代码实现功能.

先画出APP基本架构原型.

APP基本架构

网络模块 负责与服务器建立通讯,通过http请求并响应服务器返回的信息。

解析模块 主要用来解析服务器返回的JSON数据流。根据解析元素不同类型封装成不同的数据对象。即我们使用到的Gson解析库

数据模块 定义整个客户端中大部分的数据类型和对象;

加解密模块 对发送和接收的消息进行加解密,以确保通讯数据的安全。例如AES加解密。

图片请求模块 负责响应指示器模块图片请求以及服务器返回的图片地址。

指示器模块 该模块也就是MVP架构中的P-Presenter-指示器(主持者),作为UI模块和数据模块的交互中间件,同时也处理部分业务逻辑。

示例 源码

0 0
原创粉丝点击