基于Android天气预报软件的设计与实现.doc
- 文档编号:1949897
- 上传时间:2023-05-02
- 格式:DOC
- 页数:58
- 大小:2.61MB
基于Android天气预报软件的设计与实现.doc
《基于Android天气预报软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Android天气预报软件的设计与实现.doc(58页珍藏版)》请在冰点文库上搜索。
基于Android的天气预报软件的设计与实现
摘要
本课题研究基于Android平台上的天气预报软件,该工具可以为用户提供最新的天气预报信息,以便用户及时了解最新的天气状况。
本论文对基于Android平台的天气预报软件的开发技术进行了分析和研究。
先简要介绍了Android开发必备基础知识,再切入软件的具体实现过程。
软件的实现是利用网络接口和中国天气网获取网络XML文件,然后通JSON解析取得城市天气信息。
本论文首先介绍系统的开发背景和意义,接着详细介绍系统设计以及实现的过程,最后介绍了系统测试和本软件的测试用例以及总结了本次毕业设计整个过程。
关键词:
Android;天气预报;WebService
Designandimplementationofweatherforecastbasedonandroid
ABSTRACT
ThistopicresearchbasedonweatherforecastsoftwareontheAndroidplatformwhichcanprovidesuserswiththelatestweatherforecastinformation,sothatuserscanunderstandthelatestweatherconditionsinatimelymanner.
Inthispaper,theweatherforecastsoftwaredevelopmenttechnologybasedontheAndroidplatformisanalyzedandstudied.ItfirstbrieflyintroducestheAndroiddevelopmentessentialbasicknowledge,thencutintothesoftwareimplementationprocess.TherealizationofthesoftwareistheuseofthenetworkinterfaceandChineseweathernetaccessnetworkXMLfile,andthenpasstheXMLdocumentparsedbyJSONtogetcityweatherinformation.
Thispaperfirstlyintroducesthedevelopmentofthesystembackgroundandsignificance,thenintroducessystemdesignandimplementationprocess,finallyintroducesthesystemtestingandthesoftwaretestcasesandsummarizesthewholeprocessofthegraduationdesign.
Keywords:
Android;WeatherForecast;WebService
目录
摘要 i
ABSTRACT ii
1绪论 1
1.1课题研究背景和研究意义 1
1.2当前研究现状 1
1.3课题的研究内容 1
1.4论文框架安排 2
2开发语言说明 3
2.1开发语言简介 3
2.1.1Android简介 3
2.1.2Android系统特性 3
2.1.3Android基本框架(AndroidArchitecture) 3
2.1.4Android系统的四大组件 5
2.1.5SQLite简介 6
2.2搭建Android开发环境 6
2.3了解JASON的相关知识 9
2.4Handler、Intent和监听器 12
3概要设计 15
3.1概述 15
3.1.1系统分析的原则 15
3.1.2系统分析的方法 15
3.2系统可行性分析 15
3.3系统需求分析 16
3.4性能需求分析 17
3.4.1实用性原则 17
3.4.2可扩展性与可维护性原则 17
3.4.3安全可靠性原则 17
3.4.4用户界面美观原则 17
3.4.5准确性原则 17
3.4.6易用性原则 17
3.5系统流程分析 17
3.6项目模块划分 18
4详细设计 19
4.1设计目标 19
4.2总体结构设计 19
4.3文件结构设计 19
4.4各模块设计 21
4.4.1主界面模块设计 21
4.4.2更换城市界面模块设计 23
4.4.3网络接口模块设计 25
4.4.4自动定位模块设计 25
4.5数据库设计 26
5系统实现与测试 29
5.1系统实现 29
5.1.1天气主界面实现 29
5.1.2更改城市模块实现 30
5.2系统测试 31
5.2.1软件测试 31
5.2.2测试用例 31
5.2.3测试总结 36
6总结 37
参考文献 38
致谢 39
外文文献原文 40
外文文献译文 48
iv
1绪论
1.1课题研究背景和研究意义
随着科技的发展,Android在中国的前景十分广阔。
国内厂商和许多大运营商也纷纷加入了Android的阵营,不断的推出了Android系统的产品。
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年第三季度,安卓的市场份额高达74.8%,一年前则为57.4%。
2013年第一季度,它的市场份额继续增加,达到75%。
Android平台的天气预报软件的开发可以进一步扩大天气信息的覆盖面,以便提前预防,使得广大公众能够在第一时间方便且快捷地获取最新的天气预报信息。
同时也可以完善公共服务体系,提高公共服务质量,更好地发挥气象事业对经济社会发展的现实性作用。
这款天气预报软件给人们带来方便快捷的全天候天气信息,必将成为人们日常生活中必不可少的一部分。
本系统界面明了,操作简单,适合所有年龄段的使用。
对于人们生活水平的提高有一定的促进作用。
1.2当前研究现状
Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序—移动电话工作所需的全部软件。
作为谷歌企业战略的重要组成部分,Android将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。
国内外的基于Android的天气预报软件相当多,这些软件都具有的最基本的功能,当然就是提供当前天气状况,包括实时温度,当天最高温和最低温,风向风速以及未来若干天的天气概况,数据来源都是各个国家或地区的气象局或天气开放平台。
而现在大多数天气预报软件都具有强大且丰富的附加功能,且界面美观人性化。
在国内做的比较好的天气软件当属墨迹天气。
这款软件功能相当丰富,可以添加多个城市并通过左右滑动切换城市;提供所选城市的实时天气情况,包括当前天气状况,实时温度,当天最高温和最低温,湿度值,PM2.5值,风向风速;可以查看未来一周的温度趋势图;可以查看生活贴士,包括穿衣指数,运动指数,洗车指数等;城市实景天气,每个软件用户都可以查看其他用户上传的其所在地的图片;另外,其界面非常美观且人性化,比如软件的背景图片就是动态天气壁纸,可以随着天气的变化而变化。
Android的一大特色就是支持各种桌面插件,而墨迹天气充分利用了这一点,提供了非常丰富的桌面天气插件,显示的信息也可由用户设置。
总之,目前墨迹天气是国内做的非常出色的一款天气软件。
1.3课题的研究内容
本课题要在Android平台上借助网络接口完成天气预报软件的设计与实现,本软件具有城市选择、查询结果显示等功能。
本课题所用到的开发工具为Google为Android开发者提供的开发工具包ADT(Androiddevelopertools),包括eclipse和SDK,并用Java语言完成。
本课题遵循了软件工程面向对象的基本原理,利用原型模型,将需求分析、设计、实现和测试过程进行反复迭代,完成了界面、逻辑功能和数据库的设计与实现,最终得到了符合设计要求的软件。
本系统研究的是Android平台天气预报软件的实现过程,通过移动网络的支持以及Android平台提供的网络服务支持,通过HTTP的方式获取来自中国天气网最新的天气预报数据,中国天气网免费为用户提供天气预报接口,开发者可以获取国内各个城市的实时天气情况,获取地址为:
1.4论文框架安排
本文详细介绍了基于Android平台的天气预报软件的设计实现全过程。
从开始到程序设计的实现,将在以下的几章中予以介绍:
第1章绪论,这一章主要讲述了课题研究的背景、意义、内容和当前研究现状以及论文框架的安排。
第2章开发语言简介,对涉及到的理论知识和使用到的开发工具做相关介绍。
第3章概要设计,主要分析了本软件开发的可行性和需求分析等。
第4章详细设计,主要介绍了本软件各模块的实现过程以及数据库的设计。
第5章系统实现与测试,主要介绍了本软件的实现结果和各模块的测试用例以及测试总结。
第6章总结,总结近三个多月做毕业设计过程中的心得和体会。
2开发语言说明
2.1开发语言简介
2.1.1Android简介
Android本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android操作系统最初由AndyRubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
Android采用了软件堆层的架构,低层以Linux内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发。
目前最新SDK版本为Android4.4.2。
2.1.2Android系统特性
Android系统有如下的几大特性:
(1)应用程序框架,支持组件的重用与替换;
(2)Dalvik虚拟机,专门为移动设备做了优化;
(3)内部集成浏览器,该浏览器基于开源的WebKit引擎;
(4)优化的图形库,包括2D和3D图形库;
(5)SQLite,用作结构化的数据存储;
(6)多媒体支持,包括常见的音频、视频和静态印象文件格式;
(7)丰富的开发环境,包括设备模拟器,调试工具,内存及性能分析图表和Eclipse集成开发环境插件。
2.1.3Android基本框架(AndroidArchitecture)
Android平台的基本框架如图2-1所示:
图2-1Android基本框架图
(1)应用程序层
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是用JAVA编写的。
(2)应用程序框架层
开发人员也可以完全访问核心应用程序所使用的API框架。
该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。
同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统,其中包括;
丰富而又可扩展的视图,可以用来构建应用程序,它包括列表,网格,文本框,按钮,甚至可嵌入的web浏览器。
a.内容提供器使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
b.资源管理器提供非代码资源的访问,如本地字符串,图形,和布局文件。
c.通知管理器使得应用程序可以在状态栏中显示自定义的提示信息。
d.活动管理器用来管理应用程序生命周期并提供常用的导航回退功能。
(3)Libraries库层
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。
它们通过Android应用程序框架为开发者提供服务。
以下是一些核心库:
a.系统C库:
一个从BSD继承来的标准C系统函数库Libc,它是专门为基于Embeddedlinux的设备定制的。
b.媒体库:
基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
c.SurfaceManager:
对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
d.LibWebCore:
一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。
(4)系统结构
Android是运行于Linuxkernel之上,Android的Linuxkernel控制包括安全,存储器管理,程序管理,网络堆栈,驱动程序模型等。
APK是安卓应用的后缀,是AndroidPackage的缩写,即Android安装包(apk)。
通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
2.1.4Android系统的四大组件
在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。
下面分别介绍四大组件:
(1)Activity简介
Android中,所有程序都运行在Activity中,是Android最基本的组成部分之一。
在Android程序中,Activity一般代表手机屏幕的一屏。
Activity就相当于浏览器中的一个网页,并且可以添加Button、Checkbox等控件。
一个Android应用是由多个Activity组成的。
这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。
和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从ActivityA跳转到ActivityB,那么当ActivityB运行结束的时候,有可能会给ActivityA一个返回值。
当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。
用户可以通过回退操作返回到以前打开过的屏幕。
可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每个屏幕保存在堆栈中。
(2)Service简介
Service是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。
Service是没有界面的长生命周期的代码。
Service是一种程序,它可以运行很长时间,但是它却没有用户界面。
Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等。
开启Service有两种方式:
a.Context.startService():
Service会经历onCreate->onStart(如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次);StopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用StopService的话,Service会一直在后台运行。
该Service的调用者再启动起来后可以通过stopService关闭Service。
b.Context.bindService():
Service会经历onCreate()-->onBind(),onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。
这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind-->onDestroyed相应退出,所谓绑定在一起就共存亡了。
(3)BroadcastReceiver简介
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。
BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。
BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。
BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。
只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。
各种应用还可以通过使用Context.sendBroadcast()将它们自己的IntentBroadcasts广播给其他应用程序。
(4)ContentProvider简介
ContentProvider是Android提供的第三方应用数据的访问方案。
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。
Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是ContentProvider。
应用想对外提供的数据,可以通过派生ContentProvider类,封装成一枚ContentProvider,每个ContentProvider都用一个uri作为独立的标识,形如:
content:
//com.xxxxx。
所有东西看着像REST的样子,但实际上,它比REST更为灵活。
和REST类似,uri也可以有两种类型,一种是带id的,另一种是列表的,但实现者不需要按照这个模式来做,给id的uri也可以返回列表类型的数据,只要调用者明白,就无妨,不用苛求所谓的REST。
2.1.5SQLite简介
SQLite是一款嵌入式的轻型数据库,它只占用很少的资源,有时只需几百K。
它支持Windows/Linux/Unix等操作系统,它能跟Java、C#等程序设计语言相结合,还有ODBC接口。
它处理数据的速度比Mysql、PostgreSQL等数据库都快。
Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库—SQLite。
本数据库支持功能如下:
1.自动建表,支持属性来自继承类:
可根据注解自动完成建表,并且对于继承类中的注解字段也支持自动建表。
2.自动支持增删改,增改支持对象化操作:
增删改是数据库操作的最基本单元,不用重复写这些增删改的代码,并且添加和更新支持类似于hibernate中的对象化操作。
3.查询方式灵活:
支持android框架提供的方式,也支持原生sql方式。
4.查询结果对象化:
对于查询结果可自动包装为实体对象,类似于hibernate框架。
5.查询结果灵活:
查询结果支持对象化,也支持结果为List
2.2搭建Android开发环境
任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。
搭建开发环境需要的环境:
(1)操作系统:
windows7;
(2)下载jdk:
Files\Java\jdk1.7.0_0.7和C:
\ProgramFiles\Java\jre7,如图2-2所示:
图2-2jdk安装目录
(3)下载androidSDK工具包
adt-bundle-windows-x86,Manager,sdk下载如图2-3所示:
图2-3sdk下载
(4)配置环境变量,桌面->计算机->右键属性->高级系统设置->高级->环境变量
变量名:
JAVA_HOME
变量值:
C:
\ProgramFiles\Java\jdk1.7.0_0.7;具体如图2-4所示:
图2-4配置JAVA_HOME
变量名:
PATH
变量值:
.;%JAVA_HOME%\bin;F:
\adt-bundle-windows-x86\sdk\tools;F:
\adt-bundle-windows-x86\sdk\platform-tools;具体如图2-5所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 天气预报 软件 设计 实现