2024年4月4日发(作者:)

总727期第二十九期

2020年10月

河南科技

JournalofHenanScienceandTechnology

信息技术

基于Android系统的天气预报查询系统设计

崔雪

(吉林省气象局机关服务中心,吉林长春130000)

摘要:本设计运用开放性强的Android系统,在智能手机端研发一款用于查询城市天气预报情况的APP。该

天气预报查询系统界面友好,可操作性和实用性强,具有良好的可拓展性和维护性,可使用户实时掌握当地

天气情况,方便出行和生产安排。经过测试,该天气预报查询系统可稳定运行,基本满足用户天气服务需求。

关键词:Android系统;天气预报查询;设计

中图分类号:TN929.53文献标识码:A文章编号:1003-5168(2020)29-0004-03

DesignofWeatherForecastQuerySystemBasedonAndroidSystem

(ServiceCenterofJilinMeteorologicalBureau,ChangchunJilin130000)

CUIXue

Abstract:ThisdesignusestheopenAndroidsystemtodevelopanAPPforqueryingtheweatherforecastofthecity

therforecastquerysystemhasafriendlyinterface,strongoperabilityandpracticability,

meettheneedsofusersforweatherservices.

goodscalabilityandmaintainability,allowinguserstograspthelocalweatherconditionsinrealtime,facilitatingtrav⁃

esting,theweatherforecastquerysystemcanoperatestablyandbasically

Keywords:Androidsystem;weatherforecastenquiry;design

4G技术的广泛应用和5G信息大时代的到来给智能

风向、风速、降水情况等。该系统可实现的基础性功效

有:第一,将反映该APP明显特征的欢迎界面显示给用

户;第二,启动APPWidget应用程序,为凸显人性化服务,

单独将简易实时的天气数据和时间通过小部件显示方式

放置于移动端桌面,如果用户单击部件窗口,便会直接切

换至查询系统显示界面,界面内含七天内天气详情;用户

可根据需要自动定位所在城市并设置常住城市,支持双

城市天气情况小部件显示,为使用户翻找快捷,还支持以

文本输入框方式来筛选查询城市,点触屏幕选中目标城

市便可切换至该城市的天气显示界面;第四,天气显示界

面具体内容包括定制城市七天天气详情(温度、晴雨情

况、穿衣指数、空气质量等),并附有公历和农历对应日

期,标注传统节气和法定休假日,用户还可通过点击菜单

键来更新当前天气显示界面背景。

1.2

本天气预报查询系统具有较强的适用性和稳定性,

以最小成本消耗满足广大用户需求。因此,本设计应该

达到以下四点要求:系统可实时对应目标城市最新天气

情况;可自主选择定制城市,通过下拉列表菜单或文本框

设计目标

手机移动应用开发带来良好时机。Android系统是真正

一个能自主选择使用各种代码搭配的宽松环境,使其不

用受到强制性条件约束,催生各种新颖软件应用,移动应

意义上的开源智能手机操作系统,平台为开发者提供了

用需求增多,也使得应用软件开发成为时下最热门的技

术之一。天气预报则可以预测一地短时间内天气变化,

和人们生产生活具有密切关系。在信息资源能够高速传

输、快速集中的网络化时代,突破时空局限,优化气象数

据资料,在自主研发天气预报查询客户端上及时进行气

象信息发布,能更好满足本地社会发展需要

[1-2]

。因此,

基于Android系统的天气预报查询系统设计值得研究。

1

1.1

项目设计

总体概述

本系统是一个APPWidget应用窗口小部件,在移动

端主页面调出相关程序并开始运行后,根据用户需求自

主设定目标城市,具体气象数据信息由文字和图片联合

进行展示,内容包括近一周天气预报情况,具体有温度、

收稿日期:2020-09-19

作者简介:崔雪(1985—),女,硕士,工程师,研究方向:气象服务保障。

第29期

基于Android系统的天气预报查询系统设计

·5·

内输入方式实现;尽量消耗较少流量,以此减少用户

套餐费用支出,一般在标准间隔时段内通过后台自动

更新天气实况,其他时段以预先缓存的天气实况为准;

系统要有高用户友好度,操作方便快捷,界面美观大

方,支持widget。

2

2.1

系统设计

开发和运行环境

2.4

主要使用的工具如下:Mockplus手机界面原型设计

工具可灵活设计特色桌面图标,安卓系统Socket通信技

术用于编写客户端代码、安卓广播,窗口小部件AppWid⁃

gets和JSON数据解析帮助实现主要功能。

3

3.1

主要功能模块设计

项目框架

运用的技术和方法

开发环境主要包括JavaSE13(Java语言软件开发工

具包)、Eclipse4.13(集成开发环境)、安卓开发工具包

计算机端系统为Windows8。

2.2数据库设计

ADTPlug-in24.0.2,支持系统为Android7.0或更高版本,

APP所用气象数据资料通过调取全国气象系统储存

(天气预报系统)。然后,在该项目内预设多个

NameSpace(标识符可见范围)用以储存使用者预设界面

布局、数据库、隐藏运行程序和工具实体源代码文件。具

体文件包括的内容如表1所示。

3.2

城市列表是通过继承panda⁃

城市列表创建和过滤

Eclipse中新建一个项目,命名为WeatherForecastSystem

在包含安卓开发工具(AndroidDevelopmentTools)的

记录得到,因为气象系统网络城市码固定,所以要将各城

市码的获取作为得到特定城市天气详情的前置条件,设

计思路为在构建本系统数据库时将各城市码缓存在本

地,利用Android系统网络查询功能将城市码储存在本地

SQlite数据库,以备日后随时调取使用。在本地新建一数

据库,命名为db_,此数据库包含provinces和

cities两个子目录。Cities表内含citynum(城市码),可帮

provinces表构成一对多的匹配关联。

2.3主要方法和步骤

助进行天气查询操作。此外,还有外键province_id和

bleListAdapter适配器实现的,以实现其publicViewget⁃

GroupView()和publicVoidgetChildView()分别获取一级分

类列表和二级分类列表为主要目的。由于此操作仅可成

满足功能要求。开发者欲构建此自定义适配器,从预先

建立的省一级的Python列表和Numpy数组String[]groups

及含有地级市级别子列表String[][]childs获取数据便

可。此外,为达成筛选功效,人们需要搭建.

Filterable接口,此接口先配置了一个getFilter()返回Filter

功实现文本显示功能,相应利用TextView组件填充便可

首先,进行Android开发所需体系构建,新建一项目,

命名为WeatherForecastSystem。然后,在本开发程序进行

第一次试启动运行时,从备用数据库中将db_

相关资料全部导入本程序数据库。其次,搭建显示界面

用于选择定制城市,系统自动获取相关信息资料,找寻符

合用户搜索需求的省一级、市一级名称和对应城市码,进

而访问http:///data/<城市码>.html,得到

气象要素数据详情。对从网络上获取的天气详情进行解

析翻译,缓存气象数据和城市码,关联更新日期,更新日

期前数据有效,超过更新日期则数据无效,系统重复上述

操作获取最新天气情况。最后设置固定时间,根据储存

城市码自动更新操作。

过滤器列表,所以仍要构建一个Filter过滤类。在设计的

天气预报查询系统中,搭建一个内部类CityFilter,它继承

类,覆盖操作达成两个方法:一是per⁃

依据获取到的FilterResults对象更新适配器的pub⁃

lishResults()。

formFiltering()获取FilterResults过滤选出所需对象;二是

其中,performFiltering(CharSequenceconstraint)方法

的实现是通过constraint关键字达成的。先以省一级为对

标级别开始匹配操作,若匹配顺利,则此省下属全部城市

会加入进来,若匹配不成功,则依序与该省份下辖城市进

行核验关联,然后匹配,此后仅加入符合匹配结果的城

表1WeatherForecastSystem的项目文件用户

包名称

r

文件名

说明

激活“天气显示界面”

激活“欢迎界面”

激活“设置城市页面”

桌面小部件

后台运行更新

城市列表

数据库操作类

网络访问工具类

·6·

基于Android系统的天气预报查询系统设计

第29期

市。匹配结果记录在与

values

返回。另外的

类似的矢量中,再通过新构建的

Map>

FilterResults

terResults

BaseExpandableListAdapter

String[]

results)

publishResults(CharSequenceconstraint,Fil⁃

封装

groups

方法遵循上述过滤结果对象方法获取新

和String[][]

方法更换列表,此种方式可达成过滤后结果的显示。完

父类的

childs

notifyDataSetChanged()

数组。最后,采取

成以上程序后,在实际运行中第一次点击添加城市后会

先后出现两个菜单,按步骤选取用户所需城市即可完成

设置。

3.3

本查询系统桌面小部件里附加时间显示功能,

widget窗体部件的更新

所以

窗口小部件必须顺利进行实时更新,保证本程序和手机

系统内置时间一致。此类设计专门针对特定时间实现特

定操作。其思路是在设计窗口小部件的更新函数方法中

内置一自动运行后台服务项目,以此实现更新窗口小部

件中的时钟显示,并且可以自动在间隔一分钟时重复运

行此后台服务。自建一可以隐藏或最小化的运行服务

类,

widget

达成该服务方法需要先启动调出的onStart()方法,

气,

的布局对象、AppWidgetManager和城市码并更新天

得到

1

新函数方法中运行此自建服务项目。若手机用户有取消

min

获取当前时间设置,

。然后,在实现AppWidgetProvider

警报服务精确到秒级,

的widget

间隔设置在

类的更

查询系统窗口小部件的需求,在删除widget部件时,调用

的后台服务也将结束持续响应。支持这种操作不可缺少

的是实现Service类中的onDestory()方法,该方法在服务结

束时被调出,根据此方法取消AlarManager内置的预警功

能。在widget类中的onDisabled()方法中调用stopService

方法可以取消时钟后台自动更新的功能,其中的onDis⁃

abled

自建一个

方法在widget

Service

被用户删除时由系统自动调用。

服务后,系统将在清单文件An⁃

骤后,

中标明此自建服务,经过上述的设置步

3.4

窗口小部件就可以达成自动更新的目的。

查询系统若想在手机端使用

GPS定位功能的实现

GPS定位功能,需要先

获取GPS定位管理器,接下来获取位置提供程序。为精

准满足用户需求,

tion

可利用Criteria设置对象条件筛选

位置管理器对象中的

provider结果,获取最终位置提供程序后,

getLastKnownLocation()方法,

可顺利调出

loca⁃

得到最

后地址封装标的。最后标的编译处理由类创建对象的过

程中,

List

Geocoder将经纬度处理为地理位置信息List对象,

件可实现为安卓模拟器指定随意地址的功效。此外,

对象可获取使用者地址名。软件开发过程中,ADT插

实现定位功能,还需要设置一解析XML的工具类,本系

统主要利用LocationXMParser完成。

4结语

天气预报APP软件推广应用后,用户自行下载即可

随时随地获取实时天气状况,相比其他信息获取途径,天

气APP软件充分利用移动互联网便捷高效的传播优势,

能更好提醒用户每日天气情况,提供具体且准确的实时

天气预报及其他多元化功能服务,提升了气象服务水平。

参考文献:

[1]姚胜.基于Android的天气预报客户端设计与研究[J].

计算机测量与控制,2019(9):253-256.

[2]陈利婷.基于AppInventor的天气预报系统的设计与实

现[J].电脑知识与技术,2019(11):81-82.