毕业设计类全套文件的下载平台

基于安卓系统开发的移动天气预报系统

  • 上传者:诸葛月月
  • 文件大小:10105 (KB)
  • 文档格式:.docx

文档分类: 计算机与科学

< / 68 >

还剩... 页未读,继续阅读

免费阅读已结束,点击付费阅读剩下 ...

阅读已结束,您可以下载文档离线阅读

关于本文

  • 本文标题:基于安卓系统开发的移动天气预报系统.docx
  • 链接地址:https://wk.sbvv.cn/view/17700.html
  • 内容摘要:本科毕业设计(论文)基于安卓系统开发的移动天气预报系统MobileWeatherForecastSoftware院(系)计算机学院专业软件工程班级软件十班学号学生姓名指导教师提交日期2020年4月15日毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字):签字日期:年月日中文摘要自改革开放以来,人们的生活水平与经济情况比起以前有了翻天覆地的变化,再加上交通工具的高速发展使得人们的出行比以前更加的频繁。而时至今日,无论是日常工作或者是娱乐出行都已离不开天气预报了,因此本文开发了一套基于安卓开发平台的移动天气预报应用系统。本系统主要运用androidstudio软件进行开发与维护,其脚本语言是Java,后台数据库则是Litepal数据库。该系统主要是通过用户点击查询天气预报的城市,后台会自动从指定的网站上获取该城市实时的时间、温度、天气情况、空气质量、还有未来七天的气温与生活建议等一系列JSON数据信息,随后采用GSON方法解析数据,并通过XML布局使天气预报的信息显示在应用系统上。另外本系统还实现了后台自动刷新功能与手动更新功能,使用户能够第一时间掌握最新的天气信息,极大地方便了用户的出行及行程安排,避免了恶劣天气带来的不必要麻烦。关键词:移动天气预报应用系统AndroidStudioLitepal1。1。11。ABSTRACTSincethereformandopeninguppeopleslivingstandardsandeconomicconditiohavechangeddramaticallycomparedwiththepreviouscoupledwiththesubwaybusconvenienceandotherreasomakepeopletravelmorefrequentlythanbefore。TodaypeoplecannotdowithoutweatherforecastwhetheritisdailyworkorentertainmenttravelsothispaperhasdevelopedamobileweatherforecastapplicatioystembasedonAndroiddevelopmentplatform。ThissystemmainlyusestheandroidstudiosoftwaretocarryonthedevelopmentitsdevelopmentscriptlanguageismainlyJavathebackgrounddatabasewhichdevelopsistheLitepaldatabase。ThesystemmainlybyclickingwanttoquerythecitythebackgroundautomaticallyfromthedesignatedwebsitetoobtainthecitysrealtimetimetemperatureweatherconditioairqualitythenextsevendaysofweathertemperaturelifeadviceandaseriesofJSONdatainformationandthenusetheGSONtopaethedatafinallythroughtheXMLlayouttomaketheweatherforecastinformationdisplayontheapplicatioystem。Inadditionthesystemalsorealizesthefunctionofautomaticbackgroundrefreshweatherinformationandmanualupdatesothatusecangraspthelatestweatheituationinthefittimewhichgreatlyfacilitatesthetravelandtravelarrangementsofuseandavoidsunnecessarytroublecausedbybadweather。Keywords:MobileWeatherForecastApplicationAndroidStudioLitepal目录第一章绪论11。1系统研究背景11。2研究的目的与意义21。3国内发展现状21。4系统结构2第二章相关理论与技术42。1开发环境的介绍42。2相关技术的介绍42。2。1Java技术介绍42。2。2AndroidStudio开发工具介绍52。2。3LitePal介绍5第三章系统可行性需求分析63。1系统目标63。2目标用户63。3系统设计及作用6第四章系统总体设计与开发84。1系统总体设计思路84。2系统总体开发过程与代码贴图84。2。1第一阶段84。2。2第二阶段134。2。3第三阶段244。2。4第四阶段414。3数据库结构表514。4系统界面与功能展示52第五章系统性能测试595。1系统测试环境595。2系统功能测试595。3系统测试结果59第六章系统性能测试60参考文献61致谢62第一章绪论1。1系统研究背景天气预报是利用近代科学知识与科技手段来预报未来某一地区的地球大气情况。在古代开始,人类就已经懂得开始利用天气预报来安排日常工作和生活(如农业种植与战争行动等方面)。而今天我们所了解到的天气预报主要是通过收集大量的气压、风向、湿度、温度等气象信息数据来识别大气环绕的过程(气象学),并以此确定未来的天气变化异常。但是,由于大气过程的混乱和当今科学并没有能透彻地了解到大气运动的全过程,所以天气预报难免是会出现一些小误差的。公元前340年左右,古希腊著名科学家亚里士多德撰写了世界上第一部气象学专著《气象学通论》。这本书描述了飓风、焚风和风的成因和分布,光晕、彩虹和闪电等大气光图像,云、雨、雹和霾的形成以及气候变化。亚里士多德系统地梳理了历代气象理论和经验,对各种气象现象提出了自己独特的观点和理论,使之成为一门系统的古代气象学,是古代天气预报的思想基础。亚里士多德把大气现象与天文学领域的观测研究范围分为两部分:一部分是月球轨道内到地面的区域,另一部分是月球轨道以外的区域。他认为,湿冷辐散形成水汽,水汽是雨水的来源,而干热辐散能形成风。因此,空气是水蒸气和风的共同介质,而雪、雨、云、露、霜等关于水的状态改变都是根据空气温度的变化而形成的。也正是因为亚里士多德关于气象学的地位与权威也决定了往后西方气象学长达两千年的理论都未能摆脱亚里士多德气象学的影响。此外,天气预报还是国民经济和国防建设服务的重要手段。天气预报按预报范围来划分,包括地方性天气预报与区域性天气预报。根据服务对象的需要,还可以提供每日公共天气预报和专业天气预报。根据时间限制,也可以分为短期、中期、长期天气预报。气象台通过多种渠道及时准确发布天气预报,特别是灾害性天气预报,对保护人民群众生命财产安全,促进经济发展具有重要作用。天气预报技术还随着电报技术的强大而逐步发展起来。在20世纪50年代之前,天气预报都是以天气学原理为基础的。但随着计算探测技术的发展,我们国家在原有的数理统计方法和传统的天气图方法上,还将卫星探测数据和气象雷达应用到预报业务中,并同时发展了数值预报方法。该方法通过确定大气质量、能量和动量守恒原理,可以显著提高天气形势预报的质量,预测大气的物理过程,促进天气预报的客观量化。总之,天气预报的诞生给人们带来了很多便利,可以使人们在出门前做好准备。对渔业和农业而言更有意义,渔民、农夫可以借此减少由气象灾害所造成的各种损失。此外,它还可以防止由气象灾害引起的山体滑坡、洪水、泥石流等次生灾害造成的各种损失,提前预报可以让有关部门提前防范。但由于某些地方检测水平能力限制,一些地方性恶劣天气无法准确预测,这方面还是需要人们加强防范。1。2研究的目的与意义目的:这次以开发移动天气预报应用系统为选题,主要是想了解天气究极对我们日常生活有多大的影响,且我们为此能提前做出怎样的预防措施,通过翻查气象学的资料,我们可以知道,天气主要受风、云、雾、雨、闪、雪、霜、雷、雹、霾、气温、气压、湿度、风、等各种天气元素的影响,而他们之间就算只是一点点微妙的变化,都能对我们的生活带来很大的影响,所以能做出一款实时更新世界各地天气情况且能预测未来7天天气状况的软件我认为是必不可缺的。意义:本移动天气预报应用系统的开发宗旨是便利人们的日常工作与娱乐出行,并延伸有关气象灾害信息的覆盖范围,这样广大人民群众就能够在最短的时间里获取到最新最快的气象灾害预警信息,以便群众提前做好预防措施,把由气象灾害带来的损失降到最低程度。1。3国内发展现状如今,天气预报不仅是方便了人们的出行还对我国的许多社会经济部门的发展都有很大贡献,具体可看以下信息:1。政府部门需要根据气象部门提供的气象预报警报信息,对可能出现的高温、雷暴、狂风、暴雨、台风等灾害提前采取措施,减少生命财产的损失。2。气象信息对水利、电力、民航、运输等部门工作起着关键的作用。3。气象预报警报信息系统以及公共气象信息服务是一种公益性的社会基础设施,利用该设施可以为人民生活或生产提供所需要的优质气象信息服务。4。气象信息是重要的经济来源。据有关部门的研究表明,企业若能有效利用气象信息,其经济效益会显著提高。例如电冰箱和空调器厂商可以根据气温变化与销售额增减的关系,借此整理出相关的销售与生产计划。1。4系统结构论文将分为六个部分对所研究的课题进行阐述。第一章:详细介绍本系统的开发背景与意义,并对天气预报在我国发展的现状做一个简单的描述。第二章:详细介绍本系统的开发环境和与之相关的技术。第三章:分析系统目标,构建需求用户分析图,明确本系统的设计。第四章:系统的总体代码设计与功能代码块的实现,保证系统的数据库功能的正常使用并构建结构图,最后展现系统功能。第五章:测试并分析系统。明确系统的运行环境,对系统的各方面性能展开评估,输出测试结果;第六章:对全文的概括和总结。第二章相关理论与技术2。1开发环境的介绍开发环境:开发工具:androidstudio3。0开发系统:MicrosoftWindows10脚本语言:Java数据库:Litepal辅助网站及工具:辅助软件:夜神模拟器获取天气信息的网站:http:guolin。techapichina获取背景图的网站:http:guolin。techapibing_pic2。2相关技术的介绍2。2。1Java技术介绍在人类计算机的发展历史上,java已经发展成一门影响深远且面向全世界的编程语言。在某种意义上,它超越了编程语言的范畴,成为了一种开发的规范。不仅如此目前java已成为语言倡导开源的精神和自由并以此吸引着在世界各地无数优秀的程序员。事实上,没有任何一种编程语言能像java一样能吸引这么多程序员,或者派生出这么多开源框架。主要是由于java语言是一种具有解释性、高性能、面向对象、动态等特点的编程语言。它吸收了C++语言的所有优点并摒弃掉C++中让人难以理解的多重继承和指针的概念。java语言作为众多面向对象编程语言的代表,不仅面向对象理论得到了很好的实现,它还允许程序员以优雅的思维方式开发复杂的程序。另外,与java语言相关的JavaEE规范包含了目前最流行的软件工程概念。在JavaEE规范、平台和相关框架中总能找到各种先进的设计思想。在某种程度上,学习Java语言相当于系统地学习软件开发知识,而不仅仅是学习编程语言。到目前为止,大部分银行、电信、证券、电子商务、电子政务等系统已经建立在Javaee平台上,或者正在逐步向javaee平台过渡。JavaEE规范是目前最成熟、应用最广泛的企业应用开发规范。2。2。2AndroidStudio开发工具介绍AndroidStudio是Google推出基于IntelliJIDEA的Android应用开发集成开发环境(IDE),而且为提高Android应用的构建效率提供了以下9个功能:1。基于Gradle项目自动化构建开源工具的构建系统。2。自带多种不同手机类型且功能强大模拟器。3。ItantRun运行机制可将变更推送到正在运行的应用中,无需重新构建Apk。4。使用Room将数据持久化数据库(SQLite)。5。可使用apkanalyzer分析工具对要预构建APK进行调试和分析。6。拥有丰富的网络监控工具、测试工具和测试工具。7。C++和NDK支持,以及LLDB可以调试原生代码。8。支持两大代码分别是:Lua编码和Koltin编码。9。强大的XML布局编辑器,让用户的UI开发更便捷。2。2。3LitePal介绍Litepal是一个安卓数据库框架,它可以封装了一些正常开发中最常用的数据库功能,底层采取的是对象关系映射模式,使开发人员无需编写一行SQL语句就可以完成表的创建、添加、删除和查询等各种操作。第三章系统可行性需求分析3。1系统目标阳光明媚的天气,会使人心情愉悦。但是恶劣的天气情况下不仅会给交通带来严重的堵塞,且昼夜温差的大幅度变化也会使我们染上许多季节性疾病。在农业方面,更是靠天吃饭。什么时候播种,什么时候施肥,什么时候收获,都要密切结合天气情况来决定,气温和降雨量就决定了农民的年收成。而在渔业上也是如此,渔民们受低温、降雨、阴雨、少日照等天气影响,鱼类活动范围缩小,生产效率就会下降。因此,本移动天气预报应用系统的目标旨在预测出最精准的天气预报信息,减少恶劣天气的变化带给我们的日常麻烦。3。2目标用户据调查,本天气预报应用系统的目标用户大致上可以划分以下三类:普通群众、农民、渔民,具体描述如表3。2。1所示。表3。2。1移动天气预报应用系统目标用户及影响表用户角色天气对他们造成的影响普通群众下雨天会给人们的出行带来一定的麻烦且天气昼夜温差的大幅度变化也会使我们染上许多季节性疾病,因此如果有了天气预报就能有效的采取防护措施。农民农民们对于天气预报的需求比普通群众的大,因为天气的气候条件会影响农业的产出,农作物的播种和收获与天气有关。天气的好坏影响着农作物的收成情况。因此,准确的天气预报对农业生产具有重大作用。渔民渔民们受低温、降雨、阴雨、少日照等天气影响,鱼类活动范围缩小,摄食量低于常年同期,生长减缓,造成单位面积产量下降,生产效率下降。因此如果有了天气预报渔夫们就能根据天气的变化做出相对应的防护措施。3。3系统设计及作用系统设计:通过上述的调查和分析,本移动天气预报应用系统设计主要是实现切换城市、显示实时的时间、选择地地名、气温、天气情况、pm2。5指数、空气质量指数,以及选择地未来七天的日期、最低温、最高温、天气情况等功能。作用:其中切换城市功能是为了方便用户的出行,能够让用户看要去的地点或身处所在的城市的天气情况。然后显示实时时间是方便用户在本天气预报应用系统内也能查看时间。接着显示出选择地的地名、实时气温、实时的天气情况以及实时的pm2。5与空气质量指数等天气数据都是为了让用户能在第一时间准确了解到选择地的实时气象信息。而最后显示的选择地未来七天的时间、最低温、最高温、天气情况等功能是为了让用户能提前知道未来几天的气象信息后能够提前的安排好自己的工作与生活,如:天冷了多穿一件衣服能预防天气变冷所带来的感冒发烧,而农民与渔夫们则可以提前的安排好自己的工作避免天气变冷带来的经济损失。第四章系统总体设计与开发4。1系统总体设计思路首先我们要明确本天气预报应用系统要实现以下功能,分别是切换城市、显示时间、选择地地名、气温、天气情况、pm2。5指数、空气质量指数、未来七天的日期、最低温度、最高温度、天气情况等功能。以上功能共分四阶段完成,第一个阶段就是首先创建好接收网络获取到的气象JSON数据所需要的数据库和表这样的话我们就能把气象数据存到我们自己创建的数据库表格里面。本文选择了Litepal数据库。第二阶段则是需要从网络上获取的所有的省、市、县的地名数据并全部遍历一次用于切换城市。第三阶段,从网络查询我们需要的气象JSON数据信息,随后采用GSON方法解析数据,并通过XML布局使天气预报的信息显示在应用系统上。第四阶段添加背景图并实现自动刷新功能这样用户就不需要手动更新了当然必不可少还有切换城市和手动更新等功能。4。2系统总体开发过程与代码贴图4。2。1第一阶段1。首先先创建一个SunnyWeather项目具体请看看图1:图1新建项目2。将该天气预报应用系统所需要的各种依赖库在gradle文件里先声明好,具体请看图2:图2添加依赖库3。接着在com。SunnyWeather。android包里在创建几个包分别为DataBase__DB、Gson__GSON、Service__SERVICE、Util__UTIL,其中DataBase__DB包是存放有关数据库的代码,Gson__GSON包是GSON代码的、而Service__SERVICE包是服务代码,最后的Util__UTIL包则是工具的代码,具体请看图3:图3新建四大包名4。由于是数据库中的表所以是在DataBase__DB的包下面创建三个类分别为province__、city__、county__分别来存放气象数据的省、市、县数据。具体请看图4:图4创建三大类5。首先先编写DataBase__DB的包下省数据代码province___类,具体的代码请看图5:图5province_类6。编写市数据代码city___类,具体的代码请看图6:图6city_类7。编写县数据代码county___类,具体的代码请看图7:图7county_类8。创建完三个表之后就可以新建一个litepal。xml数据库类把三个表添加进去最后再去清单文件配置一下Litepalapplication具体代码请看图8图10:图8新建数据库文件图9Litepal文件图10清单文件4。2。2第二阶段1。首先先在Util__UTIL包下新建一个httputil__类用于与服务器交互,具体代码请看图11:图11httputil_类2。在util包下新建一个utility__类来专门处理省、市、县JSON数据,具体代码请看图12图14:图12utility_类图13utility_类图14utility_类3。接着开始编写遍历省、市、县的界面,在新建一个布局文件命名为choose____area,具体代码请看图15:图15choose_area布局文件4。新建一个choose__areafragment碎片类用来接收从服务器返回的省、市、县JSON数据并把数据传给utility__类中的方法进行解析具体代码请看图16图22:图16choose__areafragment碎片图17choose__areafragment碎片图18choose__areafragment碎片图19choose__areafragment碎片图20choose__areafragment碎片图21choose__areafragment碎片图22choose__areafragment碎片5。由于刚刚定义的碎片不能直接在界面上显示,所以需要在主布局文件下修改代码添加刚刚碎片,具体代码请看图23图24:图23主布局文件图24主布局文件6。由于我们在第三步碎片布局下已经定义了显示当前地方的标题了,所以需要把原来的标题栏给设置成noactionbar即去除标题栏,最后在清单文件中定义网络权限即可,具体代码请看图2526styles文件、图2728清单文件:图25styles文件图26styles文件图27清单文件图28清单文件4。2。3第三阶段1。由于从服务器返回有关气象信息的JSON数据结构会复杂一些,所以我们用GSON的方法进行解析,另外我们还需在Gson__GSON包下创建basic___类具体代码请看图29:图29basic_类2。接着继续在Gson__GSON包下创建aqi__类具体代码请看图29:图30aqi_类3。接着继续在Gson__GSON包下创建now__类具体代码请看图31:图31now_类4。接着继续在Gson__GSON包下创建suggstion__类具体代码如下图32:图32suggstion_类5。接着继续在Gson__GSON包下创建forecast__类具体代码如下图33:图33forecast_类6。在Gson__GSON包下创建weather__类,用来对刚刚定义的所有类具体代码如下图34:图34weather_类7。在com。example。SunnyWeather包下创建一个名叫weather__acitivity的活动类来接收从服务器返回的天气JSON数据,并将其布局名改为activity___weather创建完后就新建一个头部栏布局名叫title__,具体代码如下图35图37:图35weather__acitivity类图36weather__acitivity布局图37title_布局8。继续新建一个now___布局,用于显示当前实时气温、天气情况,具体代码如下图38:图38now_布局9。分别创建一个forecast___布局与forecastitem子项目布局用作显示未来7天天气预报的时间、最。。。
  • 版权声明:知知范文网 本站所有内容的版权归相应内容作者或权利人所有,本站不对涉及的版权问题负法律责任。
  • 内容来源:本站所有内容均有网络公开等合法途径整理而来,该资料仅作为交流学习使用,并无任何商业目的,任何访问,浏览本站,购买或者未购买的人,就代表已阅读,理解本条声明
  • 免责声明:内容所标价格,是对本站搜集、整理资料以及本站运营必须费用支付的适当补偿,资料索取者尊重版权方的知识产权,谢谢!

关于我们 - 网站声明 - 网站地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@长治毕知网络科技有限公司
ICP备案号:晋ICP备2022002585号