2. 山东省青岛第二中学, 青岛 266021
2. Qingdao No.2 Middle School, Shandong Province, Qingdao 266021, China
目前, 我国的海洋生态环境面临海水富营养化加剧、海洋生物种类减少甚至灭绝等一系列严重问题, 导致海洋资源的可再生能力下降, 海洋生态平衡严重失衡[1]. 为了监测海洋生态环境的变化对海洋资源的影响, 充分合理地利用海洋资源, 需要建立有效的监测机制来监测海底的生态环境. 通过监测来收集和分析数据, 进而分析海底复杂的生态环境, 为指导人类合理利用海洋资源提供科学依据.
在移动互联网高速发展的当今, 人们的视线逐渐从PC端转移到了移动终端. 智能手机APP的出现给大家提供了方便快捷的全新生活体验. 为了满足人们生活多方面的需求, 市场上出现了各种定制功能的APP. 海洋生态环境数据展示APP, 从海洋生态环境监测系统中获取并展示用户关心的数据, 用户可以通过分析当前关注的海底生态环境数据做出合理决策.
1 开发环境及应用技术 1.1 开发环境海洋生态环境数据展示APP以Android Studio作为开发平台, 在服务器端采用ASP.NET技术和SQLServer数据库系统.
谷歌推出的新型开发环境Android Studio, 其速度快、智能化、UI界面漂亮, 受到Android开发者的青睐. Android 系统是基于Linux的开放源代码的、目前市场占有率最高的移动操作系统. 该系统为开发者提供了丰富的工具、系统控件和多媒体服务等等. Android可以分为四层架构, 分别是Linux内核层、系统运行库层、应用框架层、应用层[2].
NET是一种面向网络、支持各种用户终端的开发平台环境, 而Microsoft.NET框架是一个在Windows中集成的组件. ASP.NET是一个在Microsoft.NET框架基础上建立的Web开发平台, 可以提供Web应用程序需要的服务[3]. 服务器端采用ASP.NET技术, 在Visual Studio开发环境下实现.
SQLServer则是美国微软公司推出的一种关系型数据库系统, 使用SQL语句执行各种操作.
1.2 应用技术在APP中, 运用Vitamio多媒体框架实现水下视频直播和点播设计, 并用极光推送平台接收推送消息提醒用户, 借助百度地图展示设备投放地点.
Vitamio是一款备受青睐的多媒体开发框架, 可以在Android系统和IOS系统中使用. Vitamio 框架拥有简洁易用的 API 接口, 既支持不同格式的视频的播放, 也支持不同平台的多种视频流媒体协议, 如RTMP协议、RTSP协议等[4]. 本设计中使用了Vitamio多媒体框架, 利用RTMP协议实现水下视频流的直播和点播.
消息推送可以定期地给用户传送他们关注的信息. 消息及时地推送到用户的移动终端上, 可以提高用户活跃度、提高应用的留存率[5]. 本设计中选用极光推送(JPush), 采用长连接方式实现端到端的服务[6]. JPush是大规模APP推送平台, 在客户端集成SDK后, 通过调用API实现消息的推送功能.
百度地图开放平台为Android端提供了地图、定位、鹰眼轨迹、导航、全景等功能. 通过百度地图SDK提供的接口, 可以使用百度地图提供的多种免费服务[7].
2 分析与设计 2.1 需求分析海洋生态环境数据展示APP的主要功能之一是APP的登录, 用户只有登录以后才可以进入APP的主界面使用其他功能. 海洋生态环境实时数据包括实时水文数据和实时视频数据. 实时的水文数据可以通过布局页面在界面直接显示, 视频数据以视频流地址的方式被移动终端获取, 再通过视频播放器来播放. 由于历史数据的数据量庞大, 在APP中以图表的形式呈现给用户. 当获取到的生态环境数据超过预设的门限值时, 则通过推送消息的方式向用户发出提醒信息. APP的更新包括自动更新和手动更新两种方式.
对后台管理系统要实现的功能进行分析, 它需要完成以下6个任务: (1) 移动终端APP的接口. (2) 海洋生态环境实时数据传输APP用户的管理. 海洋生态环境实时数据传输APP用户必须在后台管理系统中登记以后, APP才可以登录使用. 所以在后台管理系统中需要实现对APP用户信息的管理: 包括新用户信息的增加, 老用户信息的更改和删除等. (3) 移动终端APP软件版本的升级. 软件升级功能负责将新的APK文件上传至服务器, 之后在移动终端上就可以检测到新版本的APP. (4) 查看推送消息的历史记录. 推送消息被发送至移动终端, 既可以在移动终端上查看, 也可以在后台管理系统中查看. (5) 发送消息. 当出现某些特殊情况时, 管理员可以根据需要推送消息到指定地点. (6) 管理后台系统的用户, 实现管理员用户的登录、退出和密码修改等功能.
2.2 总体设计用户通过Android客户端发送请求, 后台接收请求并返回数据给客户端, 数据在客户端界面显示. 在客户端实现实时数据和历史数据的显示, 完成视频流的点播和直播, 接收推送消息等等. 后台服务端主要负责给浏览器提供界面、客户端与服务端的通信、Android客户端的接入以及服务器与数据库的交互. 整体架构图如图1所示.
2.3 Android客户端设计
为了提高客户端软件的开发效率, 降低模块之间的耦合性, 海洋生态环境数据展示APP设计的实现采用MVC模式. MVC中的M(模型)指的是多个与海洋生态环境要素有关的实体类和从网络获取的JSON数据. 视图层包括应用程序中的各种XML布局文件, 如activity_main.xml等, 和自定义的View, 如程序开发时自定义的WenZiTextView, 它继承自TextView. 控制层包括程序开发中的多个Activity和多个Fragment, 如: MainActivity、StationDesActivity、StationsFragment、VideoFragment等. 在APP的主界面设计采用单个Activity嵌套多个Fragment的方式实现, 多个Fragment的使用方便模块之间的切换, 也便于应用程序的扩展.
海洋生态环境数据展示APP的主要功能包括: APP登录、设备投放地点显示、设备投放点实时视频播放、存储的精彩视频播放、设备投放点实时水文数据显示、设备投放点历史数据显示、推送消息接收、APP软件升级等等.
APP的主要功能结构图如图2所示.
2.4 后台管理系统设计
后台管理系统功能结构图如图3所示.
后台管理系统包含有4个部分: (1) 手机APP接口. (2) 业务管理, 负责发送推送消息和查看推送消息历史. (3) APP管理, 负责手机APP用户的管理和APP软件版本的升级更新. (4) 后台用户管理, 负责管理人员密码的更改和用户的登录、注销.
3 移动端设计实现 3.1 登录功能的实现用户输入必须在后台管理系统中登记手机号方可实现登录功能, 登录成功直接跳转至APP的MainActivity主界面. 如果手机号未在后台登记, 则无法实现登录功能, 此时需要联系管理员, 将手机号在后台进行登记. 登录时, 如在自动登录前面打勾, 选择自动登录, 将用户信息通过SharedPreferencesUtils工具类进行保存, 在不更换移动终端设备和手机号的前提下, 可以直接从引导页进入APP的主界面. 其流程图如图4所示.
用户登录成功后, 后台便会将移动终端的MAC地址保存, 实现了移动终端和APP的绑定. 如果用户更换移动终端设备或者手机号码, 则必须与管理员联系重新登记, 以防止出现盗登录, 从而保证海洋环境数据的安全性. 移动终端登录界面如图5所示.
3.2 主界面的实现主界面由底部导航栏和地图两部分组成, 底部导航由三个碎片组成, 分别是站点Fragment 、视频Fragment、用户Fragment, 它们三个之间可以自由切换. 上半部分设备投放点展示借助百度地图开发平台实现, 如图6 所示. 图上的点称为标记点, 每个点都代表一套海洋生态环境监测系统的投放点, 然后给标记点设置监听, 当点击标记点时会触发相应的事件.
3.3 实时数据查看功能的实现
如果数据状态是正常的, 将会获得实时水文数据和视频流地址. 如果数据状态不正常, 则无法解析数据, 数值无法显示. 以威海长青海洋牧场的数据为例, 实时数据显示界面如图7所示.
图7中环境温度是5.31℃, 盐度是28.96 PSU, 深度是8.25 m, 叶绿素含量是0.08 ug/L, 溶解氧含量是10.96 mg/L. 点击“实时视频”后的视频播放按钮, 会从图7的页面跳转到VideoPlayActivity视频播放界面, 播放海底的实时视频流, 如图8所示.
实时数据展示页面包含跳转到历史数据页面的按钮和跳转到其它站点按钮, 点击对应按钮可以跳转到相应的界面.
3.4 历史数据查看功能的实现用户可以根据需要选择查看温度、盐度、深度、溶解氧、叶绿素数据等水文和生态数据中的几种或者全部, 数据的选择通过CheckBox控件来实现. 并选择需要查看数据的时间单位: 日、周、月、年或者自定义, 最终将数据以折线图的形式展示给用户. 通过查看数据, 分析数据的变化趋势, 了解海洋生态环境变化情况, 为企业管理决策提供科学依据.
黄海浒苔绿潮已连续11年暴发, 2017年夏季还出现了马尾藻金潮和米氏凯伦藻赤潮, 黄海“三潮”齐发. 根据相关监测部门的报道得知, 2017年6月14日前后, 浒苔绿潮入侵山东日照沿海海域. 通过移动终端APP观察到5月20日到6月20日日照国美投礁型海洋牧场的水文生态参数数据如图9所示. 从图中可以看出, 海水温度呈现季节性增温, 但是在14号之后, 温度迅速升高, 溶解氧含量迅速降低, 叶绿素浓度急剧上升, 在6月18号之后叶绿素浓度又恢复到绿潮到来之前的水平. 2017年6月16号前后在青岛鲁海丰海洋牧场的水文生态参数中也观察到类似现象, 因此推测海洋牧场生态环境数据异常与“三潮”入侵有关.
通过长期观察某一特定海域海洋生态环境数据的变化规律和某些特定参数(例如海水温度、溶解氧、叶绿素等)异常变化与发生海洋灾害(例如绿潮、金潮或者赤潮等)的关联性, 可以总结出利用海洋生态环境监测系统对海洋生态灾害进行预报的数值模型, 为海洋牧场提供海洋生态灾害预警机制, 为企业科学决策提供数据支撑, 减少企业由于海洋生态灾害导致的经济损失.
3.5 视频列表的实现
通过选择VideoFragment能够跳转到精彩视频列表界面, 如图10所示. 可以选择播放任何一个投放地点精彩视频列表中的任意一个视频片段.
Vitamio框架提供了视频播放的相关类, 每个类都有对应功能, MediaController类负责视频播放时的控制页面, 包括视频的开始和暂停[8]. 通过设置接口函数来实现视频播放时的参数设置, 在VideoPlayActivity中, 使用setBufferSize()接口函数设置播放视频的大小, 用setPlaybackSpeed()接口函数设置视频的播放速度. 视频播放过程中需要设置三个监听: 播放准备好监听, 播放完成监听和播放出错监听.
3.6 个人信息界面的实现
移动终端APP的个人信息界面如图11所示, 包括查看我的消息、信息发布、检查更新、是否开启推送通知、退出登录五项功能.
在个人信息界面中点击“我的消息”可以查看移动终端接收的提醒消息, 点击后会跳转到消息列表页面, 如图12所示. 消息列表中都是利用极光推送发送的提醒消息, 用户通过提醒消息可以得知某海域的某些生态环境指标超出预警阈值, 生态环境可能面临恶化的危险.
4 结语
经过测试后, 移动终端APP和后台管理系统运行稳定. 目前, 海洋生态环境监测系统已布放在山东省的二十余个海洋牧场中, 通过该APP向用户展示海洋牧场的生态环境数据.
通过移动终端APP查看历史数据, 分析数据并根据数值变化率预测生态异常现象的出现, 结合实时数据和推送消息, 可以实现海洋生态环境参数异常预警, 从而为海洋牧场的科学生产和防灾减灾提供数据支撑.
[1] |
郭永刚. 海洋环境监测数据处理系统的设计与实现[硕士学位论文]. 哈尔滨: 哈尔滨工业大学, 2015.
|
[2] |
秦晓凤. Android系统架构与应用问题探讨. 信息通信, 2016(8): 169, 170. |
[3] |
李俊. 基于ASP.NET在线考试系统的开发与实现. 电子设计工程, 2014, 22(16): 28-30. DOI:10.3969/j.issn.1674-6236.2014.16.009 |
[4] |
Vitamio官网. https://www.vitamio.org/en/docs/Basic/2013/0509/4.html.
|
[5] |
Android SDK集成指南. http://docs.jiguang.cn/jpush/client/Android/android_guide/.
|
[6] |
杨文婷. 基于HTTP长连接的消息推送平台的研究与实现[硕士学位论文]. 武汉: 华中科技大学, 2012.
|
[7] |
汪涛. 基于Android平台的光缆资源管理系统客户端的设计与实现[硕士学位论文]. 南京: 东南大学, 2014.
|
[8] |
程颖, 姚晔, 张家珲. Android多功能视频播放器的设计与实现. 信息通信, 2016(6): 104-105. DOI:10.3969/j.issn.1673-1131.2016.06.051 |