当前位置: 首页 > 编程日记 > 正文

基于android的天气预报的设计与实现

目录

  1. 应用开发技术及开发平台介绍
  2. 应用需求分析
  3. 应用功能设计及其描述
  4. 应用UI展示

①开发技术:

本系统是采用面向对象的软件开发方法,基于Android studio开发平台,以Android作为本系统的开发语言实现音乐播放器预定的需求功能。

②平台介绍

  • 硬件平台

CPU奔腾双核 (主频2.0GHz)

内存1G以上

64或32位PC机

500G硬盘

  • 软件平台

操作系统:Windows XP \ Win7\Win8\win10

开发工具:Android Studio

本软件占用系统空间小,能满足用户对常见音频格式文件的播放要求,还具有歌曲、歌词下载等功能,界面美观交互性好,易于用户理解操作,且不依赖于其它软件,消耗资源少易维护,程序有较好的健壮性和正确性。运行该软件所需的坏境配置不高,能满足绝大多数用户的需求。

②应用需求分析

现有的4G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。通过Web Service等技术让用户体验到前所未有的移动计算。

③应用功能设计及其描述

1、总体设计

本软件是一个App Widget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过开源API提供的服务获取天气预报信息,并将天气信息保存在数据库中。该软件的基本功能需求有:

(1) 启动App Widget应用程序;

(2) 设置界面:对要显示天气预报的城市及更新频率进行设置;

(3) 显示界面:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。

(4) 详细界面:在显示出“显示界面”上所有信息的同时用列表的形式显示当天的天气情况。

2、数据库设计

本软件中有两部分数据需要存储,一个是显示页面的数据,另一个是详细页面的数据。但是数据量都不是很大,因此可以选择SQLite数据库作为存储数据的方法,建立数据库forecasts.db,并且建立两张表weather_widget和weather_forecast,分别存储显示页面的数据和详细页面的数据。

3、功能模块设计

从功能需求上分析可以看出,整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如下图所示:

从模块结构图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责周期性的从开源API获取天气信息。后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。

用户界面是从数据库中获取天气信息,而没有直接通过网络访问开源API的天气数据。这样设计,一方面可以避免因网络通信不畅而造成界面失去响应;另一方面,后台服务可以及时更新数据,以保证数据的准确性。数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它来实现对数据库的操作。

④UI展示

转载于:https://www.cnblogs.com/zhuangshounaZSN/p/10043234.html

相关文章:

敏捷开发有感!

http://sd.csdn.net/n/20060913/94713.html1.我们最优先要做的是通过尽早的,持续的交付有价值的软件来使客户满意。有一篇文章分析了对于公司构建高质量产品方面有帮助的软件开发实践,其中一个实践表明尽早的交付具有部分功能的系统和系统质量之间具有很…

ng 表单提交验证

http://www.runoob.com/try/try.php?filenametry_ng_validate 转载于:https://www.cnblogs.com/alvin553819/p/7127226.html

Infragistics NetAdvantage 2006 Volume 2 CLR 2.0曲折安装

上个月看到Infragistics NetAdvantage 2006 Volume 2 CLR 2.0(新特性)新鲜出炉,就一直想安装试用。昨天qq上得知已经有人在使用了,赶紧google一个down下来。经过漫长下载等待,满怀希望安装,哪想到快完成的时候居然报错&#xff0c…

数据结构之【栈】的基本操作C语言实现

引题: 很多人都把【栈】描述成【弹匣】,但我总感觉有点不恰当,因为弹匣从上端【装弹】之后,子弹总是在匣的上层;而元素【进栈】之后,总在栈的下面。 我觉得还是描述成【从下往上向书箱里一层…

编码小记(未整理-持续更新)

----------------基本概念-------------------------------一.位: 计算机存储信息的最小单位,称之为位(bit),音译比特,二进制的一个“0”或一个“1”叫一位。 二.字节 字节(Byte)是一…

使用locate 的正则查询 查找所有main.c

locate支持正则查询的功能, 只需输入locate -r 正则表达式 即可。 现在我想查找所有main.c怎么做? 打开终端,输入shell: locate -r main.c$ PS:$表示结束字符串结束。转载于:https://www.cnblogs.com/the-one/p…

My Favorites

AJAX "Atlas" Control Toolkit HomePage "Atlas" Client Class Library "Atlas" Server Class Library ASP.NET AJAX Roadmap http://www.ajaxian.com 被成为AJAX第一站 . http://www.ajaxmatters.com/ 不仅有讨论XMLHttpRequest 的文…

数据库事务初探

使用事务级别要慎重: 因为事务级别越高,数量越多、限制性更强的锁就会被运用到数据库记录或者表中。同时,更多的锁被运用到数据库和它们的覆盖面越宽,任意两个事务冲突的可能性就越大。 如果有一个冲突(例如两个事务试图获取同一个…

数据结构之【队列】的基本操作C语言实现

直接上图: 循环队列的声明: 0、循环队列的声明 循环队列的基本操作: 1、InitQueue(&Q)(构造一个空队列) 2、DestroyQueue(&Q)(销毁队列Q) 3、ClearQueue(&Q)(清空队列Q&…

在python3环境安装builtwith模块

1、安装命令: pip install builtwith 如果在命令行提示如下错误: Fatal error in launcher: Unable to create process using " 使用如下命令: python3 -m pip install builtwith 2、导入模块会出现错误提示: 原因&#xff1…

kettle组件-输出

1:删除连接数据库:新建连接数据库,或者应用转换中已经定义好的数据库。目标模式:指什么现在还不明确,集群模式?子服务器模式?--要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。目…

NGOSS的一点简单概念

NGOSS(Next Generation Operational Support Systems)是由TMF(Tele Management Forum)提出的,他用于电信领域,是构建下一代OSS/BSS系统的框架。TMF提供了技术中立构架(TNA)作为NGOSS…

Windows Mobile 5.0 设备的目录变化

自定义铃声的默认两个存放位置:1. Application Data\Sounds (不是Storage下的Application Data了)。2. 外存储设备的根目录。

第二周期的第一次站立会议

今天:对这一阶段的任务进行了分配,我就自己的任务内容搜集了一些资料,尝试了编程。明天:继续进行编程。遇到的问题:编程方面有些许的困难。转载于:https://www.cnblogs.com/guantianhuan/p/10051436.html

常见的函数式编程模型

1.闭包(Closure) 闭包的概念 可以保留局部变量不被释放的代码块,被称为一个闭包。 闭包的特点:函数嵌套函数、内部函数可以引用外部函数的参数和变量、参数和变量不会被垃圾回收机制收回 // 创建一个闭包 function makeCounter() …

Ubuntu下安装和配置Redis

找到 /ect/redis/redis.conf 文件修改如下:注释掉 127.0.0.1 ,如果不需要远程连接redis则不需要这个操作。使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG。默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。执行sudo apt-get install redis-server 安装命令。查看 redis 是否启动,重新打开一个窗口。停止/启动/重启redis。

自学笔记——1.Pyhton保留关键字

Python保留关键字python保留的关键字如下python保留的关键字如下 and del from None True as elif global nonlocal try assert else if not while break except import or with class False in pass yield continue finally is raise def for lambda…

人的一生有三件事不能等

人的一生有三件事不能等人的一生有三件事不能等 第一是“贫穷” 贫穷不能等,因为一但时间久了,你将习惯贫穷,到时不但无法突破自我,甚至会抹杀了自己的梦想,而庸庸碌碌的过一辈子。。。。。。 第二是“梦想” 梦想不能…

安装部署中的数据库打包和快捷方式启动浏览器

前一段时间&#xff0c;因为工作的需要&#xff0c;学习了一些.net的部署。在打包的过程中遇到了几个问题&#xff1a;<?XML:NAMESPACE PREFIX O />1、 数据库脚本打包&#xff0c;如何修改Web.config文件中的数据联接2、 数据库脚本中的方法和视图打包时要注意的问题…

Windows下安装和配置Redis

下载版本Redis-x64-5.0.14.1.zip。(可能需要开代理)

python练习册 每天一个小程序 第0004题

1 #-*-coding:utf-8-*- 2 __author__ Deen 3 4 题目描述&#xff1a;任一个英文的纯文本文件&#xff0c;统计其中的单词出现的个数。5 参考学习链接&#xff1a;6 re http://www.cnblogs.com/tina-python/p/5508402.html#undefined7 collections http://blog.csdn.…

xxxxxxx

xxxxxxxxxxxxxxxx转载于:https://www.cnblogs.com/pythonClub/p/10054454.html

自学笔记——2.字符串的切片、遍历、查找字符

一、字符串的切片 字符串的部分片段或者子集称为切片操作&#xff0c;所有字符串的切片操作是通过方括号&#xff08;[ ]&#xff09;实现的&#xff0c;语法&#xff1a;[n : m : s] 会返回一个子字符串&#xff0c;从索引值n到n-1之间&#xff0c;以s为步进&#xff0c;即&a…

【EXLIBRIS】随笔记 011

随 笔 记 <十一> 持这种观点的人一个是Dr. Johnson&#xff0c;另一个是西方文化影响更加根深蒂固的Reverend&#xff0c;似乎英文字母&#xff08;Indian-European family&#xff09;那种“抽象的、率意独断”的符号&#xff08;Wai-lim Yip语&#xff09;才是最基本的…

Ubuntu搭建Spark运行环境

前言 因为之前研究的方向是分布式系统&#xff0c;重点放在了Hadoop分布式文件系统上。现如今&#xff0c;社会对机器学习的需求势如破竹。为了调整研究方向&#xff0c;而且不抛弃原本的研究成果&#xff0c;研究反向便从分布式系统转为分布式机器学习算法&#xff08;刚起步&…

hibernate 和 mybatis 的区别

【转载】&#xff1a;JAVA面试中问及HIBERNATE与 MYBATIS的对比&#xff0c;在这里做一下总结转载于:https://www.cnblogs.com/virgosnail/p/10054987.html

VC中基于 Windows 的精确定时

方式一&#xff1a;VC中的WM_TIMER消息映射能进行简单的时间控制。首先调用函数SetTimer()设置定时 间隔&#xff0c;如SetTimer(0,200,NULL)即为设置200ms的时间间隔。然后在应用程序中增加定时响应函数 OnTimer()&#xff0c;并在该函数中添加响应的处理语句&#xff0c;用来…

VMware虚拟机安装之后,打开时找不到启动Centos的界面

#VMware虚拟机安装之后&#xff0c;打开时找不到启动Centos的界面 只要在VMware中打开查看–自定义–库&#xff0c;之后就看到自己已经创建好的虚拟机系统 我也是因为自己不小心上次关机之前把左边那个窗口关闭了

service iptables status无法执行,报错

1. service iptables status 结果为edirecting to /bin/systemctl stop iptables.service Failed to stop iptables.service: Unit iptables.service not load 3.安装Iptables-services 在root 用户下&#xff0c;执行指令 yum installl iptables-services3.设置开机启动 …

Qt5的cmake文件位置

D:\APICenter\Qt\Qt5.8.0\5.8\msvc2015\lib\cmake\Qt5\Qt5Config.cmake转载于:https://www.cnblogs.com/coolbear/p/7149079.html