儿童游玩智能助手设计和实现信息管理与信息系统专业.docx
1 1木目41 11智能的响41 2JL步子51.21I-Ill51.2.2社会因素61 4木勾F72 .y.关821JFL:8«2112ki*clroidtudoLas81/1te)4:«213Id"I_Iiyz2211*102.2.1MVC架构的构成10第3章儿童游玩智能助手设计123.1 需求分析123.1.1 系统需求123.1.2 功能需求133.2 可行性分析153.3 本章小结15第4章儿童游玩智能助手实现164.1 通用功能164.1.1 欢迎和导航164.1.2 注册164.1.3 登陆174.1.4 判断是否联网功能174.1.5 将地址转化为经纬度184.2 天气预测184.3 推荐游玩地点204.3.1 获取用户出行信息204.3.2 推荐结果陈列214.3.3 路线规划224.4 个人中心234.4.1 上传头像234.4.3 查看历史244.4.4 修改密码264.4.5 设置264.5 本章小结27第5章结论与展望285.1 研究结论285.2 研究展望28参考文献30致谢错误!未定义书签。随着科技的发展,智能手机不再是奢侈品而是人们必不可少的日常用品,其中的应用程序在人们生活中的应用也越来越频繁。儿童在外出游玩时的安全问题一直是社会的关注点,因为儿童的脆弱、安全意识不强、对周边的事物记忆不深刻等特性,使得儿童游玩时自发或被动地处于危险之中。文章从自然因素和社会因素两方面提出了儿童游玩面临的隐患,进而设计一个儿童游玩智能助手,用于保障儿童游玩安全,将危及儿童人身安全的因素考虑在内,为儿童推荐较为安全的游玩场所,使家长更加放心。本文的内容将涉及到基于安卓的儿童游玩智能助手的设计和实现,该应用程序严格根据需求分析和可行性分析,利用分层模式的开发框架,结合合适的开发技术和API,通过调查儿童游玩隐患的自然因素和社会因素,将可控制和预测的因素监控起来,达到保障儿童安全的目的。文章清晰地描述了开发理念,在保证应用程序性能的同时,尽可能地提高用户体验和满意程度,使得应用程序具备更高的综合性和应用能力。关键词:儿童游玩;Android平台;危险因素;APIAbstractWiththedevelopmentofscienceandtechnology,smartphonesarenolongeraluxurybutanindispensabledailynecessitiesforpeople.Applicationsoftheseappsarealsobecomingmoreandmorefrequentinpeople,slives.Thesafetyproblemofchildrenwhentheygoouttoplayhasalwaysbeentheconcernofthesociety,becausechildren'svulnerability,lackofsafetyawareness,andthelackofdeepmemoryofthesurroundingthings,makechildrenplayspontaneouslyorpassivelyindanger.Thispaperputsforwardthehiddendangersofchildren'splayfromtheaspectsofnaturalandsocialfactors,andthendesignsachildren'splayintelligentassistant,whichcanbeusedtoguaranteethesafetyofchildren'splay,andtotakeintoaccountthefactorsthatendangerthesafetyofchildren,soastorecommendsaferplacesforchildrentoplay,soastomakeparentsmorecomfortable.Thecontentofthisarticlewillinvolvethedesignandimplementationoftheintelligentassistantforchildren'splaybasedontheandroid.Theapplicationisstrictlybasedontherequirementsanalysisandfeasibilityanalysis,usingthedevelopmentframeworkofthehierarchicalmodel,combiningwiththeappropriatedevelopmenttechnologyandAPI,andbyinvestigatingthenaturalandsocialfactorsofthehiddendangersofchildren,thecontrolandpredictionfactorscanbemonitoredtoachievethegoalofensuringthesafetyofchildren.Thearticleclearlydescribestheconceptofdevelopment,whileensuringtheperformanceoftheapplication,itcanimprovetheuserexperienceandsatisfactiondegreeasmuchaspossible,sothattheapplicationhasahighercomprehensiveandapplicationcapability.Keywords:childrenplay;Androidplatform;dangerousfactors;API儿童是社会中脆弱而又重要的群体,他们身上担负着家庭和社会的未来,因此儿童的成长和发展尤其重要。游戏是儿童的天性,在幼年儿童通过游戏来接触社会,认识世界,儿童的游玩行为是自发的,也是在成长中举足轻重的存在。但不恰当的游玩场所会给儿童带来伤害,因此儿童游玩时需要选择一个既能带给儿童游玩乐趣又能保障儿童安全的地点。儿童游玩智能助手在家长或儿童选择游玩地点时给出建议,最终结果还是由用户决定,用户在儿童游玩地点选择中占据绝对地位,因此在应用程序中需要将一些安全隐患展示给用户,使用户意识到选择某一个游玩地点是对儿童安全有威胁的,这样才能让应用程序推荐给用户的结果站住脚,增加用户的信任和好感。伴随着科技的进步,开发工具和框架越来越多样化,在开发一个应用程序时首先要考虑到的就是使用什么工具,只有选择合适的开发技术和框架才能使开发过程事半功倍。本文首先讲述了课题的研究背景和意义,之后介绍了开发的技术与框架,分析用户需求和应用程序可行性,并利用掌握的技术设计并实现一个儿童游玩智能助手。本文完成的主要工作有:(I)构建应用程序的开发模块,并将每个模块划分为子模块,分析各个子模块的行为与操作,实现子模块并将其整合起来。(2)绘制用户界面,为各个模块设计样式,并展现给用户。(3)实现各个界面之间的数据传递,创建数据库和多个数据表用于存储数据。(4)进行数据处理,利用相关的APl获取必要的数据,并对数据进行筛选,将符合用户需求的结果呈现给用户。第1章绪论本章首先阐述了相关研究背景,然后提出了儿童在日常游玩过程中面临的来自自然与社会的隐患,继而说明了文章的研究意义,最后系统给出了论文的研究结构以及内容。1.1 相关研究背景1.1.1 智能手机的影响随着科学技术的不断发展,通讯方式从过去的老式手机到现在的智能手机,越来越便捷。智能手机是当代社会中一项重大的科技成果,其功能与时俱进地升级与完善,它在当代人的生活中已经不仅仅是通讯工具的存在,更是成为现代人日常生活必不可少的工具。除了最基本的通讯功能,智能手机还在不断地扩充其他功能,如娱乐、支付、购物、出行、检索等,这些功能使得智能手机在人们日常生活中占据越来越重要的地位,同时给人们带来了各个方面的便利,因此为满足人们日益增长的需求,智能手机中的应用程序也层出不穷。智能手机由于其方便携带的特性为人们所喜爱,并且不断参与到人们的行为与决策中,一定程度上潜移默化地改变人们的行为方式和思维方式。在互联网时代,手机更是为人与人之间的交流创造了新的方式,走在街道上几乎每个人手中都有一部智能手机,人们利用智能手机上提供的各类应用获取有用的信息,达到自己的目的。软硬件技术的发展使智能手机具有更加灵活开放的应用开发平台,具有更长的使用时间,更为宽广的移动互联网使用体验,用户使用智能手机越来越得心应手,对智能手机的期望也越来越大,故而在智能手机上开发满足用户需求的应用已经成为大势所趋。1.1.2 Android平台优势Android是基于Linux平台的开源手机操作系统网,自诞生到被Google收购再到投入到手机生产中,经历了多个岁月,但在这些个岁月中它迅速占领了全球智能手机市场。Android平台之所以能够迅速发展并占领市场,是因为它具有鲜明的平台优势和特征。AndrOid平台具有开放性。开放的AndrOid平台导致其使用者数量不断增加,内置应用程序也日渐丰富,具备短时间内走向成熟的条件。消费者能够使用AndrOid平台提供的丰富的软件资源,而Android平台的开放性使得以此平台为基础的安卓手机品牌众多,数量庞大,因此消费者能在这些厂商的竞争中买到心仪的手机,Android平台也因此在消费者和厂商群体中逐渐形成了极高的人气。Android平台具有丰富的硬件。Android的开放性使众多厂商推出的产品呈现出多元化和丰富化的局面,同时数据同步,软件兼容问题也能得到及时解决,个人资料也方便转移。Android平台便于开发。第三方开发商可以自由地在Android平台进行开发,生产属于自己的产品,进而催生了一系列别致的软件。Android在Google的搀扶下走过了10年左右的岁月,Google为他提供了自己拥有的诸多服务,便于它连接用户和互联网,这为开发者提供了便利。除了上述的AndrOid平台的优势,它还将网络化演绎到了极致,它支持网络服务使Android手机可以看作是移动接入因特网终端。而开源的Android系统具有定制化的Re)M,集成的浏览器和强大的开发环境,它还支持蓝牙、WIFkGPS等常用应用叫1.2儿童游玩隐患儿童是社会中较为脆弱的一类群体,他们往往具有较为薄弱的安全意识,但却面临着更多的安全隐患。儿童在游玩时面临的安全隐患可以大致有以下两类因素引起,即自然因素与社会因素。1.2.1 自然因素自然因素对儿童游玩带来的隐患问题是人为不能控制的,人们所能做的就是规避危险。在自然因素中最常见的、会影响到儿童出行游玩的主要是天气情况与空气质量。经调查发现,儿童最喜欢在晴天到户外活动;阴天但并不冷时儿童在户外依旧比较活跃,甚至下雪天到户外活动的也不少,其中尤以年纪稍大的孩子居多,但是在雾霾天气出来玩耍的孩子很少。由此可见,空气质量比之天气情况对儿童游玩造成的隐患更大。伴随着我国经济发展和城镇水平的不断提升,许多的城镇化地区的生态环境遭到了巨大的破坏,空气质量受到了极大的影响。雾霾天气频繁出现,2013年更是遭遇了有观测记录以来最为严重的污染天气网,而PM2.5是导致雾霾的根本原因,它对人体健康有一定不良影响,儿童作为免疫系统较为薄弱的群体,对雾霾异常敏感。因此,家长带儿童外出游玩时应当要格外注重空气质量给儿童带来的隐患,尽量避免在雾罐天气带儿童在户外场地活动。1.2.2 社会因素社会因素给儿童带来的隐患更为多样,如游戏场所设备的安全性问题,游玩场所的交通情况以及不法人员的犯罪企图等等,这些隐患一旦发生就会对儿童及其家庭产生不可挽回的伤害。显而易见,无论儿童在哪里玩耍都会存在一定的危险,区别仅仅是安全系数的高低。儿童日常游戏场所集中在附近的街道、公园、广场、社区或者是一些室内的游乐场网,除了室内游乐场,其他的场地都有一个共同的特性,他们都是公共开放的,而且平时的人流量较大。公园等开放场所容易受到犯罪活动的消极影响。近年来,儿童拐卖的话题热度居高不下,尤其是年龄小的儿童不具备防备意识,一旦离开家长的视线,很容易受到欺骗或是走丢。从家庭和儿童的角度来看,拐卖儿童犯罪的原因是家庭的防范意识不足,儿童的自我保护能力差”叫而开放的公共区域鱼龙混杂,监控系统也不完善,这无疑是雪上加霜,儿童的安全更加不可控。对于儿童来说,这些地点是一个日常游玩比较方便的地方,同时也是隐患较大的地方。人流量大加上区域开放,通常四周环绕着街道,因此车来车往,而儿童的玩耍通常比较随性,想到什么就做些什么,很少会有观察自身周边交通情况的意识。所以,儿童在街道的出现就具有突发性,街道中驾驶者极有可能无法预料到有儿童的出现,这种情形下儿童也极易遇到危险。家长不可能时时刻刻陪伴着儿童,而这些安全隐患难以预测,甚至连家长都没有意识到这些危险的存在,故而社会因素给儿童带来的隐患不仅需要在游戏场地的设计等方面进行完善,更是要提高家长和儿童对这些危险的认识,这样才能减少儿童受到的伤害。1.3 研究意义儿童是社会文化承载者和家庭生命延续者,他们是这个社会中不可忽略的、具有生命能量的存在,他们的健康成长不仅仅是家庭的期望,也关系着祖国的前途命运,是人类未来发展的先决条件UL游戏是儿童的天性和权力,儿童根据自身需求自发产生游戏行为,他们通过游戏来体验平等的人际关系,从而获得探索自发创造的勇气和能力,游戏在儿童的生活中起着特殊而重要的作用,对儿童的成长也起着特殊而重要的作用。儿童游玩场所是儿童除学校与家庭以外最为重要的成长地点,儿童有权选择自己喜欢的游玩地点。随着科技的不断进步,儿童游玩的场所越来越多样化【,家庭的出行方式越来越便捷,儿童外出游玩的选择也越来越多。与此同时,由于儿童本身的安全意识不成熟,容易忽略一些隐藏的危险,所以游玩的危险也随之而来,而家长虽然关注儿童的人身安全,却不能时时刻刻陪伴在儿童身边。为减少儿童游玩危险,保障儿童安全,儿童游玩智能助手就有了存在的价值。儿童游玩智能助手所要做的工作就是尽量减少这些意外伤害,根据影响儿童游玩场所的主客观因素,判断是否适宜儿童出行,在最大程度确保儿童安全的基础上给出游玩地点的推荐,将家长和儿童忽略的危险排除在外,让儿童在健康而安全的环境下成长。1.4 论文研究结构及内容第一章是绪论部分,阐述了智能手机在当代社会的影响和Android平台的优势,并以此为背景,结合儿童游玩过程中面临的自然与社会的双重隐患,表明了本文的研究意义。第二章是对开发所使用的相关技术与框架进行了介绍,包括开发工具、数据库、平台架构和设计框架。第三章是儿童游玩智能助手的前期设计,包括需求分析与可行性分析。第四章是根据需求分析来实现儿童游玩智能助手的细节,详细介绍了开发过程以及功能实现的具体步骤与部分重要代码,以及实现的效果。第五章是对研究的总结和对未来的展望。第2章相关技术及框架本章首先介绍了开发所用到的工具和相关技术,包括开发工具AndrOidStudio>SQLite数据库,Android平台架构。接着给出了开发所用到的分层设计的架构,展示TMVC结构的构成与优势。2.1 开发工具及相关技术2.1.1 AndroidStudio工具AndroidStudio是一个Android集成开发工具,可以用于开发和调试口3它允许开发者一边编写视图代码,一边查看应用在不同尺寸屏幕下的样子,有效解决了开发过程中遇到的多分辨率的问题。(1)AndroidStudio的功能开发者控制台新增了五个功能。首先,开发者控制台创建了一个优化小贴士,这个小贴士在打开主体中的应用时会提示开发者为应用开发一个平板电脑版本。其次,开发者控制台为开发者提供了一个应用翻译服务,为开发者提供专业的翻译服务。接着,开发者控制台使用了推荐跟踪,推荐跟踪对开发者分析用户行为做出了卓越的贡献,可以在众多广告中找到最有效的一条。之后,开发者控制台给出了营收曲线图,可以使开发者对自己开发的应用的营收有一个把握。最后,开发者平台进行了用版测试和阶段性展示。开发者在发布应用之前可以对应用测试,或者将应用推送给部分用户,由用户进行测试,所有的测试结果都不会向外部公布。当版本测试结束且达到预期就可以一定量将应用推出给用户使用。(2)AndroidStudio的优势AndroidStudio相比于国内大多数开发者使用的Eclipse,AndroidStudio的启动速度、响应速度、内存占用都较为领先,它还与GradIe构建工具相结合,在配置、编译、打包方面都具有一定的优势。除此以外,强大的Ul编辑器为开发者创建视图文件提供了便利,完善的插件系统在编程过程中提供辅助,内置的终端使开发者能快速有效地进行终端操作。2.1.2 SQLite数据库SQLite是一款以嵌入式为设计目标的轻型的、关系型数据库管理系统,由于其在嵌入式设备中占用的资源较少,所以目前已经应用于很多嵌入式产品中。SQLite数据库是在AndrOid操作系统中集成的,AndrOid应用程序本质上是JaVa程序,但在连接数据的方式上两者截然不同,Android提供了一些新的API来操作SQLite数据库,而Java程序是利用传统的JDBC来连接数据库,由此可以看出,在开发过程中开发者操作SQLite数据库会更加便捷。SQLite中的事务满足传统数据库中事务的特性,即ACID,SQLite在安装AndroidStUdio时就已经默认存在了,它不需要单独进行安装和配置。SQLite存储在单一文件磁盘中,体积较小,因此操作数据库和数据表的速度要快于现下使用较多的数据库。2.1.3 Android平台架构Android平台是基于Linux的操作系统,它的系统架构和操作系统都使用了分层架构,被分为四个层次,即应用程序层、应用程序框架层、系统运行层以及LinUX内核层。ApplicationsHomeContactsPhoneBrowser.ApplicationFrameworkAZgWindowContentAanntyMJnWManWProVlViewNotificationSystemManagerPacMMyr喘歌XMPPSemCeLibrariesAndroidRuntimeSurfaceManUerC_MeaaSQbteFrameworkLIKCoreUbwiesOPCaGLIESFrccTypcWebKit"ilb漏Hrff徐产MachineSGL5SLIibc,LinuxKernel端CamcthFu¾°ry唯Se)BaiSeffiMKeypadDnverWifiDriverMjnt图2.1Android结构最低层是LinUX内核层,从图2.1中可以看出,在这个LinUXKernel中大多都是驱动程序,它提供了操作系统所具有的最基本的核心功能。在LinUX内核层之上的是系统运行层,该层包括常用类库和一些包,在AndroidRuntime中又包括核心包和虚拟机。由于在Android平台上通常使用JAVA语言进行编程,所以在Android平台上GOOgIe为编程语言定制了一个虚拟机,并开发了一个核心包,这个核心包就类似于在JAVA中使用的JDK的核心包。类库提供用户常用功能。应用程序框架层是AndrOid为开发者提供的框架,有了应用程序框架,开发者只需要在框架中填入所需要的代码实现应用程序的功能,该层次使得开发简单化。在应用程序框架之上开发应用程序,不仅提高了开发者的开发效率,还保证了代码质量,这是开发者需要重点认识的层次。最高层是应用程序层,这一层次中是开发者所编写的代码,开发者在这里使用应用程序框架来开发应用程序。2.2 MVC分层设计架构2.2.1 MVC架构的构成MVC(MOdeLVieW-Controller)是一种混合设计模式,是软件工程中一种软件架构模式,强制性地使应用程序的输出、处理和输入分开。MVC架构能够实现动态地进行程序设计,并能够保障在后续对程序进行修改、扩展、维护时不需要大量修改代码,MVC框架能够充分利用程序中的部分代码,使代码具有可移植性,同时使程序结构更加直观。AndrOid应用设计基础就是MVC架构,AndrOidStUdio默认的框架也是MVC架构。模型是应用程序的主题部分,该层负责实现所有的业务逻辑,这些业务逻辑主要包括对数据库和网络以及计算的操作。模型是独立的,它与视图和控制器无关。视图是实现用户所看到的界面部分,可以用于接收用户输入,也可以将模型中数据处理后的结果呈现在界面上显示给用户,这一类的文件通常是Xml文件,在使用时可以方便的引入。视图中的代码不具备数据或业务逻辑,只需要在使用时先进行注册,将数据与控件绑定。控制器在获取到用户输入后,在用户界面显示数据并更新模式对象的状态部分。AndrOid中,ACtMty中一般编写的是控制器代码,控制器连接不同层次,控制应用程序的流程,可以处理事件并做出响应。2.2.2 MVC架构的优势MVC模式将模型和视图分离以提高系统的灵活性和复用性,它具有以下优势。第耦合性低,可维护性高。一个模型可以对应多个视图,为模型创建视图而无需修改模型。而模型中的数据发生变化时,模型传递消息到与自己相关的视图,视图不需要修改,只需要刷新一下即可。视图层与业务层分离,视图的变化和更改不会影响到相关的模型和控制器代码,而更改业务流程或规则时视图也不会受到影响,这也就为应用程序的维护提供了捷径。第二,模型可复用。独立于视图的模型具有强大的可移植性,在一个新的平台上可以只将一个模型单独地移植过来,不必涉及其他部分。第三,提高了开发效率。在编写视图代码时开发者只需要专注地创建一个良好的用户界面而不需要考虑如何实现这些视图中组件触发的行为;而编写模型代码时开发者只需要考虑业务逻辑和数据维护,这样在每一个部分开发者只需要专注于做这一部分的事情,能有效提高开发效率。第四,有利于软件工程化管理。每一层做好自己该做的工作,分工合作有利于管理程序代码。控制器是模型和视图之间的桥梁,它可以将不同的模型和视图连接起来达到用户的需求,所以模型和视图可以各自修改而互不影响,在修改完毕后再使用控制器连接即可。2.3 本章小结由于在Android平台分层架构上AndroidStudio和SQLite数据库的优势和良好表现,在开发基于AndrOid应用程序时本文选用这两个工具,并利用JaVa编程语言设计儿童游玩智能助手,同时使用MVC框架将代码组织起来,使模型、视图、控制器各司其职,将结果展现给用户。本章主要介绍了开发应用程序所使用到的开发工具和技术,并对MVC做了简要介绍。第3章儿童游玩智能助手设计本章节主要从需求分析和可行性分析两个方面,分析了儿童游玩智能助手的设计细节,包括系统需求和功能需求,并从技术、社会环境以及人员等方面表明本系统是完全可行的。3.1 需求分析需求分析是软件定义期的最后阶段,是软件系统成功构造的关键。软件需求是用户对目标软件系统在功能、性能、行为、设计约束等方面的期望"A,需求分析要指明系统必须要做些什么,在具体情境下应该有哪些行为等等。3.1.1 系统需求(1)操作简易。儿童游玩智能助手面向的群体不仅仅是操作智能手机能力良好的儿童的父母亲,还有平时带儿童外出游玩的爷爷奶奶。面对这些对智能手机操作不熟练的用户,应用程序在开发过程中必须考虑到操作的简易性,以最简洁易操作的界面实现用户所需要的功能。(2)用户友好。儿童游玩智能助手要根据用户提供的信息对结果进行筛选,不能忽视用户感受,在系统没有出现用户期望的内容时要给出提示,使用户知道应该做出怎样的回应,保障用户感受良好。(3)反应迅速。在界面简洁操作简单的情况下,要回馈用户以同等的反应能力,后台根据用户输入以及默认获取的位置和天气数据对检索结果进行数据处理,这个过程要求反应速度快,用最简单最迅速的处理给出用户较为满意的结果,即用较少的成本得到较满意的回报。(4)错误预防。没有一个应用程序可以避免错误,只能尽可能地减少错误,将错误控制在可接受范围内。应用程序在开发过程中应该考虑到对错误的发生时的处理,没有考虑到的问题需要在测试阶段进一步探索,最后将能纠正的错误进行修正,不能纠正的错误给出警告或者提示对话框将错误掩饰起来,从而增强用户体验。(5)保守预测。由于本应用程序的开发是为了减少儿童出行游玩过程中遇到的危险,所以当用户没有提供数据处理所需要的信息时,为了保障用户体验,还是应当给用户反馈检索结果,此事的反馈结果应该做好最坏的打算,这种操作一定程度上会减少用户的满意度,但保障了儿童的安全。3.1.2 功能需求(1)系统结构图系统结构图将一个系统或者一个功能分解成多个子系统或子功能,刻画了系统或者功能的层次分解关系。从系统结构图中能够清晰地看出模块之间是如何调用的,在调用时,相关数据又是如何传递的,因此,它主要是用于描述系统的物理结构。结构图最能清晰、完整、直观地反映出整个即将建立的系统、子系统或者模块的全部功能,是程序设计的重要依据2。1。儿童游玩智能助手的系统结构图如图3.1所示。儿童游玩智能助手登陆注册模块主模块欢迎导航天气情况结果陈列路线规划信息填写查看历史修改密码图3.1系统结构图(2)控制流程图控制流图将一个过程或者程序抽象表示出来,展现程序在执行过程中遍历的所有路径以及过程中基本块执行的可能流向,将程序实时执行过程刻画出来。控制流图可以表示为一个静态结构图或者一个动态显示图,它可以用于浏览语句表,也可以用于统计信息L儿童游玩智能助手的控制流程图如图3.2所示。图3.2控制流程图3.2 可行性分析(1)技术可行性。利用个人掌握的技术,本应用程序的基本功能实现是完全可行的,需要攻克的部分难题也可以通过学习和实践来解决,因此能在规定的时间内基本实现需求中所需要的功能。此外,在本应用程序中使用的数据都是真实可靠的。开发过程中所用到的数据信息都是经过统计得到的可靠数据,具备通用性,这使得推荐给用户的选项真实可靠并且能够满足用户需求。(2)社会环境可行性。社会环境的可行性至少包括两种因素,即市场和政策【22】。儿童人身安全问题在当今社会一直深受重视,本应用程序以保障儿童安全为宗旨,完全符合社会要求。同时,儿童游玩智能助手面向的使用群体很广泛。只要家庭中有适龄儿童就有机会使用到本应用程序,儿童各个年龄阶段的亲属只要想要带儿童出行游玩就可以使用本应用程序得到合理推荐。因此,软件具有足够的市场,也在社会环境中具备可行性。(3)人员可行性。整个开发过程中用到的编程工具与技术是程序员必须掌握的知识与技能,作为即将毕业的本科生,是具备一定的专业功底并且能够进行这样一个应用程序开发的。3.3 本章小结本章节首先从系统需求和功能需求两方面分析了儿童游玩智能助手的需求。系统需求要求操作简易、用户友好、反应迅速、错误预防、保守预测,保证用户快速上手,对应用程序有一定的满意度和好感度。功能需求从系统结构图和控制流程图入手,画出儿童游玩智能助手的层次分解关系以及应用程序的执行过程。接着,本章对应用程序的可行性进行了分析,其中包括技术可行性、社会可行性、人员可行性得出儿童游玩智能助手是完全能够定期实现的。第4章儿童游玩智能助手实现本章节主要根据第三章的需求分析对儿童游玩智能助手进行通用功能和主要功能的实现,其中包括欢迎和导航功能,登录注册功能,以及登陆后主页面的天气预报、推荐地点和路线规划功能、个人中心修改密码,查看历史和设置的功能。4.1 通用功能4.1.1 欢迎和导航在用户首次下载并安装应用程序或更新过应用程序后首次打开时,应用程序的欢迎页和导航页会对本应用程序有一个简短的介绍,使用户对应用程序有个大概的了解,这是一个应用程序必不可少的界面,轻触导航页的最后一个页面就跳转到登陆界面。当用户下载并使用过该应用程序后,用户再次打开应用程序就只向用户显示欢迎页面,而不必再将导航页面显示出来,减少老用户进入应用程序的时间,给用户更好的体验和好感。欢迎和导航页通常情况下由多个图片组成,这些图片中通常会含有与应用程序功能或目标相关的文字提示。本应用程序利用PS对图片进行简单处理后,将处理好的图片放到一个数组中,利用自定义的AdaPter将图片显示在导航页上,并对图片底端的点进行设置,当处于导航页的某一页面时,对应的点会改变状态,表现成选中的状态。4.1.2 注册注册是用户使用应用程序时的第一个行为,在注册时建立一个数据库和一个数据表将用户的注册信息存储起来以便之后能利用这些信息做数据处理。在本应用程序中,注册界面需要用户填写用户名和密码,点击注册按钮将用户名和密码存入到数据表中。注册界面利用SQLite创建了一个名为USer的数据库,当点击注册按钮时会对用户填入的数据进行表单验证。表单验证包括:用户名与密码不为空,用户名不可重复,用户名长度控制在1-20个字符,密码以字母数字或下划线开始长度控制在1-20个字符中。如果数据通过表单验证就插入到数据库表中,表名为IOgin,表字段、类型及约束如表4.1所示。表4.1login(登陆)表字段名字段类型字段长度Id(主键)IntAutoincrementUsernameVarchar50PasswordVarchar50完成注册界面的数据库操作后关闭数据库防止脏数据的产生。4.1.3 登陆登陆界面是用户使用应用程序最先看到的界面,它与其他的几个界面密切相关,该界面有三个跳转方向。如果用户尚未注册可以点击注册按钮先注册再登陆;如果用户已注册且用户名和密码输入正确就可以进入应用程序的主功能界面;如果用户输入相关信息后,发现信息填写错误可以选择取消按钮,则登陆页面恢复到刚打开应用程序时的状态。与注册界面一样,登录界面也有表单验证。该表单验证包括用户名和密码不为空,用户已注册,用户名和密码正确。此处用到注册时创建的数据表login,但是当应用程序遇到第一个用户,而该用户恰好没有注册就尝试登陆时,后台应该捕获到异常,创建一个数据表,但不向数据表中插入数据,将界面跳转到注册界面,示意用户先注册再登陆,结束时关闭数据库。在登陆界面还需要将登录时用户名传到主功能界面中的个人中心,在个人中心实现用户登录个人中心就会显示该用户的用户名,表明用户身份。4.1.4 判断是否联网功能在本应用程序中,获取天气数据,空气质量数据,用户位置数据,地图数据都需要在联网条件下才能够获得,用户没有联网的情况下查看相关界面可能会出现不可预料的错误,因此判断用户是否联网在整个引用程序中占据重要的地位。可以发现在应用程序的多个界面都需要判断是否联网,因此将联网判断写成一个类封装起来,判断用户尚未联网时弹出警告对话框,继而跳出智能手机中设置网络的界面,提示用户去设置网络。这是一个简单的设置,代码如下。publicvoidOpenNetworkSetting(finalContextcontext)ConnectivityManagerConnectivityManager=(ConnectivityManager)contcxt.getSystemSendce(Context.CONNECTIVITY_SERVICE);NetworkInfoactiveNetworklnfo=ConnectivityManageEgetActiveNetworkInfbO;if(activeNetworklnfo=null)AlertDialog-Builderdialog=newAlertDialog-Builder(Context);dialog.setMessage("亲,现在你没网");dialog.setPositiveButton("TJF',newDialogInterface.OnClickListener()(三)OverridepublicvoidonClick(DialogInterfacedialog,intwhich)intandroidVersion=android.os.Build.VERSION.SDKNT;if(androidVersion>=10)/打开系统自带的网络设置界面Intentintent=newIntent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);context.startActivity(intent);I);dialog.show();4.1.5 将地址转化为经纬度在应用程序中多处用到定位,尤其在进行地点推荐时使用的POl周边搜索,需要利用经纬度来构建center作为周边搜索的中心。在默认情况下,直接利用地图的location可以获取经纬度,但是在用户输入出发地点时,应用程序需要根据用户输入的地点进行周边搜索,此时需要将地址转化为经纬度,自己构建一个CentCr进行检索。4.2 天气预测天气预测界面是主界面功能中的一项,与地点推荐界面,个人中心界面都是Fragment,同属于一个Activity,在主界面的底部有三个图标,用户通过点击不同的图标切换界面。天气界面主要包括两个方面的指标,一个是天气情况,一个是空气质量。天气预测功能与用户定位相关,本应用中通过定位用户所在的区域,调用聚合数据的天气预报和空气质量两个API获取到天气情况和空气质量数据,此时需要将json数据进行结合,构建开发需要的json对象,再从json对象中获取到我们想要的日期、星期、天气、温度、穿衣指数、紫外线指数、出行指数、湿度、风力风向、空气质量指数、空气质量情况等数据。获取并拼接json数据的代码如下。try(获取到的天气预报的json对象,取其中今天的天气情况JSONObjectjsonObjectl=newJSONObject(Weather);JSONObjectjsonResultl=jsonbject1.getJSONObject(,'result");获取到的空气质量的json对象,取其中今天的空气质量JSONObjectjsonbject2=newJSONObject(air);JSONObjectjsonResult2=jsonObject2.get