大学毕设论文基于android平台的手机天气预报系统设计论文Word下载.docx

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

大学毕设论文基于android平台的手机天气预报系统设计论文Word下载.docx

《大学毕设论文基于android平台的手机天气预报系统设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《大学毕设论文基于android平台的手机天气预报系统设计论文Word下载.docx(42页珍藏版)》请在冰点文库上搜索。

大学毕设论文基于android平台的手机天气预报系统设计论文Word下载.docx

Nowaday,thesmartphonesaredevelopingfasterandfaster,mobilephonesaremorepractical,convenientforsmartphoneuserstobetterknowtheservicesprovidedbythenetwork,goodandeffectivewayistodeveloptheapplicationsystemtothemobileterminal,sothesmartphoneswillhaveveryimportancefordevelopment.

Firstweatherforecastisverypracticalinformationservices,sothelaunchoftheAndroidopensourcemobilephoneoperatingsystem,theuseoftheLinuxkernel,thedevelopmentofmobilephonealliancememberscanbeusedtomodifytheSDK.Usingthemobileterminaltoimplementthequeryweatherforecast,sothatwecanmorequicklylearntoknowtheweatherinformation,thesoftwareincludestheoperatingsystem,userinterface,etc..

Keywords:

AndroidmobileweatherforecastsystemLocation

目录

摘要1

第一章概述

1.1项目背景1

1.2项目意义1

1.3研究现状和发展趋势1

第2章系统设计

2.1软件环境2

2.2主要方法及技术2

2.3主要方法3

2.4数据库设计3

2.5设计目标3

第3章需求分析

3.1经济可行性4

3.2系统功能分析4

3.3性能分析4

3.4系统架构图4

第4章系统设计

4.1系统模块5

4.2系统功能6

第5章主要模块

5.1项目架构7

5.2主要功能实现8

5.2.1数据库实现9

5.2.2数据库文件10

5.2.3数据库代码11

5.2.4数据库代码12

5.2.5GPS定位实现13

第6章功能测试

6.1功能测试18

结论24

参考文献25

第1章概述

1.1项目背景

近年来随着3G技术成熟使用广泛,网络的应用与日俱增,网络应用开发技术成为当下最热潮的技术之中。

在Google和Android手机联盟的共同推动下,Android系统在许多移动网络应用开发中最为火热受到追捧。

Android系统是一个有意义的操作系统,此系统刚一出现就为大量的商家及其顾客们的热潮。

故而为顺应潮流,了解未来移动互联网的发展趋势,开拓Android应用平台市场,更好的去迎合社会的需求。

1.2项目意义

由于Android平台3G手机气象软件开发可以对扩大覆盖面很有利,同时可以使得广大群众提前就得知所在的城市天气信息,能够预先得知预防,降低了很多的不必要的灾害。

并且能够更好的强化相应的功能,完善公共更好的服务体系、改善公共服务手段、增加公共服务产品、提高服务质量,发挥气象事业对经济社会发展的现实性作用更好的状态。

1.3研究现状和发展趋势

随着现如今4G网络的飞速发展,智能手机应用普及,安卓占全球手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。

安卓系统是第一次开源代码的操作系统,Linux内核,可以随时提取和完善安卓系统的SDK软件包。

我们相信,安卓系统在全球市场的成长壮大操作系统迅猛发展,有着良好的产业运作策略,计旨在搭载Android的移动设备上运行,实现天气状况的实时动态更新与显示,方便人们这些特点将为安卓在智能手机市场赢得很好的发展机遇。

此系统免费让代码的开源更多的开发者进入应用开发;

或许同时谷歌值得众多厂商所学习的,不停的发现更好的版本,将系统推广到更多终端产品中,确保大家更好的体验。

第二章系统设计

2.1软件环境

(1)JavaSDK

(2)JDK1.6.10

(3)Eclipse3.5

(4)Android2.2及以上

(5)操作系统:

WindowsXP及以上

(6)ADT

(7)数据库:

SQLite

2.2主要技术

1.Android手机的界面UI设计

2.Android的网络通信

3.Android的广播

4.GPS调用解析

5.Widget小部件编程

6.XML与JSON解析

7.SQLite数据库操作

8.Android文件操作

2.3主要方法;

(1)首先搭建Android平台,建立一个名为android2.2的项目名为WeatherSystem项目,

(2)其次编写网络访问代码,访问:

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

(4)建立设置城市界面,读取数据库文件,获取身份,城市以及对应的城市码。

(5)接收用户选择的城市码,访问:

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

(7)定时由保存的城市码更新天气信息

双击Eclipse解压后目录中得到eclipse启动

2.4数据库设计

因为系统中通过中央气象台的WebService提供的API访问的得到的天气预报,故当需要查询哪城市时,需要它提供的城市码,而城市码的相对稳定一样,因此在构建系统时将他提前通过Android的网络访问技术将其缓冲到本地SQLite数据库进行保存起来,对于后面的询查很有利。

并产生流量费用呢。

综合所述在本地简历db_weather.db的数据,表结构如下:

其中只存在两个表:

provices和citys

City中存在对city-num对天气的查询,同时还存在外键province_id与provices表,形成1对n的关系。

系统架构图

2.5设计目标

为了完成一个实用稳定的天气预报系统,而且廉价并能满足足大用户的需求,由此针对上述目标,该设计要满足的是:

1:

系统能及时的反馈制定预报城市的天气情况

2:

自动定位用户所在城市,支持GPS定位

3:

控制流量消耗,使得只能在规定的时间间隔期间才刷新气象信息,其余时间只需显示缓存的天气

4:

操作方便,使用便利,界面设计美观简洁,支持widget

第三章需求分析

3.1经济可行性

系统开发使用或及利用的软件都是免费开放开源下载,所有系统在经济上是可行的。

3.2系统功能分析

该软件是APPwidget的一个应该小程序,启动后可以进行城市、更新与查询相应的天气信息,可以通过图片和文字显示当前的一级未来的天气状况等,包括温度,湿度,风向,淤血情况等。

这些天气细腻是根据后台数据库等服务显示的,服务相应的按照的时间间隔,从Google上获取相应天气预报信息。

3.3性能分析

程序响应速度快,处理信息快具有相应安全保障等

3.4系统架构图

4.1系统模块

根据相应的需求,将系统分为主要三大模块:

天气信息、预报城市设置与Widget桌面小部件模块。

相应系统模块功能如下:

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

2).预报城市设置由自动设置预报城市与手动设置二部分组成,自动设置实现GPS定位功能,自动确定当前用户所处位置,手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,为了用户方便使用,支持以输入框的形式来过滤查询预报城市。

当单击选中城市时跳转至天气显示界面,会显示出城市当三天内的天气状况信息;

首次运行时跳转至该页面。

3).Widget桌面小部件模块

使得用户更快捷方便的实时了解天气状况信息,添加在Android系统桌面上显示当前天气与时间的天气小部件,用户拿起手机就能了解天气信息,并且当用户单击小部件时,将会自动跳至天气显示界面,并显示出三天的天气信息情况。

4.2系统功能

设置预报城市界面:

首次运行程序,跳至该城市设置界面进行预报城市的选择如图:

天气显示界面:

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

在天气界面中用户可通过按菜单键来调出菜单,选择城市,更新天气与更换背景

小部件Widget显示

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

第五章主要模块

5.1项目结构

装有ADT插件的Eclipse中建一个名为WeatherSystem的Android2.2版本的项目,项目文件结构如下:

WeatherSystem

|__

src

||_com.weather.app

|||_MainActivity.java

|||_SetCityActivity.java

|||_UpdateWidgetService.java

|||_WeatherWidget.java

||_p

|||_GPSListAdapter.java

|||_MyListAdpater.java

||_com.weather.dao

|||_DBHelper.java

||_com.weaher.utils

||_LocationXMParser.java

||_WeatherInfoParser.java

||_WebAccessTools.java

|__res

||_drawable

|||_(略)

||_layout

|||_gps.xml

|||_main.xml

|||_widget_layout.xml

|||_set_city.xml

||_menu

|||_configure_menu.xml

||_raw

|||_db_weather.db

||_values

|||_color.xml

|||_strings.xml

||_xml

||_weather_widget.xml

|

|_AndroidManifest.xml

5.2.主要功能实现

获取城市码db_weather.db数据库文件

通过访问中央气象局网从省份直辖市到城镇一级一层的深入,得到全国的城市码,如果需要获得一个地区的城市码总共需要访问4次网络,分别如下:

访问

[01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,…]

2.访问

[1201|济南,1202|青岛,1203|淄博,1204|德州,1205|烟台,1206|潍坊,……]

3.访问

[120101|济南,120102|长清,120103|商河,120104|章丘,120105|平阴,….……]

4.访问:

[120102|101120102…]

首先实现上述功能需使用Android的网络访问技术,故编写工具类WebAccessTools类如下:

/**

*根据给定的url地址访问网络,得到响应内容(这里为GET方式访问)

*@paramurl指定的url地址

*@returnweb服务器响应的内容,为<

code>

String<

/code>

类型,当访问失败时,返回为null

*/

publicStringgetWebContent(Stringurl){

//创建一个http请求对象

HttpGetrequest=newHttpGet(url);

//创建HttpParams以用来设置HTTP参数

HttpParamsparams=newBasicHttpParams();

//设置连接超时或响应超时

HttpConnectionParams.setConnectionTimeout(params,3000);

HttpConnectionParams.setSoTimeout(params,5000);

//创建一个网络访问处理对象

HttpClienthttpClient=newDefaultHttpClient(params);

try{

//执行请求参数项

HttpResponseresponse=httpClient.execute(request);

//判断是否请求成功

if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){

//获得响应信息

Stringcontent=EntityUtils.toString(response.getEntity());

returncontent;

}else{

//网连接失败,使用Toast显示提示信息

Toast.makeText(context,"

网络访问失败,请检查您机器的联网设备!

"

Toast.LENGTH_LONG).show();

}

}catch(Exceptione){

e.printStackTrace();

}finally{

//释放网络连接资源

httpClient.getConnectionManager().shutdown();

returnnull;

通过上面访问清楚,得到的编码与名称都是“编码|名称”的形式,所以在此也编写一个解析得到城市码的工具类WeatherInfoParser,以便解析从服务器中得到的城市码:

*通过解析content,得到一个一维为城市编号,二维为城市名的二维数组

*解析的字符串的形式为:

<

编号|城市名,编号|城市名,.....<

*@paramcontent需要解析的字符串

*@return封装有城市编码与名称的二维数组

publicstaticString[][]parseCity(Stringcontent){

//判断content不为空

if(content!

=null&

&

content.trim().length()!

=0){

StringTokenizerst=newStringTokenizer(content,"

"

);

intcount=st.countTokens();

String[][]citys=newString[count][2];

inti=0,index=0;

while(st.hasMoreTokens())

Stringcity=st.nextToken();

index=city.indexOf('

|'

citys[i][0]=city.substring(0,index);

citys[i][1]=city.substring(index+1);

i=i+1;

returncitys;

编写这两个类后就是编写从服务器端用程序遍历得到全国各地的城市名与城市码,并将它们分别的保存在String[][]provinces数组,String[][]childs数组与String[][]cityCode中:

WebAccessToolswebTools=newWebAccessTools(this);

//得到访问网络的内容

StringwebContent=webTools.getWebContent("

//第一次解析得到的为省份或一级直辖市

String[][]provinces=WeaterInfoParser.parseCity(webContent);

String[]groups=newString[provinces.length];

String[][]childs=newString[provinces.length][];

String[][]cityCode=newString[provinces.length][];

for(inti=0;

i<

provinces.length;

i++){

groups[i]=provinces[i][1];

//由省份码来得到城市码

StringBufferurlBuilder=newStringBuffer("

urlBuilder.append(provinces[i][0]);

urlBuilder.append("

.xml"

webContent=webTools.getWebContent(urlBuilder.toString());

String[][]citys=WeaterInfoParser.parseCity(webContent);

//用于保存所的有towns

String[][][]towns=

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

当前位置:首页 > 人文社科 > 法律资料

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

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