基于Android手机天气预报系统的设计与实现整理版.docx

上传人:b****5 文档编号:5973444 上传时间:2023-01-02 格式:DOCX 页数:24 大小:537.12KB
下载 相关 举报
基于Android手机天气预报系统的设计与实现整理版.docx_第1页
第1页 / 共24页
基于Android手机天气预报系统的设计与实现整理版.docx_第2页
第2页 / 共24页
基于Android手机天气预报系统的设计与实现整理版.docx_第3页
第3页 / 共24页
基于Android手机天气预报系统的设计与实现整理版.docx_第4页
第4页 / 共24页
基于Android手机天气预报系统的设计与实现整理版.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于Android手机天气预报系统的设计与实现整理版.docx

《基于Android手机天气预报系统的设计与实现整理版.docx》由会员分享,可在线阅读,更多相关《基于Android手机天气预报系统的设计与实现整理版.docx(24页珍藏版)》请在冰豆网上搜索。

基于Android手机天气预报系统的设计与实现整理版.docx

基于Android手机天气预报系统的设计与实现整理版

广东XX大学12届学生

 

毕业论文/设计

题目:

手机天气预报系统

姓名:

系别:

信息工程院

专业:

计算机应用技术

班级:

09应用

(1)班

指导老师:

X老师

日期:

2012年4月20日

 

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

摘要

随着智能手机的快速普及,智能手机操作系统市场风生水起。

为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。

因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。

在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。

这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。

Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。

因此,对于软件从业人员来说,Android平台具有无限的吸引力。

本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的3G手机气象软件。

关键词:

Android手机天气预报软件系统

目录

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

第一章绪论1

1.1研究内容1

1.2研究意义1

1.3研究现状和发展趋势1

第二章系统分析3

2.1研究目标3

2.2需求分析3

2.3性能分析3

2.4系统研究内容3

2.5项目需求分析4

2.6系统构架图4

第三章系统开发环境及相关技术5

3.1Android开发环境介绍5

3.2Android开发平台搭建5

第四章Googleandroid移动平台的相关理论7

4.1Goolgeandroid移动平台的概述7

4.1.1Android系统的特点:

7

4.1.2Android的功能:

7

4.2Googleandroid移动平台开发过程研究[4]8

4.3Googleandroid移动平台下的应用研究[5]9

4.4小结9

第五章掌上手上天气预报系统程序设计11

5.1用户界面设计11

5.2主要代码介绍12

5.3 获取城市列表数据15

5.4解析数据列表16

5.5主要查询城市天气预报方法17

第五章结论21

致谢:

22

参考文献23

第一章绪论

1.1研究内容

Android平台3G手机气象软件是基于Android手机平台,运用Java语言,从Google上获取天气预报信息,开发出针对使用Android平台的手机天气预报系统。

1.2研究意义

Android平台3G手机气象软件的开发可以进一步扩大气象信息的覆盖面,让广大公众能够在第一时间方便且快捷地获取最新的气象预报(预警)信息,以便提前预防,把气象灾害造成的损失降到最低。

同时也可以强化气象公共服务的职能,完善公共服务体系、改善公共服务手段、增加公共服务产品、提高公共服务质量,更好地发挥了气象事业对经济社会发展的现实性作用。

1.3研究现状和发展趋势[1]

据Gartner最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。

2010第二、三季度与去年同期相比,增度分别是15.4%及22%,增势迅猛。

而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。

其他操作系统的表现则要平稳很多。

如图1-1所示各种手机系统的发展趋势。

图1-1各手机系统发展趋势

安卓是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。

系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。

与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设计缺失,塞班的开源并无实际意义,错失发展良机。

据Informa预测,2012年,安卓手机销量将超过诺基亚塞班手机,届时安卓将成为全球最大的智能手机平台。

谷歌表示目前安卓手机每日平均激活量为20万部,销售速度加速上涨。

  我们认为,安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。

安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。

系统的免费让更多的厂商加入,推动了份额的上升;代码的开源让更多的开发者进入应用开发;应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。

此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。

 

第二章系统分析

2.1研究目标

(1)了解Android应用程序的设计和开发过程;

(2)使用多种组件进行Android平台3G手机气象软件的开发。

本软件是基于Eclipse的开发环境,依托Google气象数据建立气象信息数据库,开发出了针对Android平台的手机天气预报系统。

2.2需求分析

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

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

从上面的描述中可以基本了解软件的功能需求:

(1)启动AppWidget应用程序;

(2)设置界面:

对要显示天气预报的城市及更新频率进行设置;

(3)显示界面:

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

(4)详细界面:

通过文字图片动画显示当前的天气情况,包括城市当前天气、温度、风向、风速、湿度;同时显示今后四天的天气情况。

2.3性能分析

程序响应速度快、安全性高、信息处理速度快。

2.4系统研究内容

1)数据源的选取

2)界面的设计

3)代码的设计

4)程序的测试

5)产品的发布

2.5项目需求分析

1、能够查询数据库存中城市的天气情况。

2、系统能通过手机查看并显示天气数据。

3、系统必须具有安全性,可靠性,独立性。

2.6系统构架图

图2-1系统构架图

第三章系统开发环境及相关技术

3.1Android开发环境介绍

Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。

只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:

JavaRuntimeEnvironment)。

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

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

[2]

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

a)JavaSDK

b)Eclipse

c)AndroidSDK

d)ADT

3.2Android开发平台搭建[6]

Android开发平台搭建步骤:

①首先到http:

//www.eclipse.org/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。

接着再去站点下载后安装下载SDK1.5后解压。

第一步下载工序就结束了。

②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入http:

//dl-with”下拉菜单中选择刚才输入的网址。

过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。

③重启后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。

④在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。

 

第四章Googleandroid移动平台的相关理论

4.1Goolgeandroid移动平台的概述

Android是Goolge公司于07年11月5日宣布的基于LINUX平台开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成,Android是Goolge开发的基于linux平台的开源手机操作系统。

它包括操统,用户界面和应用程序--------移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动,摩托罗拉,高通,宏达在内的30多家技术和无线应用的领军企业组成。

通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统.

4.1.1Android系统的特点:

1、开放性。

Google与开放性手机联盟合作开发了android,Google通过与动行商,通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。

2、应用程序无界限。

Android上的应用可以通过标准API访问核心移动设备功能。

通过互联网,应用程序可以声明它们的功能可提供其它应用程序使用。

3、应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号或主屏幕这样的核心组件。

4、应用程序可以轻松地嵌入网络。

应用程序可以轻松地嵌入HTML,javascript和样式表,还可以通过Webview显示内容。

5、应用程序可以并行运行。

Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知引起注意。

4.1.2Android的功能:

1、支持虚拟键盘。

虚拟键盘的出现意味着基于Android1.5或以上的版本的移动设备可以同时支持特理键盘和虚拟键盘。

2、使用widget实现桌面的个性化。

可以用widget修饰自已的桌面。

大多数小的Web应用都是从网络上获得实时数据并展示给用户的,android预装了5个桌机Widget,包括数字时钟,日历,音乐播放器,相框。

3、用在线文件快速浏览数数,类似于OSXLeopard的Quicklook特征,Android的在线文件夹可显示的数据条目,比如联系人,喜欢的应用,E-mail信息,播放列表,书签,RSS源等,并不需要运行系统程序处理特定的数据条目。

4、视频录制和分享。

Android还有录制和分享视频的功能,对回放和MPEG-4,3GP等视频也有了更好的支持。

可以通过E-mail,MMS或直接上传到youtube等方式来分享视频。

5、更快,更兼容的浏览器,Android的基于Webkit内核的浏览器带来了重要的调速半置,这得益于新的Wenkit渲染引擎和优化的JAVA脚本编译器。

6、Voicesearch语音搜索。

带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能,该功能增强了默认的搜索能力,已超过了纯文本搜索。

7、立体蓝牙和免提电话。

除了增强的免提电话体验,Android还支持立体蓝牙(A2Dphe和AVCRP),并有自动配对功能。

8、强大的GPS技术.Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完善。

9、Android系统硬件检测,android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征,为了让用户下载到与自已的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的android设备建立在不同的硬件上时,这个功能显得很实用。

[1]

4.2Googleandroid移动平台开发过程研究[4]

Android移动平台作为21世纪的新秀,受到了越来越多的开发者的钟爱,在这股开发的浪潮中,逐渐形成了具有Android一套具有Android特色的开发流程。

由于Android的优越性,其开发显得非常的有规律可寻。

大致的开发流程如下:

需求分析:

作为一个软件,它必须有其存在的意义和价值,而这个价值和意义就需要靠需求分析来确定。

功能分析。

作为一个手机软件,它的使命就是给用户使用的。

如何提供用户最好的用户体验就值得每一个程序员的深思,这也是确保一个程序成功的关键所在。

界面设计:

作为一个手机软件,其只能在极有限的区域中显示自已,如何在有限的空间里更完美的展现出自已的独特之处就显得更为重要了。

测试:

在任何一个软件开发行业中,无论是J2EE,J2SE,J2ME等等其他开发中,测试时必不可少的一环,在Android开发中,由于手机的搞频率使用,和硬件系统上的不足,使得对软件的要求更加的严格,这就要求在开发完成后,再对其进行严格的测试,而测试又包括了:

单元测试,系统测试等等方面的测试。

系统开发:

作为一个软件的主体部分,系统开发的好坏直接决定了该系统的性能和寿命。

发布:

在完成一个系统的开发后,就要对其发布,经过广大用户的考验,只有经过这个过程,才算是一个合格的产品,在Android平台中,Google提供了完整的发布机制------Googlemaket。

4.3Googleandroid移动平台下的应用研究[5]

Android系统提供给应用开发者本身就是一个框架,所有的应用开发都必须遵守这个框架原则。

我们在开发应用时就是在这个框架上进行扩展,下面来看看android这个框架都有些什么功能可供我们使用。

Android.app:

提供高层的程序模型和基本的运行环境

Android.content:

包含对各种设备上的数据进行访问和发布

Android.database:

通过内容提供者浏览的操作数据库

Android.graphics:

地层的图形库,包含画布,颜色过滤,点,矩形,可以将它们直接绘制到屏幕上。

Android.location:

定位和相关服务的类

A:

提供帮助网络访问类,超过通常的*接口。

Android.media:

提供一些类管理多种音频,视频的媒体接口。

Android.os:

提供了系统服务,消息转输和IPC机制。

Android.opngl:

提供OpenGL的工具。

Android.provider:

提供访问Android的内容提供者的类。

Android.telephony:

提供与拨打电话相关的API交互。

Android.view提供基础的用户界面接口框架。

Android.util:

涉及工具性的方法,例如时间日期的操作。

Addroid.webkit:

默认浏览器操作接口。

Android.widget包含各种UI元素在应用程序的布局中使用。

4.4小结

本单主要通过三个方面:

1.Googleandroid移动平台的概述:

2.googleandroid移动平台开发过程的研究:

3.googleandroid移动平台下的应用研究,概要的介绍了Googleandroid移动平台相关知识,对googleandroid移动平台有初步的认识和了解,为后面的开发做了坚实的基础。

 

第五章掌上手上天气预报系统程序设计

5.1用户界面设计

根据需求分析可以知道,应用程序应包含三个主要的用户界面,这里需要进一步分析每个用户界面中应该包括哪些显示内容。

在“设置页面”中,需要对要显示天气预报的城市及更新频率进行设置。

在“显示页面”中,显示当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。

在“详细页面”动态显示当前天气情况,还要显示未来四天的天气情况。

根据对用户界面显示内容的分析,绘制出用户界面的草图,如图4-1所示。

图4-1

基于Android平台的智能手机访问服务器的主要技术是数据交互方法。

基于Android操作系统的天气实况预报系统设计的核心是通过调用通信协议SOAP(SimpleObjectAccessProtocol)的接口,从WebService提供商中提取天气预报的数据信息,为客户端服务。

其基本功能是当用户运行天气预报系统程序时,在手机屏幕上显示出中国的城市名称,用户单击任意一个城市名,可获得该城市的天气实况预报信息。

用户也可以输入城市名称,点击查询获得天气预报信息。

WeatherForecast工程目录结构及其源代码文件如图4-2所示

图4-2

 

5.2主要代码介绍

1.AsyncImageLoader类该类功能是根据url判断图片是否存在于Cache,如果存在那么通知回调函数,如果不存在则开启新线程下载图片,完成之后通知回调函数.

publicclassAsyncImageLoader{

publicAsyncImageLoader()

{

}

publicBitmaploadImage(finalStringstrUrl,finalImageCallbackimageCallback)

{

Bitmapbitmap=null;

StringBuffersb=newStringBuffer(strUrl);

sb.deleteCharAt(0);

finalStringimageUrl=sb.toString();//分离出图片的真实地址

//根据图片真实地址查找图片是否在缓存,如果在缓存中直接返回该图片

//不能直接使用strUrl,否则会导致相同的图片被存在缓存当中

if(ConstData.imageCache.containsKey(imageUrl)){

SoftReferencesr=ConstData.imageCache.get(imageUrl);

bitmap=sr.get();

if(bitmap!

=null){

Log.i("info","already-->"+strUrl);

returnbitmap;

}

}else{

Log.i("info","notexit!

-->"+strUrl);

}

2:

FileUtils类该类功能是对外部存储设备进行设置。

publicclassFileUtils{

privateStringSDPATH;

publicStringgetSDPATH()

{

returnSDPATH;

}

//得到外部存储设备目录

publicFileUtils(){

SDPATH=Environment.getExternalStorageDirectory()+"/";

}

/**

*在SD卡上创建文件

*@throwsIOException

*/

publicFilecreateSDFile(StringfileName)throwsIOException{

Filefile=newFile(SDPATH+fileName);

file.createNewFile();

returnfile;

}

/**

*在SD卡上创建目录

*

*/

publicFilecreateSDDir(StringstrDir){

Filefile=newFile(SDPATH+strDir);

file.mkdir();

returnfile;

}

/**

*判断SD卡上的文件是否存在

*/

publicbooleanisFileExists(StringfileName){

Filefile=newFile(SDPATH+fileName);

returnfile.exists();

}

3:

HttpDownloader类该类功能是创建一个URL对象和连接HTTP,调用者使用URI(通用资源标识符)对不同的数据集的数据进行操作。

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

publicclassHttpDownloader{

privateURLurl;

privateStringline;

privateBufferedReaderbuffer;

privateStringBuffersb=newStringBuffer();

publicStringdownload(StringurlStr){

try{

//创建一个URL对象

url=newURL(urlStr);

//打开一个HTTP连接

HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();

//使用IO流读取数据,读取字节流->将字节流转化成字符流->再用BufferedReader读取

buffer=newBufferedReader(newInputStreamReader(urlConn.getInputStream()));

while((line=buffer.readLine())!

=null){

sb.append(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1