基于安卓系统天气预报APP的开发毕业论文
2020-04-10 16:53:44
摘 要
时代的变迁使人们的生活方式也随之改变,便捷的生活方式让人们体会到了生活的乐趣 , 对于人们来说想要拥有更好的出行体验,可提前预知的天气状况是必不可少的因素。智能手机天气预报软件能够方便了解到当前的天气状况,对于预计外出的人来说是十分重要的。而目前多数用户都在使用安卓智能手机,由此设计一款基于安卓系统的天气预报软件来满足多数人的生活需求。
本设计采用了安卓开源系统技术,它可以显示当天和未来五天的天气情况。能够实现从和风天气上获得天气预报信息,实现实时的天气查询,然后把天气信息保存在后台服务当中。
本文主要分析和讨论了Android手机软件开发的技术原理,开发了能为用户提供更好的Android平台使用体验的手机天气预报软件。
关键词:安卓;天气预报;布局;软件开发
Abstract
The changes of The Times have changed people's way of life, and the convenient way of life has Made people realize the joys of life. For people who want to have a better travel experience, knowing unpredictable weather conditions in advance is an essential factor. Smart phone weather forecast software can easily understand the current weather conditions, it is very important for people。Because most people are using android system,thus designing a weather forecast based on android system software to meet the demand of Most people's lives。
This design can display the weather in the day and the next five days.it can realize the weather forecast information from the hefeng weather, realize the real-time weather query, and then save the weather information in the background service.
This article mainly analyzes and discusses the technical principles of Android mobile phone software development, and develops a mobile weather forecasting software that can provide users with a better Android platform experience.
Key Words:android;forecast;layout;software development
目录
摘 要
Abstract
第1章 绪论
1.1 研究背景
1.2 研究内容
1.3 研究现状以及发展趋势
第2章 项目分析
2.1需求分析
2.1.1 功能需求分析
2.1.2界面需求
2.2性能分析
2.3技术可行性分析
第3章 项目开发涉及技术
3.1安卓操作系统简介
3.1.1安卓操作系统的特点
3.1.2安卓系统架构
3.2开发工具Andoid studio介绍
第4章 天气预报软件设计
4.1项目设计
4.1.1项目结构图
4.1.2 项目总体框架
4.2 数据信息的获取
4.3 创建数据库和表
4.4 遍历全国省市县数据
4.5 天气信息的显示
4.6 切换城市和手动更新天气
4.7 后台自动更新天气
4.8 软件名称修改
4.9 系统测试
4.10 待实现的功能
第5章 结论
第1章 绪论
1.1 研究背景
随着越来越多的前沿技术运用于气象业务,供给天气情况预先分析的资料急增,这就需要利用信息处理技术和高速通信技术处理这些资料。
人类对更好的生活的追求推动了科技的进步,而正是科技的进步推动了社会的进步。人们为了更好生活,必然会想方法提高自己的生活质量,然而外部自然气候的变化却是不可人为控制的。生活中,天气情况一直都是大部分人普遍关注的,人们需要不论何时何地都可以掌握准确的天气信息。
1.2研究内容
天气预报已经成为我们生活和日常出行的必需品,对生活品质的追求让我们需要实时的天气信息更新。面对如今的社会状况,我开发了可以实时查询全国各地天气情况,了解当地当日的空气质量以及能够智能的根据天气情况为使用者提出生活建议的天气预报 APP。本软件使用Android Studio进行开发,通过和风天气的APi来获得免费的天气信息,利用XMl 解析得到的风力,温度和湿度值以此为依据实时更新今日的Ui界面。
1.3研究现状以及发展趋势
尼尔森在2010年8月3日的早晨版中透露,有了最新的数据,这款手机将引领苹果iPhone进入美国市场。根据这些数据,Android智能手机目前占美国智能手机销售市场的27%。2011家安卓中国消费者品牌调查显示,华为、中兴、酷牌等本土品牌分别占11.4%、9.8%和9.2%[11]。
据国外媒体消息,来自报纸的最新数据显露,Android智能手机系统在欧洲主要市场的销售占主导位子,其市场份额占英国,法国,意大利等五个重点市场份额。西班牙和德国,从去年的38.8%超出今年的60%[12]。
从市场状况来看,智能的电子产品,苹果和三星拔得头筹,而亚马逊的未来不可预估。
但是对于我们现在使用的智能电子产品来说,硬件并不占主要的地位,第三方软件和渠道决定了一切。对于第三方软件,从目前的市场情况来看,苹果是占据了半壁江山,而谷歌紧随其后,接着就是微软了。苹果垄断了操作系统和硬件,所以很多公司就把目光转向了安卓。市场将由大部分人主宰,因此随着乔布斯的离开,又有众多公司的团结一致,安卓必然将占据市场的主流[13]。
第2章 项目分析
2.1需求分析
天气信息提前获取的必要性想必在日常生活中已经体现出来了,随着目前社会科技的进步推动着互联网的发展,天气信息已经变得可以实时获取。用户不需要通过央视固定时刻播出的节目来得知第二日的天气状况,而是通过手机上的4G网络便可以得知当前或者往后的天气情况,为我们接下来的出行活动做好充分的准备。
2.1.1 功能需求分析
(1)由于使用软件时间的碎片化和零散化,天气预报的软件使用操作应该尽可能容易上手。
(2)能在打开手机的GPS后确定手机使用者的当前位置,并且能够在后台自动更新相关信息。
(3)可以实时从界面上获取的信息有:实时的天气情况、空气质量、空气湿度以及生活小建议。
(4)可以预测显示未来五天的天气情况。
2.1.2界面需求分析
界面简单美观,切换城市查询实时的天气这些必备功能的按钮位置显眼且操作友好。背景图片切合实时的天气而产生变化,给使用者更好的交互体验。
2.2性能分析
软件运行稳定,信息来源安全可靠,响应速度快且不卡顿。
2.3技术可行性分析
全国省市县天气数据信息的获取是我们目前首要考虑的。市场需要盈利,因此网上的天气预报接口大部分都需要交纳费用才能够使用。不过一些稳定的天气预报服务每天都可以供我们一定次数的免费的天气信息获取。我在其中选择了和风天气,它允许外部的请求每天可以高达1000次,对于我的项目来说已经完全足够使用。当然如果面对是更大的使用范围,那么设计者就需要综合考虑选择更大的信息获取平台。和风天气数据虽然简单些,但是每天提供3000次免费请求,故本项目选择了它作为项目数据库的数据来源[1]。
- 项目开发涉及技术
3.1安卓操作系统简介
Android是谷歌开发的一款开源移动操作系统。基于lunix内核的安卓操作系统采用了谷歌自行开发设计的虚拟机,具有很强的开发背景。就从目前的市场情况来看,Android操作系统已经成为世界上最大的智能手机操作系统[2]。
3.1.1安卓操作系统的特点
安卓操作系统的源代码是完全开放的,这意味着安卓具有强大的生命力和创新能力,信息的流通和交互不存在障碍。同时,开源的最大优势是会让Android平台拥有不断增长的开发团队,并且随着用户和应用程序的日益丰富,它必然会使Android这个新平台成熟稳定[3]。
很多的电信巨头都推出了安卓系统的智能设备,包括穿搭或者是移动方面的。但是就iOS而言,目前就苹果在使用这个系统而已,并且主要也是用在iPhone和iPad上。WebOS阵营只有RIM黑莓支持[4]。
有类似的Windowsamp;nbsp;7操作系统阵营,但由于WP7不是开源系统,许多制造商没有机会参与,只有少数手机制造商支持,并且多年以来没有相同的平板操作系统,Android123先进的移动开发者人数在不断的上升,并且上涨的幅度是日益增大。至于WINDOWS系统目前尚和其存在比较大的差距,不太容易跨越,追逐的路程也还很长,而且从目前的微软战略和封闭的API来看,可能很难跟上Android。
DAlvik虚拟机是由谷歌开发的java虚拟机,从而优化文件与太阳VM相比(例如,合并多个类文件成dex文件)[5]。在java的API和太阳J2ME java虚拟机的非智能手机支持之间的一个完全不同的层面上,你可以看到Android软件可以支持应用基于来电防火墙显示属性,而不是Windows Phone 7和iPhone[6]。
目前,除了智能手机外,Android系统还包括平板电脑和智能电视。目前,摩托罗拉、三星、LG、HTC、宏碁和华硕都推出平板电脑,国内企业如创维和TCL推出了Android智能电视[7]。我相信在不久的将来将会有更多的智能家电、机顶盒和汽车电子产品。
安卓打破了APP之间的鸿沟,开发者可将应用程序和手机的本地信息对接,同时用户也可以给个各应用程序设置它们对应的使用权限,此外,应用程序可以声明其他应用程序可以使用此功能。
谷歌作为世界上数一数二的在线搜素服务提供商,在日常生活中逐渐让人们适应了它的存在。人们终究不满足PC端的服务,毕竟体积做的如何轻巧,始终还是不便于携带,使用起来也不尽方便。移动终端的PC扩展已成为必然趋势,,Android和GooGle的整合无缝地满足人们的需求。
3.1.2 Android操作系统的架构
Android系统的体系结构是一个四阶段结构。从上到下,应用层、应用层、运行时层系统和Linux内核层。
安卓的作用远远不仅限于一个简单的操作系统,而且是千万应用程序的集合体。数量庞大的应用程序构建了安卓的丰富多彩,它允许开发人员的自由想象,不断挖掘各路人才的天马行空,使得它的体系日益庞大和强壮。安卓的它不同于其他的系统软件,它是固化在系统的其他移动操作系统,更加灵活和个性化[8]。
应用程序层构成了我们Android开发的基础,许多应用程序通过这个层执行核心功能,这层对于重用组件非常有用,开发人员可以快速实现应用程序开发并使用剩余的组件获取和个性化。
该系统可分为两部分:系统库和Android运行时间。Android是基于Linux 2.6内核的。核心系统服务如安全、内存管理、进程管理、网络协议、驱动模型等核心系统服务都依赖于内核Linux操作系统[9]。
基于DAlvik虚拟机的几个应用似乎是Android的一部分,但实际上它们是由GooGle提供的。有一些例外情况,例如GooGle地图和Android电子市场[10]。
3.1.3 安卓的功能
1、安卓可以对接虚拟键盘。
2、使用小部件来个性化设置桌面。可以使用小部件来美化您自己的界面。大多数小型网页插件都可以从网页中获取实时的应用数据并将其反馈给用户。安卓配备了多个桌面小部件供用户来进行选择。
3、快速浏览在线文件的数量,安卓支持快速的查找,Android的在线文件夹可以显示数据项目。无需我们去用其他的程序来处理这些数据。
4、视频实时录制和分享。安卓可以用来录制视频,并且用户还可以选择将自己喜欢的视频分享到网络社交平台或者其他的云平台。对于自己拍摄的视频可以随时观看。
5、浏览器更加的兼容和稳定。得益于优秀的引擎渲染和编译的脚本文件,安卓的自带浏览器给使用者带来了重要的半速调优体验。
6、智能的语音搜索功能。语音识别在目前的智能手机中已经算是特别的常见,不管是便捷的操作,还是强大的搜索能力,目前他的使用率已经远远超过手打的文字搜索。
7、高性能立体蓝牙。在加强电话免提功能的基础上,安卓如今可以支持立体蓝牙,还有搜索附近设备并且可以自行和外部设备进行对接。
8、精准的定位技术,在安卓的内部存在许多GPS部件,通过她们的组合,我们就可以非常便捷轻松获取我们当前的位置和我们意图前往的位置。
9、安卓会对手机进行硬件检测,并且提出意见和修复方法,在用户允许的前提下会对系统的文件进行规模集成化和空间占有率优化安置。并且对于用户下载到手机上的第三方软件,系统会同样在用户允许的前提下根据第三方软件的内存占用情况和用户手机的性能,给出具有指导性的意见,即哪个版本比较适合目前手机硬件系统对应的匹配率,让用户可以高效便捷的使用当前的设备获得最好的感官体验。并且对于应用程序的推广,这个人性化的设计显然也非常符合各个开发商的需求,对于安卓在市场的进一步发展有很重要的意义。
3.2 Andoid studio介绍
Android Studio是2013年用于Android开发的全新GooGle开发工具,目前正在使用许多开源项目,GooGle进步也非常快,这意味着未来是Android开发的未来。比较Android Studio和Eclipse你可以在国内找到大多数使用Eclipse的人,但是这个项目仍然考虑前者优势,所以使用Android Studio的开发[11]。
Studio是谷歌为Android量身定做的产品。谷歌强烈支持基于IDE的iTeleLJ理念,这解释了为什么它是Android的未来。
其次是速度更快,Eclipse的启动速度,响应速度和内存使用率受到批评,并且经常卡顿,Studio无论在哪个方面都完全领先Eclipse。
它也更加智能化,补全的完成对于开发非常重要,Studio更聪明,便捷地补全,不需要每次都使用Ctrl S。熟悉Studio后,效率更高。
Studio集成了用于搭建GrAdle的工具,这是一个支持GrAdle的新工具。从Studio Studio推出的那一刻起,可以说GrAdle将Ant和Maven的优点结合在一起,而不管配置、编译和打包。
综上,我选择了使用Android Studio,出于性能和便利度考虑,这个软件的确是在符合新手的基础上又能够最大限度的满足我们的需求。并且一些便捷任性化的简化操作也让这个平台在我软件开发的过程中感受非常好,同时网上对应的一些教程也是丰富多彩,让我在闲暇之余有了充分的学习资料来提高自己的编程能力。
- 天气预报软件设计
4.1项目设计
4.1.1项目结构图
整个系统构思出来后需要具备以下四个基本功能:
1.可以查看全国各地的城市和县市天气信息。
2.可以随意的切换你当前所需要查看的地点信息。
3.软件会在后台自动更新当前的天气情况。
4.会针对目前的天气情况智能的给出一些生活建议。
开始
点击图标进入系统系统
显示主界面
点击城市列表
点击预查询的城市
跳转到该城市的天气信息界面
界面
图4.1 项目结构图
4.1.2 项目总体框架
图4.2 工程目录
4.2 数据信息的获取
摆在面前的第一个难题就是如何获得全国各地各县的天气信息,并且要做到保证信息的准确信和可靠信。目前网络上的确有一些免费的接口可以供给我们选择,但是我们不能忽视的一个问题就是数据来源需要具有权威信,因此,我选择了中国气象网提供的接口来用于我的软件开发:
需要获取全国的省市信息,我们跳转到如下网址即可:
http://www. .Weth.COM.CN/DATA/List3/CITY.XML Server
然后这个网站就会返回一些数据,其中包括了全国各省市的名称以及它对应的代码:
不同省份之间用逗号隔开,省名和省代码用一个竖条隔开。要知道省内哪些城市只需要添加一个省级代码,例如湖北的省级代码是20,请访问以下地址:
Http: / / www. Weather.com.cn / data / list3 / city20.xml
这样我们就可以得到湖北省有哪些市了,然后需要哪个市对应的信息就只需要改变对应的代号即可。对于市级就直接添加市级代号,比如荆州的市级代号是1807,那么想要知道荆州市下又有哪些县的时候,只需访问如下地址:
Http: / / www. Weather.com.cn / data / list3 / city1807.xml
这样可以列出全国所有地区,城市和地区,全国各地的天气信息采集到后,我们就需要精确的查看我们指定地点的天气信息,这就需要精确到县级。首先是要找到你查找的县对应的数字代码,例如我的老家松滋县代码为180701,那么接着就该跳转到如下的网址: http://www. .Weth.com .CN/DATA/List3/CITY180701.xml。
紧接着我们就会接收到一段非常短的文本消息: