Android手机天气预报项目报告Word文档下载推荐.docx
- 文档编号:5745071
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:19
- 大小:148.49KB
Android手机天气预报项目报告Word文档下载推荐.docx
《Android手机天气预报项目报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Android手机天气预报项目报告Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。
一条SOA消息就是一个包含有一个必需的SOA的封装包,一个可选的SOA标头和一个必需的SOAI体块的XM文档。
XM文档在Android平台上的解析可以通过SAX勺方式方便快速的完成。
解析Android应用程序中获得的列表数据XM文件,对XM文件中的数据实现分离,得到指定的所需要的信息,然后执行存入数据库或显示到页面等相应的处理。
Android的开发组Activity、IntentReceiver、Service、Content
Provider等,可以实现不同页面之间的跳转;
数据的获取和实现与数据库的实时交互;
不同页面和进程间数据的共享。
数据库设计
本软件中有两部分数据需要存储,一个是显示页面的数据,另一个是详
细页面的数据。
但是数据量都不是很大,因此可以选择SQLite数据库作为存
储数据的方法,建立数据库,并且建立两张表weather_widget和weather_forecast,分别存储显示页面的数据和详细页面的数据。
表2-1详细页面的数据库表weather_forecast的结构
属性
数据类
型
说明
_id
integer
自动增加的主键
widgetId
组件的ID号
dayOfWee
k
text
周几
low
最低温度
hight
最高温度
icon
显示天气的图标
conditio
n
未来天气情况
存储Widget组件id
city
进行天气信息查询的城市名
updateMilis
进行天气信息查询的频率,单位为分/次
isConfigured
是否设置
postalCo
de
城市标记
forecastDate
预报日期
当前天气情况
tempF
tempC
humidity
当前湿度
天气图标
windConditio
风向风速情况
lastUpdateTi
me
最后一次更新时间
功能模块设计
从功能需求上分析可以看出,整个应用程序应划分为4个模块,分别是
程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图2-1所示。
图2-1各功能模块间的关系
从模块结构图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责周期性的从Google获取天气信息。
后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。
用户界面是从数据库中获取天气信息,而没有直接通过网络访问Google
的天气数据。
这样设计,一方面可以避免因网络通信不畅而造成界面失去响应;
另一方面,后台服务可以及时更新数据,以保证数据的准确性。
数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它来实现对数据库的操作。
第3章项目功能描述
系统主要功能
本软件要完成在android手机上实现天气的即时预报。
所涉及的功能有:
1.启动程序后可以进行城市、更新频率的设置;
2.可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。
使用效果图实现与相应天气的结合。
3.这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的
时间间隔,通过Google提供的公共接口获取天气预报信息,并将天气信息保
存在本地数据库中。
系统各模块具体实现
321文件结构与用途
在程序开发阶段,首先确定“Android手机天气预报软件”的工程名为ty-weather,据程序模块设计的内容,建立ty-weather工程。
工程源代码的结构如图3-1所示。
图3-1ty-weather
工程的源代码文件结构
为了使源代码文件的结构更加清晰,Weather工程设置了多个命名空间,
分别用来保存用户界面、数据库、后台服务和工具实体的源代码文件。
源代码文件的名称以及说明如表3-1所示。
表3-1ty-weather工程的文件用途说明
包名称
文件名
设置页面”的
Activity
详细页面”的
天气预报相关数据提
供者,操作数据库
后台进程服务
后台时间服务
实现AppWidget组件,
并启动服务
网络数据获取模
块
未来天气信息的
类
天气信息工具类
当前天气信息的
Android的资源文件保存在/res的子目录中。
其中、/res/anim目录中保存的是产生动画效果的XML文件,/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml
目录中保存的是XML格式的数据文件。
所有在程序开发阶段可以被调用的资源都保存在这些目录中,具体每个资源文件的用途可以参考表3-2:
表3-2资源文件名称与用途
资源目录
文件
Anim
渐变透明度动画效果
画面转换位置移动动画效果
(从左至右)
(从右至左)
(从上至下)
drawable
这个文件夹里是工程里
所用的图片,如有表示天气状
况、数字等,此处不赘述。
layout
设置城市、天气更新频率的布
局
“显示页面”的布局
“详细显示”页面上边的显示
当前天气的布局
“详细显示”页面下边的显示
未来天气的布局
values
保存颜色的XML文件
保存字符串的XML勺文件
xml
AppWidget的属性文件
数据提供者
数据提供者ForecastProvider继承ContentProvider,是在应用程序间共享数据的一种接口机制。
应用程序在不同的进程中运行,因此,数据和文
件在不同的应用程序之间是不能够直接进行访问的。
而ContentProvider为
程序员提供了较高级的数据共享方法,应用程序可以指定需要共享的数据,而其他应用程序则可以在不知数据来源、路径的情况下,对共享数据进行查询、添加、删除和更新等操作。
在创建ForecastProvider时,首先需要使用数据库、文件系统或网络实现底层存储功能,这里我们采用数据库建立了数据库设计中的两张表,从而实现了底层存储功能。
然后在继承ContentProvider的类中实现基本数据操
作的接口函数,包括添加、删除、查找和更新等功能。
(1)创建数据库:
DatabaseHelper类继承SQLiteOpenHelper,SQLiteOpenHelper这个类可以辅助建立、更新和打开数据库。
DatabaseHelper在建立数据库时,同时建立了两个数据库表weather_widget和weather_forcast,并对保存配置信息的表进行了初始化。
(2)URI设置:
ContentProvider可以提供多个数据集,调用者使用URI(通用资源标识符)对不同的数据集的数据进行操作。
URI用来定位任何远程或本地的可用资源。
ContentProvider使用的URI语法结构,我们就需要先来对URI进行设置。
(3)查询功能:
执行数据的查询功能主要用到SQLiteQueryBuilder的query()方法。
Query(SQLiteDatabasedb,String[]projectionln,String
selection,String[]selectionArgs,StringgroupBy,String
having,StringsortOrder,Stringlimit),参数说明如下表3-3所示:
表3-3query()方法的参数说明
参数
SQLiteDatabasedb
要查询的数据库实例
String[]projectionln
是一个字符串数组,里边的每一项代表了需要返回
的列名
Stringselection
相当于SQL语句中的where部分
String[]selectionArgs
是一个字符串数组,里边的每一项依次替代在第三个参数中出现的问号()
StringgroupBy
相当于SQL语句当中的groupby部分
StringsortOrder
描述是怎么进行排序
Stringlimit
相当于SQL当中的limit部分,控制返回的数据的
个数
(4)添加、删除、更新功能,对数据库表中存放的天气等信息进行有效的管理。
添加功能:
publicUriinsert(Uriuri,ContentValuesvalues){}
删除功能:
publicintdelete(Uriuri,Stringselection,String[]selectionArgs){}。
更新功能:
publicintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs){}。
(5)类型匹配:
增删改查通过switch判断,进行不同的操作,因而还需要对关键字进行类型匹配。
后台服务
后台服务是ty-weather工程的核心模块,在用户启动后持续在后台运行,
直到用户停止服务。
后台服务主要有三个功能:
一是周期性的获取Google的
天气数据并存储到SQLite,二是从SQLite读取出要显示的数据,三是定时更新“显示页面”的时间。
(1)获取天气数据
天气数据的获取天气数据分为以下三个步骤:
1.从Google提供的WebService中获取的天气数据,数据的获取地址是:
&
hl=zh-cn。
2.调用轻量级XM解析器XmlPullParser对从网络上获取的字节流数据进行解析,并且将解析结果保存在WidgetEntity对象中。
3.将解析好的数据存储到SQLite数据库中。
其过程是:
使用ContentResolver对象,通过URI间接调用ContentProvider,使用ContentResolver对象与ContentProvider进行交互,而ContentResolver则通过URI确定需要访问的ContentProvider的数据集。
调用关系如下图3-2所示。
图3-2ContentProvider的调用关系
(2)读取天气数据实例
通过()方法操作数据库取出所需要的数据。
(3)定时更新时间。
AppWidge一启动就会启动ForcastTimeService这个后台服务,此服务设
置了每隔20秒刷新一次时间,“显示页面”通过这个后台服务获取系统时间
从而显示。
如下图所示:
Android平台上的应用程序所要启动的服务需要在配置文件中注册
vserviceandroid:
name二"
Forecastservice"
>
<
/service>
vserviceandroid:
name="
ForecastTimeService"
用户界面
在用户界面设计上,采用了AppWidget框架结构,提供直观的交互操作。
1
Manchang,Jiar唱xi
1«
附:
拓.払牺2
22°
■
1■
KA
如力土1护吐护
1仃
障日
it-
iifljz105U
曲和Oio:
w
三个用户界面风格简约、操作简便,用户体验将非常好。
如下图3-3所示:
图3-3系统主要用户界面
程序的入口类ForecastWidget在设计上采用了AppWidget框架结构,
AppWidget就是HomeScree上显示的小部件,通过在HomeScree空白处长按,
在弹出的对话框中选择Widget部件来进行创建。
此外,长按部件后并拖动到
垃圾箱里进行删除,也可以拖动到屏幕的其他地方,或者拖动到下一个屏幕上。
设置页面ConfigureActivity继承Activity并且实现了接口,AppWidget
第一次启动之前会先运行ConfigureActivity,会出现设置页面用户进行设
置,点击保存按钮就会将设置好的参数会存储到SQLite中。
详细页面DetailForecastActivity主要用来显示详细的天气信息,包括
当天和未来四天的天气信息。
为了能够以列表的形式显示多行数据,并制定每行数据的布局,使用了ListActivity。
ListActivity可以不通过setContentView()设置布局,也不必重载onCreate()方法,而直接将显示列表加载到ListActivity,增加了使用的便
利性。
在此工程中,仍然使用setContentView()设置布局,这样做的好处是可以在界面中设置更为复杂的显示元素。
动态特效
动态特效是指如果天气为多云或雨天时,就会在布局中出现漂浮的云或下落的雨滴;
如果天气为晴时,就会在布局中出现透明度逐渐变化的太阳图标等,这些效果将会具体体现为详细页面上的天气图标的变化。
动画效果是通过XM文件来实现的。
按照XM文档的结构来介绍Animtation,其有以下四种类型:
Alpha:
Scale:
渐变尺寸伸缩动画效果
Translate:
Rotate:
系统功能展示
(1)启动AppWidget应用程序
长按屏幕空白处,选择“Widget”,然后选择“天气预报”。
法向屏幕添加这个小组件,添加成功后会启动设置页面,如下图所示
0AddtoHomescreen
QChoosewidget
i*ueiuos
1)|Shortcuts
务》Music
写'
Widgets
Pictureframe
+Folders
令Wallpapers
yZPower匚ontrol
Search
天气预报
对要显示天气预报的城市及更新频率进行设置
通过这种方
如下图
所示:
益.•15:
37
2
(3)设置好后就进入显示页面,显示页面通过文字和图片显示当前的天
气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。
表示
天气状况的图标会根据温度等状况出现动态变化的效果,如下图所示:
(4)点击显示页面就会进入详细界面,详细页面通过文字、图片、动画显示当前的天气情况,包括城市当前天气、温度、风向、风速、湿度;
同时显示今后四天的天气情况。
下雨、多云等天气会出现相应的动画效
果。
如下图所示:
-I153
■15:
34
Nanchang,Jiangxi
Zhengzhou,Henan
26°
弃IT:
W%
凤良:
尼144-I肃解
的1fc\'
Kunming,Yunnan
20°
洼宜:
叽冇:
'
17°
雋一
可桃有县筑両
55anr.
18728^
^?
7T
咼_
可能有罢凤雨
1护曲
周_
可能有冷凤甫
14£
7243
禺二
VM
23V19p4
19729*
搏三
4!
21^/2^
匸」能充蚣禺囲
1l9V29a
U8>
j主
15'
729c
禺ES
瞇K至£
21ylS0.
b同四
18°
/293
Ii4Eqj.iTbV
周叮
可能有基凤
15V30tt
si
践度.MU
阳:
心艰:
*世
(5)长按显示页面并拖动到垃圾箱,即可将程序删除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 手机 天气预报 项目 报告