英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
使用 Android 系统的当前天气和天气预报的决策支持工具
Jan Bohacik1, Department of Informatics at the University of Zilina, Slovakia
摘要: 现如今,人们需要详细且容易获得的当前天气和天气预报信息。此要求的解决方案可以是与数据服务器通信的移动电话应用程序,并以易于使用的用户界面提供所有有用的信息。因此,我们提供了基于安卓操作系统的移动应用程序。它使用来自OpenWeatherMap的XML数据并且通过解析器分析这些数据。在应用程序中使用了 DOM 分析器和 SAX 分析器, 并进行了实验比较。发现 SAX 分析器的速度比 DOM 分析器快好几倍。
关键字: XML解析器,决策支持,天气预报,OpenWeatherMap,安卓。
引言
智能手机或平板电脑等移动设备越来越普遍, 广泛应用于银行、新闻阅读、购物、社交网络等领域。移动设备中最受欢迎的操作系统是 Android (6)。因此, 为这个平台创建软件应用程序是明智的。决策支持工具是这些应用程序的一个有趣的组成部分, 它们是研究 (4) (5) (7) 中的一个活跃话题。当前天气和天气预报信息对于每个人来说都很重要。它是可以随时为所有移动设备所有者提供当前技术的东西。在移动设备中, 天气应用可以使用互联网上的数据, 但需要快速处理它以防止过多占用手机设备的资源。
本文的结构如下。在第2节中描述了目前天气和天气预报的实现应用。在3节中, 分析了用于分析 OpenWeatherMap 天气数据的算法。在第4节中分析算法的实验结果。在第5节中总结了这份文件。
1 Jaacute;n Bohaacute;čik with all Slovak diacritics.
安卓应用
该应用程序的基本特点是下载和展示有关当前和未来天气的信息、位置的选择、温度测量单位的设置以及数据分析算法的选择。通过应用程序编程接口(API)获取在线服务 OpenWeatherMap (1)提供的天气数据。每分钟可以免费调用60次接口,并在三小时的间隔内获取关于当前以及接下来5天的天气信息。OpenWeatherMap提供JSON或者XML格式的数据信息。我们的程序使用XML格式数据,因为它也在Android系统中使用,例如布局文件、字符串常量文件、动画配置文件等等。先在 OpenWeatherMap 服务的网站自动生成 API 密钥。然后在形如http://api.openweathermap.org/data/2.5/weather?q=cityappid=keymode=xml的Url中使用密钥。XML 文档的一个示例如下 (2):
lt;currentgt;
lt;city id=”3056508” name=”Zilina”gt;
lt;coord lon=”15.74” lat=”49.22”/gt;
lt;countrygt;SKlt;/countrygt;
lt;/citygt;
lt;temperature value=”285.15” min=”285.15” max=”285.15” unit=”kelvin”/gt;
lt;humidity value=”81” unit=”%”/gt;
lt;pressure value=”1006” unit=”hPa”/gt;
lt;windgt;
lt;speed value=”1.5” name=”Calm”/gt;
lt;guests/gt;
lt;direction value=”260” code=”W” name=”West”/gt;
lt;/windgt;
lt;clouds value=”75” name=”broken clouds”/gt;
lt;visibility/.
lt;precipitation mode=”no”/gt;
lt;weather number=”803” value=”oblacno” icon=”04d”/gt;
lt;lastupdate value=”2016-04-14T14:00:00”/gt;
lt;/currentgt;
应用程序通过解析器解析下载的形如上面的文档中给出的格式的数据
分析算法
在许多领域中, XML 已成为数据表示和传输的标准格式,虽然其广泛采用但却被低效的分析算法所困扰。xml 解析器是读取 xml 文档并为其内容和结构的访问提供接口的有效工具。分析是XML数据在可以导航、查询或操作之前执行的核心操作。但是, 这是一个代价高昂的操作, 可能会降低 XML 处理性能。在提供的 Android 应用程序中, 使用 DOM 和 SAX 分析器。DOM 分析器在计算机内存中创建树结构, 此结构对应于 XML 文档 (8)。它包含所有元素、属性和数据。DOM 定义了多个接口。最常见的是如下:
-
- 节点– DOM的基本数据类型。
- 元素– 处理的绝大多数对象是元素。
- 属性– 表示元素的属性。
- 文本– 元素或属性的实际内容。
- 文档– 它表示整个XML文档。文档对象通常被称为DOM树。.
SAX 分析器读取整个文档, 它在遇到元素或属性 (9) 时不将整个文档放入内存中, 从而执行某些特定事件。与 DOM 分析器不同, SAX 分析器不创建分析树, XML 文档分析如下:
- xml 文档是从上到下读取的, 并识别组成格式良好的xml文档字段。
- 字段的处理顺序与它们在文档中的顺序相同。
- 应用程序会报告解析器遇到的字段的性质。
- 应用程序提供了一个必须在分析器中注册的事件处理程序。
- 当字段被识别时,处理程序中的回调方法将与相关信息一起被调用。
当文档不包含深度相互插入的元素或文档对于计算机内存而言太大时,应特别使用SAX解析器。 缺点是没有对XML文档的随机访问。
实验结果
在提供的Android应用程序中的数据解析通过测量以毫秒为单位的持续时间作为DOM解析器和SAX解析器的标准来测试。 持续时间从解析算法开始计算到结束。 实验中的数据在测试之前通过OpenWeatherMap API获取,因此互联网连接的速度不会影响整个持续时间。 在实验中共有20次模拟,特定解析器的结果显示在表中。 1.对于所有模拟,平均71.95毫秒的SAX解析器比平均419.35毫秒的DOM解析器快得多。
表. 1: 特定模拟的解析器速度(毫秒)(2)。
模拟 |
解析器 |
|
DOM |
SAX |
|
No. 1 |
325 |
92 |
No. 2 |
414 |
107 |
No. 3 |
496 |
87 |
No. 4 |
403 |
50 |
No. 5 |
452 |
69 |
No. 6 |
443 |
66 |
No. 7 |
333 |
63 |
No. 8 |
378 |
52 |
No. 9 |
382 |
94 |
No. 10 |
493 |
63 |
No. 11 |
431 |
83 |
No. 12 |
386 |
60 |
No. 13 |
452 |
66 |
No. 14 |
387 |
72 |
No. 15 |
498 |
45 |
No. 16 |
473 |
65 |
No. 17 |
431 |
68 |
No. 18 |
363 |
82 |
No. 19 |
355 |
71 |
No. 20 |
492 |
84 |
最大值 |
498 |
107 |
最小值 |
325 |
45 |
平均值 |
419.35 |
71.95 |
- 结论
为当前天气和天气预报创建了一个基于Android的移动应用程序。 该应用程序使用在线服务OpenWeatherMap的天气数据,并使用DOM / SAX解析器对其进行分析。 两种解析算法都进行了理论分析,并通过20个模拟实验进行比较,其中解析的持续时间被计算。 SAX解析器似乎更快,平均71.95毫秒。 因此,对于XML数据处理来说,它似乎是比现有类型的应用程序中的DOM解析器更好的选择。 Android应用程序可以通过添加几项功能来改进,例如手机所在区域的恶劣天气自动通知或者不显示应用程序而显示天气的小部件。
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[23498],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。