1. 研究目的与意义
根据国家统计局数据,近年来我国国内旅游市场的游客人数一直保持着稳定增长的趋势,增长率在10%以上,2017年国内旅游市场游客人数已经达到50亿人次。目前我国步入大众旅游时代,旅游休闲已成为百姓的生活常态。虽然旅游人数逐年增加,但是不文明行为也增长不少,例如乱扔垃圾,破坏公共设施,甚至盗窃等犯罪事件[2]。为了改善这个逐年增加的问题,旧时代的管理手段已经落后,需要一个切实可行的管理办法和数字管理系统,伴随着技术的进步,我们还可以结合现代的移动信息技术,运用现代技术优势来提升我们的办事效率,间接提高景区的观赏性[9]。
随着信息技术的进步,现代管理手段对电子信息系统的依赖越来越大,各公司都会有一套自己独有的管理系统,取代传统的管理方式,提高管理效率。现在的系统架构主要分为两种,cs和bs。b/s是browser/server,即浏览器/服务器架构。browser指的是web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,browser客户端,webapp服务器端和db端构成所谓的三层架构[12]。b/s架构的系统无须特别安装,只有web浏览器即可。bs架构的确有cs架构无法比拟的优点,但是缺点也同样存在。一是在跨浏览器上,bs架构不尽如人意。二是表现要达到cs程序的程度需要花费不少精力。最主要在速度和安全性上需要花费巨大的设计成本,这是bs架构的最大问题。c/s是client/server,即客户端/服务器端架构,一种典型的两层架构。它优点在于界面和操作可以很丰富而且由于只有一层交互,因此响应速度较快。但缺点是适用面窄,通常用于局域网中,而且用户群固定。由于程序需要安装才可使用,也不适合面向一些不可知的用户。如党倩滢,杨文健的旅游景区灾害远程救援管理系统研究就是一个c/s系统,它体现了c/s系统的一些优点,但它需要监控计算机,监控人员必须固定,不能像在景区一样进行巡查,不能随时管理[5]。android app可以说是一个c/s架构的系统,且拥有移动端的便捷优势,毕竟管理人员不可能一直在电脑前,巡查人员更不可能带着电脑巡查[3],且管理程序面向的用户基本固定,很少改动。
综上所述,我们需要结合开源的android和百度地图等工具,利用信息通信技术开发一个基于android平台的景区管理移动端软件[4]。该系统将实现巡查任务的下发,巡查结果的上传,问题处理任务的下发,任务处理结果的上传和人员管理[7]等多种功能,这种随时登录系统的操作可以大大提升景区管理的效率[6]。
2. 研究内容和预期目标
一、研究内容
(1)熟悉android系统基本开发流程;
(2)对景区管理系统进行需求调研,设计景区管理系统移动端巡查任务管理,处理任务管理,用户管理等功能;
3. 研究的方法与步骤
一、Java基础知识
Java 是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。
从首次发布开始,Java 就跃到了 Internet 编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手,Android 编程采用的就是 Java 语言[14]。
二、Android基础知识
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发[13]。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码[1]。
三、Android Studio开发环境搭建
首先打开浏览器进入http://www.android-studio.org/index.php的网站下载Android Studio,选择与电脑相配的版本进行下载,下载完后安装。在安装过程中选好自己的安装位置安装完成。然后打开AndroidStudio进行首次配置,如果首次安装则选择不导入之前版本的配置,出现向导界面后一般选择Standard默认配置比较方便,然后再选择个人偏好的额UI主题,下面就是选择SDK的安装位置了,选好后会自动下载SDK,等待即可。全部下载完毕后安装正式完成。进入到Android Studio的安装目录下打开bin文件夹再选studio64.exe启动,创建项目后就可以开始使用了。
四、Android的GPS
全球定位系统 GPS(Global Position System ),是一种可以授时和测距的空间交会定点的导航系统 , 可向全球用户提供连续、实时、高精度的三维位置,三维速度和时间信息[10]。基于实际需求,Android也有GPS的功能。Android中一般有三种位置提供器可供选择,
GPS_PROVIDER、NETWORK_PROVIDER和PASSVIE_PROVIDER.其中前两种使用的比较多,分别表示GPS定位和网络定位.这两种定位各有特点,GPS定位精度比较高,但是非常耗电,而网络定位稍差,但耗电量较小。Android中LocationManager的提供了一系列方法来地理位置相关的问题,主要需要用到以下几个方法:
获取位置信息
public LocationgetLastKnownLocation(String provider)
设置监听状态
public booleanaddGpsStatusListener(GpsStatus.Listener listener)
位置变化获取新的信息
public voidrequestLocationUpdates(String provider, long minTime, float minDistance,LocationListener listener)
获取位置的纬度
public double getLatitude()
获取位置的经度
public double getLongitude()
GPS权限设置
uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION" /
五、掌握App使用第三方地图软件(百度地图)
百度/高德地图是现在很多人使用的地图,他们开放了API给开发者使用[11],此系统选择百度地图。使用前先要注册获取密钥,下载相关开发包,在Android Studio先要配置添加jar文件,产生依赖后就可以使用了[8]。
先要配置开发者密钥
application
meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="开发者 key" /
/application
然后要在AndroidManifest.xml中添加权限:
//获取设备网络状态,禁用后无法获取网络状态
uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /
//网络权限,当禁用后,无法进行检索等相关业务
uses-permissionandroid:name="android.permission.INTERNET" /
//读取设备硬件信息,统计数据
uses-permissionandroid:name="android.permission.READ_PHONE_STATE" /
//读取系统信息,包含系统版本等信息,用作统计
uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS" /
//获取设备的网络状态,鉴权所需网络代理
uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" /
//允许sd卡写权限,需写入地图数据,禁用后无法显示地图
uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" /
//这个权限用于进行网络定位
uses-permissionandroid:name="android.permission.WRITE_SETTINGS" /
//这个权限用于访问GPS定位
uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION" /
//获取统计数据
然后添加地图容器和初始化,由于MapView是View的一个子类,所以大部分地方和Android官方控件相通。具体使用依照http://lbsyun.baidu.com/index.php?title=androidsdk查看百度地图开发者文档。
六、GSON和JSON使用
该系统与后台交互则使用JSON。JSON是存储和交换文本信息的语法,类似XML,但JSON 比XML更小、更快,更易解析[15]。JSON数据的书写格式是:名称/值对。例如"firstName" : "John"。JSON支持多种数据格式,有数字(整数或浮点数),字符串(在双引号中),逻辑值(true 或 false),数组(在方括号中),对象(在花括号中)和null。JSON对象在花括号花括号中书写为:{ "firstName":"John" ,"lastName":"Doe" },数组则在方括号中书写。Gson是这样一个Java类库,它可以将Java对象转换为相应的JSON形式,也可以将JSON字符串转换为对应的Java对象。
例如该系统用到的人员信息序列化如下:
//创建person对象,姓名为xlj,密码为1996629
Person person=new Person ("xlj","1996629");
Gson gson=new Gson();
用Gson来把person对象序列化成Json
String uerJson=gson.toJson(person);
反序列化
用Gson将Json反序列化成Person对象
Personperson2=gson.fromJson(userJson,Person.class)
七、功能需求分析
1.用户注册:对于新的人员来说,由于该系统不是对外公开使用的系统,所以手机端安不开放注册功能,人员的注册全部交给管理人员处理。
2.用户登录:所有职员在使用系统前都必须登录自己的帐号,不同的人员帐号拥有不同的操作权限。
3.管理人员的人事管理:对于管理人员可以拥有人事管理的权限,可以对新增人员进行帐号的添加,也可以对辞职人员进行信息的删除,还可以对人员的各种信息进行修改。
4.管理人员的巡查任务下发:对于管理人员,需要管理每天的任务安排,对巡查人员下发巡查任务。
5.巡查任务:巡查任务主要包括指派的人员、任务名称和任务目标。
6.巡查人员的任务接收:巡查人员接收到任务后会得到提示,打开后可以看到具体的任务巡查地点。
7.巡查人员的巡查记录:巡查开始时点击“开始巡查”按钮,APP会记录路线,巡查结束后可以提交记录,记录主要包括路线和巡查遇到的问题。
8.管理人员的查看巡查记录:后台接收到巡查任务记录后,管理人员可以查看任务记录,如果有问题则需要安排安排相关人员处理。
9.处理人员的任务接收:处理人员接收到任务后会得到提示,打开后可以看到具体的问题关描述。
10.处理人员的问题处理:处理人员处理完毕后可以提交处理结果,处理结果可以包括文字和图片。
11.管理人员的查看问题处理结果:后台接收到问题处理结果后,管理人员可以查看结果的具体内容,并将问题设为处理完毕。
八、数据库设计
(1)User,记录使用人的基本信息
| 字段名 | 数据类型 | 字段说明 | 备注 |
| UserId | char | 用户编号 | 主键 |
| UserName | char | 用户姓名 |
|
| UserPasswork | char | 用户密码 |
|
| UserAuthority | int | 用户权限 | 1为管理人员2为巡查人员3为处理人员 |
| UserTel | char | 用户联系电话 |
|
(2)Task,管理人员下派的任务
| 字段名 | 数据类型 | 字段说明 | 备注 |
| TaskId | char | 任务编号 | 主键 |
| TaskName | char | 任务名称 |
|
| TaskHandler | char | 任务处理者 | 此处为处理者Id |
| TaskDetail | char | 任务详情 |
|
| TaskStatus | char | 任务状态 |
|
九、主要流程
(1)登录流程
用户打开APP后会直接进入登录界面,所有人第一次登录都要输入用户名和密码,以后将会自动填写上一次的登录帐号方便以后的登录。登录后,根据不同人员的身份给予不同的权限,进入后部分操作只可以相关人员进行操作。
(2)管理员流程
管理员输入帐号和密码后进入系统,根据后台判断权限后管理员可以进行人员管理,下达巡查任务,下达问题处理任务和审核巡查与问题处理的上传。
(3)巡查人员流程
巡查人员登录后没有多余的权限,只需要能接受到管理员下达的任务,然后可以查看详细内容后再执行,记录下来后上传给管理员审核。
(4)处理人员流程
处理人员和巡查人员类似,登录后没有多余的权限,只需要能接受到管理员下达的处理任务,然后可以查看详细内容后再执行,问题处理后上传给管理员审核。
4. 参考文献
[1]杨菠.智能手机操作系统群雄并起[j],现代电信科技2011.
[2]郭亚军. 旅游景区管理[m]. 高等教育出版社,2014.
[3]林峰璞. 基于android的智能景区管理终端软件系统设计与实现[d]. 北京邮电大学硕士论文, 2016.
5. 计划与进度安排
具体时间进度:
2022年3月1日 ~ 2022 年3月15日:调研,确定具体研究方案和实施计划
2022年3月15日 ~ 2022年4月1日:撰写开题报告
