路灯控制系统的Android端App设计毕业论文
2020-04-08 12:40:08
摘 要
近几年来,随着物联网技术的高速发展,智慧路灯这一名词开始走进千家万户,人们对它的了解也越来越多。路灯照明系统已经不仅仅是提供路面照明、方便人们外出的设备,现在路灯照明系统已经成为了城市重要基础设施的组成部分,在交通、治安、百姓的生活以及市容风貌中都居于不可忽视的地位。
现阶段,智能手机的功能变得越来越丰富,手机的普及程度也越来越高。因此,将智能手机作为智慧路灯系统的移动控制端,必将成为智慧路灯行业的发展潮流。现阶段手机系统以Android和IOS为主流,二者均有无法代替的地位。
本文在对智慧路灯系统研究的基础之上设计了路灯控制系统Android手机客户端软件。首先设计了系统的总体架构,然后对各部分实现方法及所应用到的技术做了详细的阐述,最后完成了模拟器上的测试。该软件主要实现对路灯状态的远程监控以及对路灯的远程控制功能。
关键词:智慧路灯、软件设计、Android、远程控制
Abstract
In recent years, with the rapid development of Internet of things technology, the term "smart street lamp" has entered people's life. The street lighting system has become an important part of the city's important infrastructure. Street lamp control plays an important role in urban traffic safety, social security, people's life and city appearance.
Due to the intelligent degree of the popularity of mobile phones function increasingly rich and gradually improve, the control end of the street lamp system using smart phones as wisdom, will become the development trend of intelligent street lamp industry. At present, the mobile phone system is dominated by Android and IOS, both of which have irreplaceable status.
Based on the research of the smart street lamp system, this paper designs the Android mobile phone client software of street lamp control system. Firstly, the overall architecture of the system was designed, and then the methods of each part and the techniques applied were described in detail. Finally, we completed the test on the simulator. The software mainly realizes remote monitoring of street lamp status and remote control function of street lamp.
Keywords: Intelligent street lamp; software design; Android; remote control
目录
摘要 I
Abstract II
第一章 绪论 1
1.1研究目的及意义 1
1.2国内外研究现状 2
1.3课题研究内容结构 2
1.3.1课题研究内容 2
1.3.2论文结构 2
第二章 关键技术及基础理论研究 4
2.1基于Android平台应用开发研究 4
2.1.1 Android系统架构 5
2.1.2 Android系统应用的基本组件 6
2.1.3 Android应用开发环境的搭建 9
2.2 Android消息传递机制 9
2.2.1 Handler传递机制及工作原理 10
2.3使用网络技术 10
2.3.1 XML格式数据解析方式 11
2.3.2 JSON格式数据解析方式 13
第三章 需求分析与布局设计 14
3.1功能需求分析 14
3.2布局设计 14
3.2.1登陆界面设计 14
3.2.2地图显示界面设计 16
3.2.3区域选择及路灯编号选择界面设计 17
3.2.4路灯控制与信息显示界面设计 19
第四章 核心设计 20
4.1登陆界面核心设计 20
4.2地图显示界面核心设计 20
4.3区域选择及路灯编号选择核心设计 24
4.4获取路灯信息及控制路灯设计核心 25
第五章 测试 26
第六章 总结 28
致谢 30
参考文献 31
附录 33
绪论
1.1研究目的及意义
智慧路灯,即可以实现远程控制集中管理的路灯,通常是通过应用效率高且可靠性高的电力线载波通信技术以及无线GPRS/CDMA通信技术等实现的[1]。智慧路灯具有很多普通路灯所不具备的功能。如:依据车流量自动改变路灯亮度、远程管理路灯亮灭、如果路灯运行出现错误则主动报警、防止灯具及电缆等被盗功能、远程抄表等功能等,这些功能使得它能够大幅节约电力资源,提升公共照明管理水平,节省维护成本[2]。
智慧路灯的发展可以说是非常迅速了,它的出现最早可以追溯到2010年IBM提出的智慧城市愿景,到近几年它已经进入了快速发展的阶段,在很多国家的很多城市都已经开始尝试。智慧城市,这一名词现在对我们来说并不算是一个陌生的名词,它是指通过使用通信技术手段检测、分析、整合城市运行核心系统的各项关键信息,从而对包括民生、环保、公共安全、城市服务、工商业活动等在内的各种需求做出智能响应[3]。近几年来智慧城市的发展是十分迅速的,我国的智慧城市的发展建设也处于非常紧张的状态[4]。智慧路灯作为智慧城市重要的一部分,可以从多方面推进智慧城市的建设,智慧路灯的应用带来的城市运营效率的提升和对经济的促进作用已经越来越明显,并且可以显著提升当地的城市管理效率和人民生活质量,使人们的生活变得更美好。
同时,随着智能移动终端硬件的发展,推动了移动智能终端的操作系统、应用软件行业的发展[5]。传统的移动终端设备的系统是由手机厂商自行研发的,都是封闭的系统[6]。应用软件没有办法实现不同手机之间的跨平台,在一种系统上应用的软件是无法在另一种系统中正常使用的,这使得移动智能终端的应用软件发展备受限制。但是,自从 Google 发布 Android 移动操作系统、基于开源 Linux 内核的免费发布,打破了移动智能终端的系统垄断状态,为整个移动智能终端的市场的发展注入了一剂强心剂。
本文所论述的路灯控制系统的Android端App设计无疑是智慧路灯中重要的一部分,有了它工作人员可以在手机上远程监控操控路灯系统、监控路灯运行状态,这可以大大节省人力资源,使人们的生活更加便捷、舒适。
1.2国内外研究现状
智慧城市是信息时代城市发展的新模式,是以大系统整合的思想实现物理空间与网络空间的交互,使城市的管理职能更加智能,城市各种资源调配更加协调高效,城市经济发展更为高端的一种模式[7]。现阶段,虽然在我国智慧城市处于刚刚起步的阶段,但是在美国,韩国,法国,日本,新加坡等多个国家已经处于高速发展的阶段。例如,弗洛里达的智慧电网、马德里的智慧交通、维也纳的智慧城管等都已经为人们所熟知。
在高新技术的带动下,智慧路灯技术发展迅速,展现出了强大的生命力。智慧路灯作为智慧城市重要的一部分成为高新技术应用的重要领域,智慧路灯技术发展呈现出强大的生命力。纵观全球,为了节约资源,实现可持续发展创造便利于人民生活的环境。世界多个国家纷纷加大科技创新力度,智慧路灯产品的发展取得了许多重大进步。目前智慧路灯在美国洛杉矶、柏林、英国MK体育场都可以看到。
现阶段,在最为普及的两大手机系统为Android和IOS系统。在这两个系统中只有少数的几款路灯管理APP。如StreetLamp Control System,ETENDA、智能照明控制平台等。
1.3课题研究内容结构
1.3.1课题研究内容
本文所叙述的软件是一款基于越来越深入人们生活的路灯控制系统的软件,设计这款软件可以非常大程度的便利人们的生活,使用户可以在安卓手机上控制路灯,查看路灯运行状态。该软件不仅具有查看路灯用电量、控制路灯开关的功能而且还具有安全登陆的功能。
1.3.2论文结构
我将本文分成了五章,详细的介绍了我的全部工作量和成果,内容安排如下:
- 绪论。绪论是整篇论文的第一章。在该章我详细的介绍了基于路灯控制系统的安卓端软件设计的目的及意义,并且详细的分析了现阶段路灯控制系统移动控制端全世界各个国家和地区的研究现状。
- 关键技术及基础理论研究。本章我对该软件设计所用到的核心技术进行了详细的说明,可以说本章是全文的理论支撑是整篇论文的”动力源泉”,是整篇论文的“心脏”。
- 需求分析与布局设计。每一位软件开发人员都应该养成良好的软件设计习惯,需求分析作为软件设计的第一步是每一位软件开发人员都应该关注的,一个好的需求分析是一个优秀的软件设计的良好的开端,没有好的需求分析会使得软件设计与用户需求不相贴合。布局设计是关系到软件视觉效果的,事实上用户所接触到的就是布局设计,一个良好的布局设计可以使用户有良好的用户体验。
- 核心设计。核心,只要我们一听到这个名词便知道它是非常重要的一部分,核心设计是支撑软件运行的关键,一个软件设计是无法脱离核心设计的,可以说,核心设计是软件设计的灵魂。
- 测试。测试是软件设计最后一步,也是非常重要的一步。本章对该设计的研究结果测试结果进行了详细的测试,并对测试结果进行了阐述。
- 总结。总结是所有设计完成后的一步,但它并不是不关键的一步,好的总结可以让我们发现我们的设计好的地方和不令人满意的地方,可以对以后的研究起到指导作用。
关键技术及基础理论研究
Android一词英文本意为机器人,它是谷歌公司于2007年宣布的基于Linux平台开源的手机系统[8]。其实,Android是基于Java,并运行在Linux内核上的操作系统。虽然这个操作系统是轻量级的,但是它的功能却非常全面。而且,在这个系统上谷歌公司已经内置了很多有用的软件,便于用户使用。
2.1基于Android平台应用开发研究
Android系统共由三层组成,即底层的Linux内核,中间层的中间件,最上层的Java应用程序及用户界面共同组成[9]。Java语言是安卓应用程序的开发语言,它是面向对象的开发语言,且具有开发周期较短的特点。然而,Android最为突出的特点是开源性,正是这一特点吸引着全球很多开发人员热衷于学习Android。
除此之外,安卓系统还具有很多其他优势,如:具有实用性强的功能,其中主要功能有:
- Android的应用框架为软件开发人员提供了各种各样的API[10]。
- 安卓提供的数据库具有占用资源少而且操作方便的特点,它就是SQLite,一种轻量级的关系型数据库。
- 使用安卓可以访问多媒体,即安卓提供对多媒体的支持。
- 安卓支持多种传感器的使用,如重力、摄像头、定位、加速度等传感器。
- 安卓支持网络使用,即安卓提供对蓝牙 、4G及WI-FI等功能的支持。
- 安卓分别基于SGL和OpenGL ES1.0规范集成了2D和3D的图形引擎。
2.1.1 Android系统架构
安卓系统架构从上到下可以分为四层[11],依次为:Linux Kernel(Linux内核层)、Library Android Runtime、Application Framework(应用框架层)、Applications(应用程序层)详细分层见图2.1。
图2.1 Android系统架构
- Linux Kernel
Linux 内核层,可以说是由内核及各种驱动组成的[12]。Linux内核是安卓的核心层,它提供了系统的核心服务,如:访问权限、网络堆栈、进程管理及内存分配和释放等。在安卓系统中连接着硬件和软件的正是Linux内核,它是一个抽象层。对于安卓应用开发人员来说,软件设计才是关键,而不需要将大多数精力放在Linux内核层,我们只需要对Linux 内核层有一定程度的了解便可。
- Android Runtime
我们都知道安卓运行时由Dalvik虚拟机及Android核心库组成[13]。在安卓中实现底层与上层的连接,控制底层的设备、驱动等的是Android库,它提供大多数Java语言核心库所具有的功能。安卓应用的运行是由Dalvik虚拟机管理的,每个应用都与一个Dalvik线程相对应。
- Library
函数库含有一套C/C 库集,供各种组件调用, Application Framework正是安卓开发人员用来调用这套库集所用的工具。其中核心库主要有SQLite、系统C库、媒体库、3Dlibrary等。
- Application Framework
应用程序框架层,提供丰富的API供安卓开发者使用,如TextView、map等UI组件。与此同时,应用框架层还提供了很多的本地服务和Android系统服务,作为应用程序开发的基础的应用程序框架优化了组件的复用性[14]。一个应用程序可以调用另一个应用程序的功能模块,如果这个应用程序的功能模块已经按照框架的规定进行发布,这可以在很大程度上节约开发时间。
- Applications
应用程序层,安卓系统的许多核心应用程序都会发布在此层[15],如email、健康、音乐、电话等应用程序。这一层的应用程序是使用Java语言编写的,它也是用户接触最多的。
2.1.2 Android系统应用的基本组件
安卓系统应用程序入口并不是只有一个的[16],应用程序可以作为一个服务被其他程序调用。
图2.2 Android应用的基本组件
一个或者多个组件和实现组件之间通讯的Intent组件共同构成Android应用程序。安卓应用中常用的五个组件如图2.2所示,在使用每个组件在之前都必须要在AndroidMainfest.xml文件中声明。
- 活动
活动是Android应用开发最常见的组件[17],它作为用户最容易接触到的组件,是最容易吸引用户的地方了。它是一种可以包含用户界面的组件,主要用于和用户之间进行交互。一个应用程序中可以包含零个或多个活动。一个应用程序中的所有活动可以用一个栈来理解,位于栈顶的活动处于活动状态,活动的生命周期中会有如下几个状态:活动状态、暂停状态、停止状态和销毁状态等。活动的生命周期和回调方法非常简单,如图2.3所示。
图2.3活动的生命周期和回调方法
- 服务
服务和活动有很多相似的地方,服务是安卓中实现程序后台运行解决方案[18]。用通俗的话来讲,它就像一个在背后默默无闻的服务者,它的专长与活动不同,它擅长于处理不需要长期和用户交互并且还要求长期运行的任务。服务的生命周期是不由任何页面所决定的,即使当一个程序被切换到后台,服务是仍然能够维持正常运行而不被打扰。关于服务我们需要了解到的非常关键的一点是,服务的运行并不是由哪一个独立栈决定的,而是取决于创建服务时所在的应用程序进程,即只有当某个应用程序被用户停止掉的时候,那么所有依赖于该进程的服务也才会停止。
- Intent
从某种严格的意义上来讲,Intent并不是Android的应用组件,但是Intent有着强大的作用,在应用的组件内部Intent被当作通讯的载体,利用Intent可以实现在应用运行时连接不同的组件,如活动、服务等。
- BroadcastReceiver
BroadcastReceiver又名广播消息接收器,是一种用来监听系统全局广播消息的全局监听器,广播消息接收器监听的事件来自于Android应用中其它组件发送的消息,它属于系统级的监听。应用程序发送广播消息的步骤是非常简单的,即调用Context中的sendBroadcast(Intent intent)方法即可实现Intent的广播消息发送给其他的应用程序。
- ContentProvider
Android系统中的应用是相互独立的,系统中的数据库、文件及其它的数据都是私有的,这样做可以免于病毒攻击及异常运行程序等的影响。但是由于这个原因,如果Android应用之间需要交换数据则需要借助ContentProvider组件,我们在使用它的时候通常会与ContentReslover结合使用。
2.1.3 Android应用开发环境的搭建
Android应用是使用Java语言作为开发语言的。经过多年来的发展,现在Java语言已经成为影响深远的语言,Java语言的开源等特点吸引着广大的开发人员的目光。
Java语言是一门面向对象的编程语言,它不但能够很好的诠释面向对象的语言的特点,而且可以进行非常复杂的程序开发。Java不仅吸取了很多C 语言的优点,而且去除了C 语言中多继承、指针、运算符重载等概念,这些变化使得Java语言相对于C 语言更加易于使用。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: