Android手机天气预报项目报告

合集下载

android天气预报报告

android天气预报报告

Android天气预报论文学院: 电子信息工程学院专业: 计算机应用学号: 11033801135学生姓名: 郎红指导教师: 黄炜日期: 2013年11月13一、项目背景现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。

本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。

通过Web Service等技术让用户体验到前所未有的移动计算。

二、需求分析(一)功能需求在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从搜索引擎上获取天气预报信息,并将天气信息保存在后台服务中。

示例还需要提供基于SMS短信的天气数据服务,其他手机用户可以向本示例所在的手机上发送SMS短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS短信回复给用户。

最后,每个被发送的SMS短信都会被记录下来,用户可以浏览或删除这些记录信息。

(二)界面需求从上面的描述中可以基本了解软件的功能需求,但为了将需求分析过程变得简单明了,首先找出用户界面上需要显示的内容。

功能描述中有“显示天气情况的用户界面”和“用户可以浏览或删除这些记录信息”,除此以外,一般应用软件还应有显示配置信息的界面。

因此,本示例应该包含三个用户界面:显示天气预报的用户界面、显示已发送SMS短信的用户界面、浏览和设置配置信息的用户界面(三)内部功能从用户界面出发,分析隐藏在界面后面的内部功能,这些功能则是程序正常运行的基础(1)显示天气预报的用户界面;①获取搜索引擎的天气数据②保存天气数据信息(2)显示SMS短信的用户界面①根据关键字监视SMS短信②发送包含天气信息的SMS短信③将发送SMS短信的相关信息写入数据库(3)浏览和设置配置信息的用户界面①将用户设置的配置信息保存到数据库②启动时读取数据库中的配置信息③支持恢复缺省设置三、程序设计(一)用户界面设计根据需求中的用户界面分析,应用程序应包含三个主要的用户界面,每个用户界面的显示内容在“显示天气预报的用户界面”中,显示目标城市的当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。

需求分析报告书-基于Android手机移动天气预报系统.doc

需求分析报告书-基于Android手机移动天气预报系统.doc

文档编号:第1.0版分册名称:第1 册/共 1册基于Android手机移动天气预报系统需求分析报告书修改履历目录1 引言.......................................................... 错误!未定义书签。

1.1编写目的............................................................................................. 错误!未定义书签。

1.2项目背景............................................................................................. 错误!未定义书签。

2 任务概述 ................................................. 错误!未定义书签。

2.1开发目标&应用目标.......................................................................... 错误!未定义书签。

2.2运行环境............................................................................................. 错误!未定义书签。

2.3关键词................................................................................................. 错误!未定义书签。

3 功能要求 ................................................. 错误!未定义书签。

3.1 功能划分............................................................................................ 错误!未定义书签。

Android天气预报系统文档

Android天气预报系统文档

[键入公司名称]实训课程设计天气预报程序xx2011/12/291项目任务概述1.1项目背景随着3G时代的到来,移动互联网成为Internet下一个热点,android可以很好的使用Internet,获取网站上的数据,android天气预报系统就利用这一方式为用户提供服务。

天气预报的主要功能是为用户提供今日以及未来两天的天气预报。

1.2 项目任务本项目实现在 Android移动设备天气预报功能,系统根据用户输入的地址,在Internet上请求获得该地址的天气情况,并发回数据,在系统调用该数据后,将天气实况显示给用户。

2需求分析用户可以使用该系统实现日记的编写,修改和删除,日记内容阅读以及以文本文档形式将日记导入SDcard中。

2.1总体用例图查看当日天气预报查看未来两天天气预报查看地理信息图12.2 天气预报用例图查看当日天气预报2.3天气预报业务流程输入地址选择列表item进入系统进入今日预报页面退出系统图2用户通过点击桌面图标,进入系统。

再通过在文本框中输入的地址,来进入当天天气预报界面。

再点击箭头按钮,页面跳转到未来两天天气预报的界面。

2.4 查看未来两天天气预报用例图2.5 查看未来两天天气预报流程图图22.6 查看地理信息用例图查看未来两天天气预报输入地址选择列表item点击按钮进入系统进入今日预报页面进入明日预报界面退出系统2.7查看地理信息流程图图33 系统设计3.1 天气预报系统UI——登录界面查看地理信息点击MENU 选择MENU 查看地理信息回到系统图43.2天气预报UI——登录界面说明在此界面中,正如大家所见。

含有两个TextView组件,一个ImageView组件,一个AutoCompleteTextView,其字符大小分别是默认的大小。

其中AutoCompleteTextView能够给用户提供选项列表,用户只要单击列表中的一项,此页面就回自动跳转到下一页面。

3.3 天气预报UI——今日天气预报界面图5 图63.4天气预报UI——今日天气预报界面说明此界面中分别含有六个TextView组件,五个ImageView组件,一个ImageButton 组件,一个Menu,在此布局文件中有五个相对布局。

Android智能手机天气预报系统设计及实现

Android智能手机天气预报系统设计及实现

Android智能手机天气预报系统设计及实现Android智能手机天气预报系统设计及实现一、引言随着智能手机的广泛普及,天气预报成为人们日常生活中必不可少的信息之一。

为了满足人们对天气预报的需求,并利用现有的科技手段,本文设计并实现了一款Android智能手机天气预报系统。

二、系统需求分析1.功能需求:(1)实时天气查询:用户可以随时查询当前位置的实时天气情况,包括温度、湿度、风力等指标。

(2)天气预报查询:用户可以查询未来一周的天气预报情况,了解每天的温度变化、降水概率等信息。

(3)城市切换:用户可以切换查询城市,系统能够自动定位用户当前位置。

(4)数据更新:系统能够实时更新天气数据,保持数据的准确性和及时性。

2.性能需求:(1)响应速度快:系统需要实时响应用户的查询请求,保证用户的使用体验。

(2)界面友好:系统的界面要友好美观,操作简单,方便用户进行查询操作。

(3)数据准确:系统拉取的天气数据需要准确无误,不能有误导用户的情况出现。

(4)占用资源低:系统需要尽可能减少对手机资源的占用,避免影响手机的正常使用。

三、系统设计1.软件架构:系统采用MVC(Model-View-Controller)软件架构,将视图、逻辑处理和数据模型分离,提高代码的复用性和可维护性。

2.界面设计:系统采用流行的Material Design风格,界面简洁明了,采用卡片式布局展示天气信息。

主界面包括一个搜索框和实时天气展示模块,用户可以在搜索框输入城市名称进行查询。

查询结果以卡片形式呈现,包括日期、天气图标、温度范围等信息。

3.数据获取和处理:系统使用第三方天气数据API,通过HTTP协议从服务器获取天气数据。

获取到的数据为JSON格式,系统解析JSON数据并提取所需字段,如温度、湿度等。

4.功能实现:(1)实时天气查询:系统获取用户输入的城市名称,并使用API发送请求获取实时天气数据,然后将数据展示在界面上。

同时,系统会定时刷新数据,保持实时性。

Android天气预报项目设计简介

Android天气预报项目设计简介
S DK、AD T  ̄E c l i p s e 组成。
2 . 2 项 目资源 准 备 。 天 气 项 目中 使 用 一 些 视 频 文 件 存 储在S D卡 中 , 视 频 的 使 用 有 更 好 的 用 户 体 验 。 本 项 目采 用 的 手 机 是 小 米 2 手 机 , 视 频 文 件 存 储 在/ s t o r a g e / s d c a r d 0 / MI U I / we a t h e r 中 ,主要 有 “ 晴天 ”, “ 小雨 ”, “ 多 云 ”, “ 云雾 ”几个 视 频MP 4 文件 。
/ , 在创 建时激 发 ,一 般在这 里调 用 画图 的线程 。
P u b l i c v o i d s u r f a c e De s t r o y e d ( S u r f a c e Ho l d e r h o l d e r ) { }
J 箍 釜 言 震 拿
2 - 3 项 目用 到 的对 象 。项 目中主要 应用 S u r f a c e Vi e w对 象 、S u r f a c e H o l d e r 对象 、Me d i a P l a y e r 对 象 、C a n v a s 对象 。
整静 i 孟 l 夔 新夭
图1
图2
的最 高 、最低 温度 ,并用 线 段连 接 上 ,显示 未 来 的天 气走 势 。如 图5 。 4 A n d r o i d 天气 预报展 望 天 气预 报有 着 重要 的作 用 ,人 们 根据 天气 预报 可 以做 出很 多 的预判 。但很 多天气 项 目软 件还 是 不 能满 足 需求 ,
比较 简 单 ,但是 要播 放视 频就 需要 S u r f a c e V i e w。 S u r f a c e V i e w并实 现S u r f a c e H o l d e r . C a l l b a c k 接 口使 用接 口 的原 因 : 因 为使 用 S u r f a c e V i e w有 一 个 原则 ,所 有 的 绘 图工作 必 须得 在S u f r a c e 被 创建 之后 才 能开始 ,而在S u f r a c e 被 销 毁之 前 必 须 结束 。所 以C a l l b a c k 中 的s u r f a c e C r e a t e d 和 s u r f a c e D e s t r o y e d 就 成 了绘 图处理 代码 的边 界 。需要 重写 的

手机安卓开发设计报告-天气预报APP

手机安卓开发设计报告-天气预报APP

一、需求分析(一)引言1.编写目的1.1 为用户提供一个显示天气预报的软件,可以根据百度地图显示用户需求的城市位置,以及用图标表示各城市对应的气象信息,可以简洁的表示出“晴、雨、雪”和“气温”气象信息。

2. 项目风险2.1 (项目风险识别是指找出影响项目目标顺利实现的主要风险因素,并识别出这些风险究竟有哪些基本特征、可能会影响到项目的那些方面。

)2.2 联网收费视用户电话运营商的收费标准决定2.3 手机或者无线信号不好时,可能无法连接或更新天气情况3. 预期读者和阅读建议3.1 预期读者:会使用已经安装安卓系统的手机或者平板电脑及其他移动设备的用户3.2 阅读建议:读者应通过该文档可以了解相关项目的需求分析、使用注意事项以及可能存在的风险4. 产品范围2.2手机,平板电脑,MP4,导航仪,上网本,电纸书等使用安卓系统的数码领域(二)综合描述1.产品的状况1.1 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。

目前未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。

Android操作系统最初由Andy Rubin开发,最初主要支持手机。

2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他数码领域上。

我们开发的相关项目正是一个在安卓平台上开发的软件,可以用这个软件来实现用户在一些简单的手持设备如手机或者平板电脑等上面及时的了解到用户所在城市的天气预报。

2. 产品的功能2.1 天气信息获取2.2 天气信息显示3. 系统配置功能3.1 用户类和特性安卓平台用户:安卓新用户可以使用软件来了解用户所在城市的天气预报。

熟悉安卓平台用户还可以选择对相关软件的系统按自己的喜好进行配置并保留自己的个性化系统配置。

安卓软件开发者:安卓软件开发者(喜好者)可以通过相关的开源代码来了解软件运行的原理。

3.2 运行环境软件需要在支持安卓系统的可移动设备中正确安装才能正常运行。

安卓天气预报查询app实验报告

安卓天气预报查询app实验报告

课程设计报告课程名称: 移动平台开发设计题目:天气预报院系:计算机科学与工程学院专业:计算机科学与技术班级:学号:姓名:指导教师:孙霞设计地点:N6-113开课时间:2016 至2017 学年第1 学期目录1.引言 01.1.题目描述 01.2.设计意义 02.开发环境 02.1.硬件环境 02.2.软件环境 03.相关技术及知识点 (1)3.1.Activity (1)3.2.Service (1)3.3.网络通信 (2)4.需求分析 (2)4.1.系统功能需求分析 (2)4.2.系统流程图 (3)4.3.系统界面需求分析 (3)4.4.系统性能需求分析 (3)5.设计与实现 (4)5.1.界面布局 (4)5.2.省市二级联动 (5)5.3.获取天气数据 (8)5.4.播放背景音乐 (12)6.个人总结 (13)参考资料 (14)1.引言1.1.题目描述本次实验是开发一款基于Android平台的天气预报应用,将网络系统的功能扩展到智能手机终端上,让手机能够通过移动网络访问Web网站并处理各种各样的业务,可以让智能手机用户能够随时随地查询互联网所提供的天气信息。

1.2.设计意义可以让广大Android手机用户能够在第一时间获取最新的天气预报信息,以便提前预防,方便出行。

同时,把气象灾害造成的损失降到最低,也可以提高公共服务质量,更好的发挥气象事业对经济社会发展的现实性作用,有巨大的实用价值。

虽然该技术在Android平台已经比较成熟,但是通过该软件的开发仍然能帮助我更好的认识Android系统的工作原理。

2.开发环境2.1.硬件环境戴尔灵越笔记本电脑2.2.软件环境Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。

而用Java语言进行开发,需要用到SUN 公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。

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

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

基于Android的天气预报APP的设计与实现一、引言现如今,挪动互联网的普及使得手机成为人们生活中不行或缺的工具之一。

天气预报是手机上常用的功能之一,能够提供精准的天气信息,援助人们合理打算出行和生活。

因此,变得尤为重要。

二、功能需求分析在设计与实现之前,起首对天气预报APP的功能需求进行分析。

依据用户的需求,天气预报APP的主要功能如下:1. 实时天气查询:用户可以随时随地查询当前所在位置的实时天气信息,包括温度、风速、湿度等。

2. 天气预报功能:用户可以查看将来几天的天气预报,包括温度变化趋势、天气状况等,援助用户进行合理的出行规划。

3. 城市切换功能:用户可以切换不同城市进行天气查询,便利用户查看其他地区的天气状况。

4. 生活指数推举:依据天气状况,推举用户合适的衣着、环境指数等生活建议,提供更好的生活体验。

5. 天气提示功能:用户可以设置天气提示,当天气状况达到所设阈值时,APP会发送通知提示用户。

6. 数据更新功能:APP需要提供数据更新的功能,保持天气数据的准时性与准确性。

三、系统设计在系统设计阶段,需要思量系统的整体架构以及各个模块的设计。

1. 系统架构设计基于Android平台的天气预报APP的系统架构如下:(1) 用户界面层:这是用户与APP进行交互的界面层,用户可以通过界面层进行数据的输入与输出。

(2) 业务逻辑层:这是处理业务逻辑的层,包括天气数据的得到、数据展示、天气提示的设置等功能。

(3) 数据访问层:这是与后台数据进行交互的层,负责得到实时天气数据和天气预报数据。

(4) 后台数据层:这是存储实时天气数据和天气预报数据的后台数据库。

2. 模块设计(1) 用户界面设计:依据功能需求,设计用户友好的界面,包括实时天气显示界面、预报天气显示界面、城市切换界面等。

(2) 数据得到与处理模块设计:该模块负责向后台数据层请求天气数据,并对数据进行处理,提供给用户界面层显示。

(3) 天气提示模块设计:依据用户的设置,实现天气提示功能,当天气满足提示阈值时,发送通知提示用户。

安卓天气预报报告

安卓天气预报报告

安卓天气预报报告基于Android平台的天气预报系统的设计与开发目录1.前言...............................................................1.1 系统开发的目的 ..............................................1.2 项目需求分析 ................................................ .天气预报程序设计 (2)2.1 Android的UI界面的实现.......................................2.2欢迎界面的实现................................................2.3 主界面功能实现 ...............................................2.4数据存储......................................................3.结束语.............................................................?1.前言1.1 系统开发的目的由于智能手机的快速普及~智能操作系统在手机市场占据了很大一部分~其中以Andriod和iOS最为流行。

为了让智能手机用户能够随时随地查询互联网所提供的信息~一种非常高效的方法就是将网络系统的功能扩展到智能手机终端上~让手机能够通过移动网络访问Web网站并处理各种各样的业务。

由于在大学学习过java语言~并且Andriod系统是基于java语言开发的~因此想开发一套基于Andriod平台的3G手机气象软件~并从网上获取天气预报信息。

Android平台的天气预报软件的开发可以进一步扩大气象信息的覆盖面~让广大Android手机用户能够在第一时间获取最新的天气预报信息~以便提前预防~方便出行。

Android手机天气预报项目报告

Android手机天气预报项目报告

目录第1章项目背景 (1)1.1项目来源 (1)1.2开发目标 (1)第2章项目设计 (2)2.1项目总体设计 (2)2.2技术框架设计 (2)2.3数据库设计 (3)2.4功能模块设计 (4)第3章项目功能描述 (5)3.1系统主要功能 (5)3.2系统各模块具体实现 (5)3.3系统功能展示 (11)第4章项目总结 (13)4.1项目技术总结 (13)4.2技术创新及特点 (14)4.3个人收获与体会 (14)第1章项目背景1.1 项目来源本项目是上海杰普实训公司的实训项目,各部分由自己独立完成。

1.2 开发目标现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。

本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。

通过Web Service 等技术让用户体验到前所未有的移动计算。

第2章项目设计2.1 项目总体设计本软件是一个App Widget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过Google提供的服务获取天气预报信息,并将天气信息保存在数据库中。

该软件的基本功能需求有:(1) 启动App Widget应用程序;(2) 设置界面:对要显示天气预报的城市及更新频率进行设置;(3) 显示界面:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。

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

2.2 技术框架设计2.2.1 开发环境Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。

天气预报实验报告

天气预报实验报告

安卓实训设计报告android 天气预报设计题目: android天气预报班级:姓名:_ 学号:_ 指导老师:日期: 2012年6月7日内容要求一、题目分析,功能要求。

1.1 实验目的熟悉android软件开发的基本架构利用eclipse和adt插件设计贪天气预报1.2 功能本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。

通过web service等技术让用户体验到前所未有的移动计算。

二、实验设计本软件是一个app widget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过google提供的服务获取天气预报信息,并将天气信息保存在数据库中。

该软件的基本功能需求有:(1) 启动app widget应用程序;(2) 设置界面:对要显示天气预报的城市及更新频率进行设置;(3) 显示界面:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。

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

三、实验程序见附录一。

四、实验效果图图五、总结(1)在android 平台上可以通过web service 技术方便的获取互联网上的资源信息,在智能手机强大的硬件功能和快速的移动互联网的支持下,可以更加方便的利用网络上的资源,为生活、工作带来极大的便利。

(2)android语言的开发组件activity、intent receiver、service、content provider 等提供了强大的数据处理功能。

合理的设计数据库可以方便的实现各页面、进程之间的数据共享、数据的传递,也会使程序的运行更加稳定。

android天气预报报告材料

android天气预报报告材料

交通职业学院2012-2013学年第一学期《Android应用程序开发》期末课程报告2012年11月第一章项目背景现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。

本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。

通过Web Service等技术让用户体验到前所未有的移动计算。

第二章需求分析一.功能需求在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从Google上获取天气预报信息,并将天气信息保存在后台服务中。

示例还需要提供基于SMS 短信的天气数据服务,其他手机用户可以向本示例所在的手机上发送SMS短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS短信回复给用户。

最后,每个被发送的SMS短信都会被记录下来,用户可以浏览或删除这些记录信息。

二.界面需求从上面的描述中可以基本了解软件的功能需求,但为了将需求分析过程变得简单明了,首先找出用户界面上需要显示的容。

功能描述中有“显示天气情况的用户界面”和“用户可以浏览或删除这些记录信息”,除此以外,一般应用软件还应有显示配置信息的界面。

因此,本示例应该包含三个用户界面:显示天气预报的用户界面显示已发送SMS短信的用户界面浏览和设置配置信息的用户界面三.部功能从用户界面出发,分析隐藏在界面后面的部功能,这些功能则是程序正常运行的基础(1)显示天气预报的用户界面;①获取Google的天气数据②保存天气数据信息(2)显示SMS短信的用户界面①根据关键字监视SMS短信②发送包含天气信息的SMS短信③将发送SMS短信的相关信息写入数据库(3)浏览和设置配置信息的用户界面①将用户设置的配置信息保存到数据库②启动时读取数据库中的配置信息③支持恢复缺省设置第三章程序设计一.用户界面设计根据需求中的用户界面分析,应用程序应包含三个主要的用户界面,每个用户界面的显示容在“显示天气预报的用户界面”中,显示目标城市的当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。

基于android的天气预报系统实践主题内容

基于android的天气预报系统实践主题内容

基于android的天气预报系统实践主题内容基于Android的天气预报系统实践简介•介绍天气预报系统的重要性•说明本文将针对Android平台开发天气预报系统的实践实践目标•确定开发目标:提供实时天气数据、精准预报功能•设计用户界面:简洁、易用的界面设计,展示天气信息•选择数据源:检索可靠的天气数据API,获取天气数据•选取技术方案:选择合适的Android开发工具和框架•开发与测试:按照需求实现功能,并进行测试和调试•发布部署:发布可用的天气预报应用版本步骤1.确定开发目标–分析用户需求,了解用户对天气预报功能的期望–确定要提供的天气信息包括:温度、湿度、天气状况、风力等2.设计用户界面–列出主要的界面元素:温度显示、天气图标、预报信息等–设计简洁明了的用户界面,方便用户查看天气信息3.选择数据源–搜索可靠的天气数据API,查看其提供的数据类型和更新频率–筛选出适合项目需求的API,确保数据的准确性和稳定性4.选取技术方案–选择合适的Android开发工具,如Android Studio–考虑使用第三方开源框架,加速开发进程,提升系统性能5.开发与测试–根据设计的界面,实现Android应用的前端与后端功能–对应用进行测试和调试,确保功能正常运行6.发布部署–根据Android应用发布规范,准备应用的发布版本–将应用上架到应用商店或通过其他途径发布,使用户可以下载和使用总结•总结本文主要介绍了基于Android的天气预报系统的实践过程•强调重要步骤:确定开发目标、设计用户界面、选择数据源、选取技术方案、开发与测试、发布部署•鼓励读者通过实践,深入了解Android应用开发的相关知识,并为用户提供功能实用的天气预报应用。

基于Android的天气预报系统实践简介天气预报系统在我们日常生活中扮演着重要角色,帮助我们合理安排活动和出行。

基于Android平台的天气预报系统可以方便用户随时获取天气信息,提供实时的预报功能。

基于Android的手机天气预报系统

基于Android的手机天气预报系统

基于Android的手机天气预报系统合肥学院2013届毕业论文(设计)论文(设计)题目基于Android的手机天气预报系统院系名称计算机科学与技术系专业(班级)计算机科学与技术2009级本科3班姓名(学号)丁同飞(0904013004)指导教师屠菁系负责人袁暋完成时间2013-06-02基于Android的手机天气预报系统中文摘要天气预报为人们了解天气状况和出行安排带来了方便,但是,大多数天气预报软件都是基于PC端,查询起来并不是很便捷。

而随着智能手机的普及和3G技术的发展,手机端实现天气查询成为了可能,因此,实现手机端的天气预报系统成为了人们迫切需要且切实可行的需求。

本设计使用Android设计技术开发了一种运用在Android系统上的手机天气预报软件系统,本系统通过选择城市来获得天气,风向,温度等信息。

基于手机的天气预报系统软件可以使用户对于各地的天气情况的实时掌握,极大的方便了用户的出行和行程安排,避免了不必要的麻烦,具有很强的实用性。

本论文首先进行了项目的背景介绍,开发的目的及意义,接着进行系统分析(包括需求分析、研究目标和内容),接着分析了Android系统的框架,然后介绍了本系统的用到的技术以及平台的搭建,最后论述了本系统的详细设计(包括功能模块设计、数据库设计等),接着进行了项目的测试用例分析,最后给出了结论以及展望。

关键词:天气预报;Android;linux内核Based on the Android of mobile phone weather forecast systemABSTRACTWeather Forecast for people to understand weather conditions and travel arrangements to bring the convenience, however, most weather forecasts are based on the PC side software, check it is not very convenient. With the popularity of smart phones and 3G technology, mobile client queries become possible to achieve weather, therefore, realize the phone side of weather forecasting system has become an urgent need for people with practical needs.This design uses design techniques developed an Android application in the Android system mobile weather software system, the system by selecting the city to get weather, wind direction, temperature and other information. Phone-based weather forecasting system software allows users around the weather conditions for real-time control, which greatly facilitates the user's travel and travel arrangements, to avoid unnecessary trouble, and highly practical.This paper first introduces the background for the project, the development of purpose and meaning, followed by systems analysis (including needs analysis, research objectives and content), and then analyzes the framework of the Android system, then introduces the technology used in this system as well as platform structures, and finally discusses the detailed design of the system (including functional module design, database design, etc.), followed by analysis of the project's test cases, and finally gives the conclusion and outlook.Keyword: android;the Linux kernel;the weather forecast目录中文摘要 ...................................................................... ABSTRACT (I)目录 .................................................................... I I 第一章绪论 01.1引言 01.2系统开发的背景介绍 01.3系统开发的目的 (1)1.4项目开发的意义 (1)第二章系统分析 (2)2.1研究目标 (2)2.2需求分析 (2)2.3系统研究内容 (3)2.4项目需求分析 (3)第三章系统架构分析 (4)3.1 Android系统的特点 (4)3.2 Android的功能 (4)3.3 Android架构 (5)3.3.1 Linux Kernel (6)3.3.2 Android Runtime (6)3.3.3 Library (7)3.3.4 Application Framework (7)3.3.5 Application (7)3.4系统组件 (8)3.4.1 Activity (8)3.4.2 Service (8)3.4.3 BroadcastReceiver (9)3.4.4 Content Provider (9)第四章系统开发及其相关技术 (10)4.1 Android开发环境介绍 (10)4.2 Android开发平台搭建 (10)4.3 SQlite (11)4.3.1 SQlite简介 (11)4.3.2 SQlite特性 (11)4.3.3 SQlite功能 (12)4.3.4 SQlite类型 (12)第五章系统的设计与实现 (13)5.1技术支持 (13)5.2数据库的设计 (14)5.3主要模块 (16)5.3.1项目功能界面 (16)5.3.2项目框架 (17)5.4主要代码解析 (18)第六章系统测试与运行 (28)6.1系统功能界面 (28)结论 (32)参考文献 (33)致谢 (34)第一章绪论1.1引言手机是已经成为了生活中不可少的通信设备,没有手机有时会让人觉得寸步难行,手机将脱离传统的打电话,发短信等基本功能,而基于智能手机的处理能力和可扩展能力,基于3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。

“移动应用开发”实验报告---天气预报

“移动应用开发”实验报告---天气预报

“移动应用开发”实验报告1数据代码即运行结果截图一、整体架构、本次实验我分配的任务是查看某地区天气的活动代码编写和添加权限与注册的相关代码,具体的过程在下面:1、活动(Activity)整体结构2、设计界面(layout)整体结构二、数据代码本次作业(天气预报)的设计界面效果图如下:2接着需要编写遍历省市县的活动,即MainActivity。

代码如下:package com.example.chen.weatherforecast;import android.app.ProgressDialog;import android.content.Intent;import android.content.SharedPreferences;import android.preference.PreferenceManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.view.Window;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;3import java.util.ArrayList;import java.util.List;import DB.CoolWeatherDB;import model.City;import model.County;import model.Province;import unity.HttpCallbackLinster;import unity.HttpUtil;import util.Utility;public class MainActivity extends AppCompatActivity {public static final int LEVEL_PROVINCE = 0; //省级public static final int LEVEL_CITY = 1; //市级public static final int LEVEL_COUNTY = 2; //县级private ProgressDialog progressDialog;private ListView listView; //显示省市县的数据private TextView title_text; //标题内容private ArrayAdapter<String> adapter; //listView 的适配器private List<String> datalist = new ArrayList<String>();private List<Province> provinceList; //省列表private List<City> cityList; //市列表private List<County> countyList; //县列表private CoolWeatherDB coolWeatherDB;private Province selectProvince; //选中的省private City selectCity; //选中的市private int currentLevel; //选中的县private Boolean isFromWeatherActivity;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(yout.activity_main);isFromWeatherActivity =getIntent().getBooleanExtra("from_weather_activity",false);SharedPreferences pref =PreferenceManager.getDefaultSharedPreferences(MainActivity.this);if(pref.getBoolean("city_cheeked",false)&& !isFromWeatherActivity ) { Intent intent = new Intent(this,LookWeather.class);startActivity(intent);finish();4} listView = (ListView)findViewById(R.id.list_view);title_text = (TextView)findViewById(R.id.title_text);adapter = newArrayAdapter<String>(MainActivity.this,yout.simple_list_item_1, datalist);listView.setAdapter(adapter);coolWeatherDB = CoolWeatherDB.getInstance(this);listView.setOnItemClickListener(newAdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {if(currentLevel == LEVEL_PROVINCE) {selectProvince = provinceList.get(position);querCity(); //选中省,则查找该省的市} else if(currentLevel == LEVEL_CITY) {selectCity = cityList.get(position);querCounty(); //选中市,则查找该市的县} else if(currentLevel == LEVEL_COUNTY) //选中县,则查找该县所对应的天气{String countyCode = countyList.get(position).getCountycode();Intent intent = new Intent(MainActivity.this,LookWeather.class); intent.putExtra("county_code",countyCode);startActivity(intent);finish();} } });querProvince();} //查找省,如果在数据库中没有找到,则在服务器上找private void querProvince() {provinceList = coolWeatherDB.loadProvince();if(provinceList.size() > 0) {datalist.clear();for(Province province : provinceList) {datalist.add(province.getProvinceName());}adapter.notifyDataSetChanged();listView.setSelection(0);title_text.setText("中国");currentLevel = LEVEL_PROVINCE;} else{ //在服务器上查找5querfromServer(null, "province");} } //查找市,如果在数据库中没有找到,则在服务器上找private void querCity() {cityList = coolWeatherDB.loadCity(selectProvince.getId());if(cityList.size() > 0) {datalist.clear();for(City city : cityList) {datalist.add(city.getCityName());}adapter.notifyDataSetChanged();listView.setSelection(0);title_text.setText(selectProvince.getProvinceName());currentLevel = LEVEL_CITY;} else{ querfromServer(selectProvince.getProvinceCode(),"city");} } //查找县,如果在数据库中没有找到,则在服务器上找private void querCounty() {countyList = coolWeatherDB.loadCounty(selectCity.getId());if(countyList.size() > 0) {datalist.clear();for(County county : countyList) {datalist.add(county.getCountyName());} adapter.notifyDataSetChanged();listView.setSelection(0);title_text.setText(selectCity.getCityName());currentLevel = LEVEL_COUNTY;} else{ querfromServer(selectCity.getCityCode(),"county");} } //根据传入的代号和类型在服务器上查找数据private void querfromServer(final String code,final String type){ String address;if(!TextUtils.isEmpty(code)) { address ="/data/list3/city" + code +".xml";} else{ address = "/data/list3/city.xml";} showProgressDialog();HttpUtil.sendRequstWithURLConnection(address, newHttpCallbackLinster() {@Overridepublic void onFinish(String response) { boolean result = false;if ("province".equals(type)) { result =Utility.handleProvince(coolWeatherDB, response);6} else if ("city".equals(type)) { result =Utility.handleCity(coolWeatherDB, response, selectProvince.getId());} else if ("county".equals(type)) { result =Utility.handleCounty(coolWeatherDB, response, selectCity.getId());} if (result) { runOnUiThread(new Runnable() { @Overridepublic void run() { closeProgressDialog();if ("province".equals(type)) { querProvince();} else if ("city".equals(type)) { querCity();} else if ("county".equals(type)) { querCounty();} } });} } public void onError(Exception e) { runOnUiThread(new Runnable() { @Overridepublic void run() { closeProgressDialog();Toast.makeText(MainActivity.this,"加载失败",Toast.LENGTH_SHORT).show();} });} });} private void showProgressDialog() { if(progressDialog == null){ progressDialog = new ProgressDialog(MainActivity.this);progressDialog.setMessage("正在加载...");progressDialog.setCanceledOnTouchOutside(false);} progressDialog.show();} private void closeProgressDialog() {if(progressDialog != null) {progressDialog.dismiss();} } //捕获返回键,来判断此时应直接返回省,市列表还是返回到显示天气的页面public void onBackPressed() {if(currentLevel == LEVEL_COUNTY) {querCity();}else if(currentLevel == LEVEL_CITY) {querProvince();}else { if (isFromWeatherActivity) {Intent intent = new Intent(MainActivity.this, LookWeather.class); startActivity(intent);} finish();} } }还要加上权限声明和注册Activity,即AndroidManifest.xml的代码:7<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.chen.weatherforecast"><uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /> </intent-filter></activity><activity android:name=".LookWeather"> </activity></application></manifest>2、获取省、市、县的天气数据在Utility类中添加解析JSON数据与处理。

天气预报应用实现实验报告

天气预报应用实现实验报告
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
private String CityName = "changsha";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_main);
<service android:name=".PollService" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="c3577cda13d56a019a5a0beb1ec777a4"/>
<!--定位服务声明:-->
if (cns.getCtiyName().equals("")){
//往数据库city表中写入初始值beijing
import .HttpURLConnection;
import .URL;
public class MainActivity extends AppCompatActivity {
private int which;

基于Android技术的天气预测实现浅析的研究报告

基于Android技术的天气预测实现浅析的研究报告

基于Android技术的天气预测实现浅析的研究报告随着科技的发展,我们生活中的许多方面都受益于新技术的应用,其中天气预测便是其中之一。

随着智能手机的普及,天气预测app越来越受到人们的青睐,而Android技术为这一领域的发展带来了无限的可能。

一、天气预测app的基础架构在谈论Android技术的天气预测实现前,我们先来了解一下天气预测app一般的基础架构模型。

一般而言,天气预测app通常由以下几个模块构成:1. 天气数据获取模块,2.数据处理模块,3.数据展示模块。

天气数据获取模块是该app的基础,数据来自于一些专门的气象数据接口。

这个模块获取到气象数据之后,需要通过数据处理模块对数据进行筛选,再将筛选好的数据提供给数据展示模块。

数据展示模块则是将数据处理后的数据以图表、文字、图片等形式展现给用户的环节。

二、Android技术在天气预测实现中的应用1. 天气数据获取。

在Android技术中,我们可以很方便地通过网络请求的方式获取到气象数据。

一般而言,我们可以使用Volley或者OkHttp等网络库实现网络请求,这些库不仅提供了方便的接口,而且还负责了异步请求、线程管理、缓存等一些繁琐的细节。

在请求到数据之后,我们可以通过Gson等json解析库将数据直接转为Java Bean类,然后再将其提供给数据处理模块。

2. 数据处理。

在天气预测app中,数据处理往往会经过许多复杂的逻辑,例如筛选数据、计算天气趋势等等。

而这些逻辑都可以通过Java代码实现。

在Java中提供了许多数据处理相关的库,例如Hibernate、Jooq、Querydsl等等,我们可以借助这些库来实现复杂的数据处理。

3. 数据展示。

在天气预测app中,数据展示的方式非常关键,因为它直接关系到用户的使用体验。

在Android技术中,我们可以使用多种方式来展示数据,例如ListView、GridView、ViewPager等等。

同时,我们还可以自定义View,让数据以更加直观、灵活的方式展示给用户。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.2 开发目标现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。

本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。

通过Web Service 等技术让用户体验到前所未有的移动计算。

第2章项目设计2.1 项目总体设计本软件是一个App Widget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。

这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过Google提供的服务获取天气预报信息,并将天气信息保存在数据库中。

该软件的基本功能需求有:(1) 启动App Widget应用程序;(2) 设置界面:对要显示天气预报的城市及更新频率进行设置;(3) 显示界面:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。

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

2.2 技术框架设计2.2.1 开发环境Android的上层应用程序是用Java语言开发的,一般情况下是基于Dalvik虚拟机的,所以Google公司推荐使用主流的Java集成开发环境Eclipse。

而用Java语言进行开发,需要用到SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。

此外,Android的应用程序开发和Java开发有较大区别的,需要使用Google提供的Android SDK。

同时,要在Eclipse上安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse 下开发工具的升级或下载的工具。

简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。

(1) Java SDK(2) Eclipse(3) Android SDK(4) ADT2.2.2 技术支持本软件使用基于SOAP(简单对象访问协议)的Web Service技术来实现与服务器端的信息交互,获取网络上的数据。

Web Service使用基于XML技术的消息处理,作为基本的数据通讯方式。

Web Service建立在一些通用协议的基础上,如HTTP、SOAP、XML、WSDL、UDDI 等。

各应用程序通过网络协议和规定的一些标准数据格式(HTTP、XML、SOAP)来访问Web Service。

而所有的SOAP消息都使用XML编码。

一条SOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。

XML文档在Android平台上的解析可以通过SAX的方式方便快速的完成。

解析Android应用程序中获得的列表数据XML文件,对XML文件中的数据实现分离,得到指定的所需要的信息,然后执行存入数据库或显示到页面等相应的处理。

Android的开发组Activity、Intent Receiver、Service、Content Provider等,可以实现不同页面之间的跳转;数据的获取和实现与数据库的实时交互;不同页面和进程间数据的共享。

2.3 数据库设计本软件中有两部分数据需要存储,一个是显示页面的数据,另一个是详细页面的数据。

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

表2-1 详细页面的数据库表weather_forecast的结构表2-2 显示页面的数据库表weather_widget的结构postalCode text 城市标记forecastDate integer 预报日期condition text 当前天气情况tempF integer 最高温度tempC integer 最低温度humidity text 当前湿度icon text 天气图标windCondition text 风向风速情况lastUpdateTime integer 最后一次更新时间2.4 功能模块设计从功能需求上分析可以看出,整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图2-1所示。

图 2-1 各功能模块间的关系从模块结构图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责周期性的从Google获取天气信息。

后台服务在程序启动时就由AppWidgetProvider 启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。

用户界面是从数据库中获取天气信息,而没有直接通过网络访问Google的天气数据。

这样设计,一方面可以避免因网络通信不畅而造成界面失去响应;另一方面,后台服务可以及时更新数据,以保证数据的准确性。

数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它来实现对数据库的操作。

第3章项目功能描述3.1 系统主要功能本软件要完成在android手机上实现天气的即时预报。

所涉及的功能有:1.启动程序后可以进行城市、更新频率的设置;2.可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。

使用效果图实现与相应天气的结合。

3.这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过Google提供的公共接口获取天气预报信息,并将天气信息保存在本地数据库中。

3.2 系统各模块具体实现3.2.1 文件结构与用途在程序开发阶段,首先确定“Android手机天气预报软件”的工程名为ty-weather,据程序模块设计的内容,建立ty-weather工程。

工程源代码的结构如图3-1所示。

图3-1 ty-weather工程的源代码文件结构为了使源代码文件的结构更加清晰,Weather工程设置了多个命名空间,分别用来保存用户界面、数据库、后台服务和工具实体的源代码文件。

源代码文件的名称以及说明如表3-1所示。

表3-1 ty-weather工程的文件用途说明Android的资源文件保存在/res的子目录中。

其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。

所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表3-2:3.2.2 数据提供者数据提供者ForecastProvider继承ContentProvider,是在应用程序间共享数据的一种接口机制。

应用程序在不同的进程中运行,因此,数据和文件在不同的应用程序之间是不能够直接进行访问的。

而ContentProvider为程序员提供了较高级的数据共享方法,应用程序可以指定需要共享的数据,而其他应用程序则可以在不知数据来源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作。

在创建ForecastProvider时,首先需要使用数据库、文件系统或网络实现底层存储功能,这里我们采用数据库建立了数据库设计中的两张表,从而实现了底层存储功能。

然后在继承ContentProvider的类中实现基本数据操作的接口函数,包括添加、删除、查找和更新等功能。

(1)创建数据库:DatabaseHelper类继承SQLiteOpenHelper,SQLiteOpenHelper这个类可以辅助建立、更新和打开数据库。

DatabaseHelper在建立数据库时,同时建立了两个数据库表weather_widget和weather_forcast,并对保存配置信息的表进行了初始化。

(2)URI设置:ContentProvider可以提供多个数据集,调用者使用URI(通用资源标识符)对不同的数据集的数据进行操作。

URI用来定位任何远程或本地的可用资源。

ContentProvider 使用的URI语法结构content://<authority>/<data_path>/<id>。

因此,我们就需要先来对URI进行设置。

(3)查询功能:执行数据的查询功能主要用到SQLiteQueryBuilder的query()方法。

Query(SQLiteDatabase db,String[] projectionIn,String selection,String[] selectionArgs,String groupBy,String having,String sortOrder,String limit),参数说明如下表3-3所示:表 3-3 query()方法的参数说明(4)添加、删除、更新功能,对数据库表中存放的天气等信息进行有效的管理。

添加功能:public Uri insert(Uri uri, ContentValues values){}。

删除功能:public int delete(Uri uri,String selection,String[] selectionArgs){}。

更新功能:public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs){}。

(5)类型匹配:增删改查通过switch判断,进行不同的操作,因而还需要对关键字进行类型匹配。

3.2.3 后台服务后台服务是ty-weather工程的核心模块,在用户启动后持续在后台运行,直到用户停止服务。

后台服务主要有三个功能:一是周期性的获取Google的天气数据并存储到SQLite,二是从SQLite读取出要显示的数据,三是定时更新“显示页面”的时间。

(1) 获取天气数据天气数据的获取天气数据分为以下三个步骤:1.从Google提供的Web Service中获取的天气数据,数据的获取地址是:/ig/api?weather=%s&hl=zh-cn。

2.调用轻量级XML解析器XmlPullParser对从网络上获取的字节流数据进行解析,并且将解析结果保存在WidgetEntity对象中。

3.将解析好的数据存储到SQLite数据库中。

其过程是:使用ContentResolver对象,通过URI间接调用ContentProvider,使用ContentResolver对象与ContentProvider进行交互,而ContentResolver则通过URI确定需要访问的ContentProvider的数据集。

相关文档
最新文档