安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx

上传人:b****5 文档编号:19664030 上传时间:2023-01-08 格式:DOCX 页数:37 大小:736.40KB
下载 相关 举报
安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx_第1页
第1页 / 共37页
安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx_第2页
第2页 / 共37页
安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx_第3页
第3页 / 共37页
安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx_第4页
第4页 / 共37页
安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx

《安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx(37页珍藏版)》请在冰豆网上搜索。

安卓平台的手机天气预报系统毕业设计论文Word格式文档下载.docx

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

(1)启动AppWidget应用程序;

(2)设置界面:

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

(3)显示界面:

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

(4)详细界面:

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

同时显示今后四天的天气情况。

2.3性能分析

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

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

3.1Android开发环境介绍

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

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

JavaRuntimeEnvironment)。

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

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

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

(1)JavaSDK

(2)Eclipse

(3)AndroidSDK

(4)ADT

3.2Android开发平台搭建

Android开发平台搭建步骤:

①首先到http:

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

接着再去站点下载SDK后安装,下载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文件夹。

第四章程序设计

4.1用户界面设计

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

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

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

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

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

图4-1用户界面草图

4.2数据库设计

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

因此选择SQLite数据库作为存储数据的方法,建立数据库forcasts.db,并且建立两张表weather_forcastt和weather_widget,分别存储显示页面的数据和详细页面的数据。

表4-1详细页面的数据库表weather_forcast的结构

属性

数据类型

说明

_id

integer

自动增加的主键

widgetId

组件的ID号

dayOfWeek

text

周几

low

最低温度

hight

最高温度

icon

显示天气的图标

condition

未来天气情况

表4-2显示页面的数据库表weather_widget的结构

存储Widget组件id

city

进行天气信息查询的城市名

updateMilis

进行天气信息查询的频率,单位为分/次

isConfigured

是否设置

postalCode

城市标记

forecastDate

预报日期

当前天气情况

tempF

tempC

humidity

当前湿度

天气图标

windCondition

风向风速情况

lastUpdateTime

最后一次更新时间

4.3程序模块设计

从功能需求上分析可以看出,整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图4-2所示。

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

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

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

之所以这么实际,一方面可以避免因网络通信不畅造成界面失去响应;

另一方面,后台服务可以及时更新数据,以保证数据的准确性。

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

在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。

第五章程序开发

5.1文件结构与用途

在程序开发阶段,首先确定“Android平台3G手机气象软件”的工程名为ty-weather,据程序模块设计的内容,建立ty-weather工程。

Weather工程源代码的结构如图5.1所示。

图5.1ty-weather工程的源代码文件

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

表5.1ty-weather工程的文件用途说明

包名称

文件名

说明

com.ty.weather

ConfigureActivity.java

“设置页面”的Activity

DetailForecastActivity.java

“详细页面”的Activity

ForecastProvider.java

天气预报相关数据提供者,操作数据库

ForecastService.java

后台进程内服务

ForecastTimeService.java

后台时间服务

ForecastWidget.java

实现AppWidget组件,并启动服务

WebServiceHelper.java

网络数据获取模块

com.ty.weather.util

ForecastEntity.java

未来天气信息的类

ForecastUtil.java

天气信息工具类

WidgetEntity.java

当前天气信息的类

Android的资源文件保存在/res的子目录中。

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

所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表5.2:

表5.2资源文件名称与用途

资源目录

文件

anim

rotatecurrentweather.xml

渐变透明度动画效果

translatecloudleft.xml

画面转换位置移动动画效果(从左至右)

translatecloudright.xml

画面转换位置移动动画效果(从右至左)

translaterain01.xml

画面转换位置移动动画效果(从上至下)

translaterain02.xml

translaterain03.xml

translaterain04.xml

translaterain05.xml

drawable

cloudy.png

这个文件夹里是工程里所用的图片,如有表示天气状况、数字等,此处不赘述。

dots.png

number_7_tahoma.png

weather_sunny.png

layout

configure.xml

设置城市、天气更新频率的布局

weather.xml

“显示页面”的布局

detail.xml

“详细显示”页面上边的显示当前天气的布局

detailitems.xml

“详细显示”页面下边的显示未来天气的布局

values

color.xml

保存颜色的XML文件

strings.xml

保存字符串的XML的文件

xml

weatherwidget.xml

AppWidget的属性文件

5.2数据提供者

数据提供者ForecastProvider继承ContentProvider,是在应用程序间共享数据的一种接口机制。

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

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

在介绍ForecastProvider的核心代码前,首先了解一下WidgetEntity.java(当前天气信息的类)和ForecastEntity.java(未来天气信息的类)。

(1)WidgetEntity.java的部分代码:

publicclassWidgetEntity{

privateArrayList<

ForecastEntity>

details=

newArrayList<

();

//ForecastEntity对象

privateIntegerid;

//编号

privateIntegerupdateMilis;

//更新频率

privateStringcity;

//城市

privateStringpostalCode;

//城市标记

privateLongforecastDate;

//预报时间

privateStringcondition;

//天气情况

privateIntegertempF;

//华氏温度

privateIntegertempC;

//摄氏温度

privateStringhumidity;

//湿度

privateStringicon;

//天气图标

privateStringwindCondition;

//风力风向

privateLonglastUpdateTime;

//最后更新时间

privateIntegerisConfigured;

//是否已设置

......

}

从代码中可以看出,除ForecastEntity的对象details,WidgetEntity类中有以上公有静态属性id、updateMilis、updateMilis、postalCode、forecastDate、condition、tempF、tempC、humidity、icon、windCondition、lastUpdateTime、isConfigured,完全对应数据库中weather_widget的表。

(2)ForecastEntity.java的部分代码:

publicclassForecastEntity{

privateIntegerid;

//编号

privateStringdayOfWeek;

//星期

privateIntegerlow;

//最低温度

privateIntegerhight;

//最高温度

privateIntegerwidgetId;

//组件id

从代码中可以看出,WidgetEntity类中有以上公有静态属性id、dayOfWeek、low、hight、icon、condition、widgetId,完全对应数据库中weather_forcast的表。

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

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

下面就核心代码进行分析。

(1)创建数据库:

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

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

具体代码如下所示:

privatestaticclassDatabaseHelperextendsSQLiteOpenHelper{

//数据库名称

privatestaticfinalStringDATABASE_NAME="

forecasts.db"

;

//数据库版本

privatestaticfinalintDATABASE_VERSION=2;

//构造方法,重载父类构造

publicDatabaseHelper(Contextcontext){

super(context,DATABASE_NAME,null,DATABASE_VERSION);

}

publicvoidonCreate(SQLiteDatabasedb){

//创建weather_widget表

publicvoidonCreate(SQLiteDatabasedb){

db.execSQL("

CREATETABLE"

+TABLE_WIDGET+"

("

......);

//创建weather_forecast表

+TABLE_FORECAST+"

}

//重写onUpgrade()方法

@Override

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

......

}

(2)URI设置:

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

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

ContentProvider使用的URI语法结构content:

//<

authority>

/<

data_path>

id>

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

代码如下:

publicstaticclassWeatherWidgetsimplementsBaseColumns{

//继承BaseColumns可以提供自动生成的ID

//声明CONTENT_URI

publicstaticfinalUriCONTENT_URI=Uri.parse("

content:

//"

+AUTHORITY+"

/widgets"

);

publicstaticfinalStringFORECAST_END="

forecasts"

//指操作多条数据

publicstaticfinalStringCONTENT_TYPE="

vnd.android.cursor.dir/awidget"

//指操作单条数据

publicstaticfinalStringCONTENT_ITEM_TYPE="

vnd.android.cursor.item/widget"

(3)查询功能:

首先我们先了解一下SQLiteQueryBuilder的query()方法。

query(SQLiteDatabasedb,String[]projectionIn,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringsortOrder,Stringlimit),参数说明如表5.3:

参数

SQLiteDatabasedb

要查询的数据库实例

String[]projectionIn

是一个字符串数组,里边的每一项代表了需要返回的列名

Stringselection

相当于SQL语句中的where部分

String[]selectionArgs

是一个字符串数组,里边的每一项依次替代在第三个参数中出现的问号(?

StringgroupBy

相当于SQL语句当中的groupby部分

Stringhaving

相当于SQL语句当中的having部分

StringsortOrder

描述是怎么进行排序

Stringlimit

相当于SQL当中的limit部分,控制返回的数据的个数

查询功能的核心代码如下:

publicCursorquery(Uriuri,String[]projection,Stringselection,

String[]selectionArgs,StringsortOrder){

//getReadableDatabase()这个函数会数据库是否存在、版本号和是否可读等情况,

//决定在返回数据库

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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