Android MVP实战——环境云API+Android实现天气预报查询(上)

本文介绍了一种使用MVP架构和环境云API在Android上实现天气查询的方法。首先概述了MVP模式,然后介绍了如何注册环境云账号、搭建Android项目,设计业务逻辑,包括Model、Presenter和View的职责。接着讲解了如何将JSON转换为Java Bean。最后,文章预告了接下来的实现细节。
摘要由CSDN通过智能技术生成

前言


最近在学习Android高级开发,除了加强UI、四大组件等的使用技巧外,更多的是学习android项目结构的设计,例如常见的MVCMVP以及最近才了解到的MVVM等。本次项目就是在采用MVP结构,同时结合环境云实现查询全国主要城市的天气预报信息,也是非常简单、实用的一个小Demo。
这里写图片描述

环境云简介:环境云环境大数据服务平台通过获取权威数据源(中国气象网、中央气象台、国家环保部数据中心、美国全球地震信息中心等等)所发布的各类环境数据,以及云创自主布建的各类全国性环境监控传感器网络(包括PM2.5,各类空气质量指标,土壤环境质量指标检测网络)所采集的数据,并结合相关数据预测模型生成的预报数据,依托数据托管服务平台万物云(www.wanwuyun.com)所提供的基础存储服务,推出一系列功能丰富的、便捷易用的基于RESTful架构的综合环境数据调用接口。配合代码示例和详尽的接口使用说明,向各种应用的开发者免费提供可靠丰富的气象、环境、灾害以及地理数据服务。。

MVP简介


相信大家对MVC都是比较熟悉了:M-Model-模型、V-View-视图、C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的MVP所对应的意义:M-Model-模型、V-View-视图、P-Presenter-表示器。从MVC和MVP两者结合来看,Controlller/Presenter在MVC/MVP中都起着逻辑控制处理的角色,起着控制各业务流程的作用。而MVP与MVC最不同的一点是M与V是不直接关联的也是就Model与View不存在直接关系,这两者之间间隔着的是Presenter层,其负责调控View与Model之间的间接交互,MVP的结构图如下所示,对于这个图理解即可而不必限于其中的条条框框,毕竟在不同的场景下多少会有些出入的。在Android中很重要的一点就是对UI的操作基本上需要异步进行也就是在MainThread中才能操作UI,所以对View与Model的切断分离是合理的。此外Presenter与View、Model的交互使用接口定义交互操作可以进一步达到松耦合也可以通过接口更加方便地进行单元测试。
这里写图片描述
以上内容引自Android中的MVP

MVP的优点:

  1. 在MVP中,Presenter可以用于多个视图,但在MVC中的Activity就不行
  2. 模型与视图完全分离,我们可以修改视图而不影响模型
  3. 可以更高效的使用模型,因为所有的交互都发生在一个地方——Presenter
  4. 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑单元

准备工作


一、注册环境云

1、打开浏览器输入http://www.envicloud.cn/pages/register.html ,进入环境云登录页面;
填写基本信息
2、注册完成后,将会在您注册时使用的邮箱中收到激活邮件,请按提示点击激活链接;
这里写图片描述
3、登录环境云,点击安全管理的安全凭证标签页,获取您的用户私钥。
这里写图片描述

二、搭建项目环境

1、新建Android 工程:打开Android Studio建立一个android项目,其中详细细节我就不再讲述了,不会的大家可以百度一下,你就知道。我的项目名为WeatherDemo
2、组织包结构:详细结构如下图所示
这里写图片描述
3、导入所需jar包:

  • gson.jar
  • volley.jar

三、设计业务逻辑


本项目非常的简单,只有一个实体类,那就是Weather类,所以所有的业务逻辑都是围绕Weather类展开的。用一张图就可以非常完美的展示我们项目的流程:

Created with Raphaël 2.1.0 WeatherView WeatherView
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值