软件工程毕业设计基于android系统的天气预报查询系统.docx

上传人:b****4 文档编号:3836219 上传时间:2023-05-06 格式:DOCX 页数:31 大小:1.10MB
下载 相关 举报
软件工程毕业设计基于android系统的天气预报查询系统.docx_第1页
第1页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第2页
第2页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第3页
第3页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第4页
第4页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第5页
第5页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第6页
第6页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第7页
第7页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第8页
第8页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第9页
第9页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第10页
第10页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第11页
第11页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第12页
第12页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第13页
第13页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第14页
第14页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第15页
第15页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第16页
第16页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第17页
第17页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第18页
第18页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第19页
第19页 / 共31页
软件工程毕业设计基于android系统的天气预报查询系统.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件工程毕业设计基于android系统的天气预报查询系统.docx

《软件工程毕业设计基于android系统的天气预报查询系统.docx》由会员分享,可在线阅读,更多相关《软件工程毕业设计基于android系统的天气预报查询系统.docx(31页珍藏版)》请在冰点文库上搜索。

软件工程毕业设计基于android系统的天气预报查询系统.docx

软件工程毕业设计基于android系统的天气预报查询系统

河北农业大学

本科毕业论文(设计)

题目:

基于android系统的天气预报查询系统

摘要

近几年来随着3G技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。

在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。

Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧,手机已被赋予了除通话以外的其它许多功能。

全新的手机软件领域已逐渐聚焦了众多软件开发商的目光,软件开发者和软件用户将共同面临这个振奋人心的新境界。

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

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

关键词:

天气预报系统;android开发

Abstract

Inrecentyears,withthe3Gtechnologymaturesandthegrowingpopularityofsmartphones,theincreasingdemandformobileapplications,mobileapplicationdevelopmentbecomethemostpopulartechnology.GivenafriendlyboostbyGoogleandAndroidHandsetAlliance,Androidstandsoutinnumerousmobileapplicationdevelopmentplatforms.Androidisatrulyopen-sourcesmartphoneoperatingsystem,whichoncelaunchedimmediatelybytheglobalmobiledevicemanufacturersanddevelopersblitz,mobilephoneshavebeengiveninadditiontomanyotherfunctionsoutsidethephone.Thenewphonesoftwarefieldhasgraduallyfocusedtheattentionofalargenumberofsoftwaredevelopers,softwaredevelopersandsoftwareuserswillbefacingthisexcitingnewrealm.

ThisdesignusesdesigntechniquesdevelopedanAndroidapplicationintheAndroidsystemmobileweathersoftwaresystem,thesystembyselectingthecitytogetweather,winddirection,temperatureandotherinformation.Androidbasedsoftwareallowsuserstoweatherforecastingsystemforreal-timeweatherconditionsaroundthemaster,agreatconveniencetotheuser'stravelandtravelarrangements,toavoidunnecessarytrouble,andhighlypractical.

Keywords:

Weatherforecastsystem;androiddevelopment

目录

1.需求分析1

1.1开发背景1

1.2系统研究内容1

1.3项目需求分析1

2.Googleandroid移动平台的相关理论1

2.1Googleandroid移动平台的概述1

2.1.1Android系统的特点2

2.1.2Android的功能2

2.2Googleandroid移动平台开发过程研究2

2.3Googleandroid移动平台下的应用研究3

2.4小结3

3.项目设计4

3.1项目总体设计4

3.2系统功能界面4

3.2.1欢迎界面4

3.2.2设置所在城市界面5

3.2.3天气显示界面6

3.2.4Widget桌面小部件界面7

3.3设计目标8

4.系统设计8

4.1开发及运行环境8

4.2数据库设计8

4.3主要方法及步骤8

4.4主要方法及技术9

5.主要模块9

5.1项目框架9

5.2主要功能实现10

5.2.1导入db_weather.db数据库文件10

5.2.2实现城市列表的创建与过滤11

5.2.3访问网络得到天气信息14

5.2.4Widget窗体小部件的更新15

6.功能测试17

结论21

参考文献22

基于android系统的天气预报查询系统

1.需求分析

1.1开发背景

近几年来随着3G技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。

手机是已经成为了生活中不可少的通读设备,没有手机有时会让人觉得寸步难行,手机将脱离传统的打电话,发短信等基本功能,而基于智能手机的处理能力和扩展能力,基于3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。

在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。

Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。

为顺应潮流,本设计旨在搭载Android的移动设备上运行,实现天气状况的实时动态更新与显示,方便人们的出行与生活。

1.2系统研究内容

1.界面的设计

2.代码的设计

3.程序的测试

4.产品的发布

1.3项目需求分析

根据功能的需求,分析此项目的主要功能应具备以下几点:

1.精确查询全国各地城市未来几天内的实时天气状况

2.系统要具有实用性,符合用户查看信息习惯,界面设计优美

3.系统要具有稳定性,且在一定程度上节省流量的开销

2.Googleandroid移动平台的相关理论

2.1Googleandroid移动平台的概述

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

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

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

2.1.1Android系统的特点

1.开放性。

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

2.应用程序无界限。

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

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

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

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

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

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

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

2.1.2Android的功能

1.支持虚拟键盘。

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

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

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

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

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

4.视频录制和分享。

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

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

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

6.Voicesearch语音搜索。

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

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

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

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

9.Android系统硬件检测,android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征,为了让用户下载到与自己的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序。

2.2Googleandroid移动平台开发过程研究

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

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

大致的开发流程如下:

需求分析:

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

功能分析。

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

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

界面设计:

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

测试:

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

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

系统开发:

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

发布:

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

2.3Googleandroid移动平台下的应用研究

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元素在应用程序的布局中使用。

2.4小结

本章主要通过三个方面:

1.Googleandroid移动平台的概述:

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

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

3.项目设计

3.1项目总体设计

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

该软件的基本功能需求有:

1.欢迎界面

系统启动时首先进入欢迎界面;

2.启动AppWidget应用程序

为了方便用户实时了解天气状况,特别添加在Android系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。

3.设置所在城市界面

通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。

当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况;第一次运行时自动跳到该界面。

4.显示天气界面

显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。

3.2系统功能界面

3.2.1欢迎界面

当系统启动时,首先会显示欢迎界面。

如图3-1所示:

图3-1欢迎界面

3.2.2设置所在城市界面

1.当第一次运行程序时,跳转至城市设置界面进行预报城市的选择,如图3-2所示:

图3-2设置城市

2.用户可通过输入框过滤查询当前系统中预存的城市,如图3-3所示:

图3-3过滤框输入选择城市

3.2.3天气显示界面

1.选择了预报城市后,系统跳转至天气显示界面,显示该城市三天内的实时天气,

如图3-4所示:

图3-4显示天气

2.在天气界面中用户可通过按菜单键来调出菜单,设置城市,更新天气与更换背景,如图3-5所示:

图3-5调出菜单

3.2.4Widget桌面小部件界面

方便用户第一时间了解天气动态,添加widget显示功能界面,如图3-6所示:

图3-6Widget桌面小部件

3.3设计目标

设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要求,本设计应滿足:

1.系统能及时的反馈指定预报城市的天气情况;

2.可设置所在城市,自行输入或者列表选择城市;

3.节省流量开销,规定在指定的时间间隔内才更新天气,其它时段显示缓存的天气;

4.操作方便快捷,使用简单,界面设计美观大方,支持widget。

4.系统设计

4.1开发及运行环境

1.JDK1.6.0_10

2.Eclipse3.8

3.AndroidDevelopmentToolkit(ADT)21.0.1

4.Android2.2及以上

5.Windows7

4.2数据库设计

由于在本系统中是通过访问中央气象台提供的天气信息得到的天气预报,在查询指定城市的天气时,需要用到它提供的城市码,而城市码相对稳定不变,所以在构建系统时将其事先通过Android的网络访问技术将其缓冲到本地SQLite数据库进行保存起来,方便以后的查询,同时节省了流量开销。

综上所述在本地建立db_weather.db的数据库,其中只存在两个表:

provinces和citys。

citys表中存在city_num用天气的查询,同时还存在外键province_id与provinces表形成1对n的关系。

结构如图4-1所示:

图4-1数据库表结构

4.3主要方法及步骤

1.搭建Android开发环境,并建立名为WeatherForecastSystem项目。

2.在程序第一次运行时,将db_weather.db数据库文件导入到应用程序数据库中。

3.建立设置城市界面,读取数据库文件,获取省份,城市以及对应的城市码。

4.接收用户选择的城市码,访问:

5.解析天气信息,将城市码及天气信息缓冲下来,并为其设置有效时间,方便下次启动时直接得到天气信息,过期则从网上更新。

6.定时由保存的城市码更新天气信息。

4.4主要方法及技术

1.Android手机的界面UI设计

2.Android的网络通信

3.Android的广播

4.Widget小部件编程

5.JSON解析

6.SQLite数据库操作

7.Android文件操作

5.主要模块

5.1项目框架

在装有ADT插件的Eclipse中新建一个名为WeatherForecastSystem的项目,项目主要文件结构如图5-1所示:

 

图5-1WeatherForecastSystem工程的源代码文件结构

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

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

表5-1WeatherForecastSystem工程的文件用途说明

包名称

文件名

说明

com.weather.app

MainActivity.java

“天气显示页面”的Activity

com.weather.app

WelcomeActivity.java

“欢迎页面”的Activity

com.weather.app

SetCityActivity.java

“设置城市页面”的Activity

com.weather.app

WeatherWidget.java

桌面小部件

com.weather.app

UpdateWidgetService.java

后台更新服务

com.weather.adapter

MyListAdapter.java

城市列表

com.weather.dao

DBHelper.java

数据库操作类

com.weather.utils

WebAccessTools.java

网络访问工具类

5.2主要功能实现

5.2.1导入db_weather.db数据库文件

publicvoidimportInitDatabase(){

//数据库的目录

StringdirPath="/data/data/com.weather.app/databases";

Filedir=newFile(dirPath);

if(!

dir.exists()){

dir.mkdir();

}

//数据库文件

Filedbfile=newFile(dir,"db_weather.db");

try{

if(!

dbfile.exists()){

dbfile.createNewFile();

}

//加载欲导入的数据库

InputStreamis=this.getApplicationContext().getResources().openRawResource(R.raw.db_weather);

FileOutputStreamfos=newFileOutputStream(dbfile);

byte[]buffere=newbyte[is.available()];

is.read(buffere);

fos.write(buffere);

is.close();

fos.close();

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}

}

5.2.2实现城市列表的创建与过滤

实现城市列表是通过继承android.widget.BaseExpandableListAdapter适配器实现的,其中主要实现它的publicViewgetGroupView()得到列表的一级列表和publicvoidgetChildView()得到列表的二级子列表实现的,在这里由于只是实现文本显示功能,故用TextView组件来填充就行了,如果要构造这个自定义的适配器,则只需在提供存放省份直辖市的一级列表的数组String[]groups和存放对应的城镇的二级列表的String[][]childs就行了。

@Override

publicViewgetChildView(intgroupPosition,intchildPosition,

booleanisLastChild,ViewconvertView,ViewGroupparent){

TextViewtextView=null;

//这里判断convertView是否为空

if(convertView==null){

//产生一个TextView组件

textView=getGenericView();

//设置它的文本内容

textView.setText(getChild(groupPosition,childPosition).toString());

}else{

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2