沈旭,王秋云
(岭南师范学院信息工程学院,湛江524048)
基于Android的海洋环境监测手机App设计与开发
沈旭,王秋云
(岭南师范学院信息工程学院,湛江524048)
海洋环境监测客户端App由海水参数查询、海水分类标准、热门海域搜索、海洋知识查阅等4个功能模块组成,基本可以满足用户对海水环境的认知需求。对于用户来说,客户端的典型应用是:根据感兴趣的海域,按照城市-海域-海水参数-建议开展活动类型的顺序,选择合适的海域开展相应的活动。
海洋环境;水质参数;海上活动
人们常把地球比作“水球”,那是因为海洋面积占地球总表面积的70.8%,目前海水中已发现的化学元素有80多种,再加上人类活动所导致的污染等,使得海水质量不断变化。随着科技的不断发展和人民生活水平的不断提高,人们对于海水质量的关注日益提高,迫切需要开发一款便于大众使用的海洋环境监测客户端App。智能手机已经成为现代人生活的主要通信工具,所以一个基于Android系统的海洋环境监测客户端可以为人们对海水参数的实时了解提供直接帮助,例如人们旅游,可以查询具体海域当天的水温、油污、含盐量等,从而决定是否合适游泳;海洋养殖,人们可通过查询具体海域的海水微量元素含量、温度、氨氮含量、有毒元素是否超标等,从而决定该海水适合养殖什么海产品等。
我们的目标在于开发一个功能实用、操作方便的基于Android的海洋环境监测客户端,能够读取硬件检测设备传来的海水参数,并结合数据库中,国家颁布的“海水水质标准”相关参数标准进行自动查询,反馈参数到用户手机,其中反馈信息包括:具体海域水体参数值、海水类别、适合开展的海洋活动等。
1.1 市场需求分析
随着经济的快速发展,交通工具愈发便捷,人与海洋的关系日益密切。越来越多的人喜欢海上运动,如:潜水、海浴、冲浪等。同时海洋养殖业也受到了更多投资者的青睐,更多的人会选择合适的海域进行海产品养殖、海水晒盐、工业用水引用海水等。
1.2 系统需求分析
海洋环境监测App是基于Android平台的,An⁃droid是一种以Linux与Java为基础的开放源代码操作系统[1],主要使用于便携设备。其使用到的开发平台是Eclipse,Eclipse是一个开放源代码的、基于Java的可扩展开发平台[2]。为了实现数据的动态模拟,该软件的开发使用了Tomcat服务器,Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选[3]。
1.3 功能需求分析
经过深入的调研,目标系统的主要人群是海滨城市旅游者和普通的海产品养殖者。整个基于Android的海洋环境监测手机App的系统功能模块如图1所示:
图1 功能模块图
2.1 Activity ivity类设计
基于用户对Android App的使用习惯,海洋环境监测客户端界面设计分为六个Activity:MainActivity:软件的首页,由两部分构成:公告栏和软件主菜单导航版块按钮;CityActivity:城市查询,分为两个部分:查询框(ClearEditText)、查询结果显示;CoreActivity:海水参数反馈界面,包括具体的8个海水参数值,适合开展的活动和该海域的类别;ReMenActivity:热门海域,包括热门海域的图片和名称;WaterActivity:海水标准分类,包括国家海水分类标准值和原文网址链接;MsgActivity:知识库,包括图片banner和listview[4]。
2.2 界面布局设计
海洋环境监测App的设计分成四大版块:查询版块、海水水质分类版块、热门海域版块和海洋知识库版块,App主界面如图2。
(1)水质查询板块设计
查询版块实现了海洋环境监测客户端的核心功能。查询功能操作过程如下:
①点击图标:水质查询。
②选择需要查询的城市,这里仿Android联系人列表来做[5],搜索的方式有两种,一、直接在Editview输入城市名,二、通过右侧的“A-Z”字母定位到城市名。
③在spinner中选择该城市的海域,界面会同步显示“海水参数表”和该海域“适合开展活动”。活动包括:海洋渔业、海上生物保护区、水产养殖、海浴、工业用水、滨海风景旅游、海洋开发作业[6]。可开展活动的查询依据是:第一类海水,海洋渔业、海上生物保护区;第二类海水,水产养殖、海浴;第三类海水,工业用水、滨海风景旅游;第四类海水,海洋开发作业。
(2)海水分类版块设计
海水分类版块只有一个界面,包括了“国家海水分类标准表”和该标准颁布的网址链接。具体界面图如下:
图2 App主界面
图3 海水分类界面设计
(3)热门海域版块设计
热门海域版块的实现基于水质查询版块,在热门海域的数据表设计中添加了对海域点击次数的统计,使用参数total记录点击次数,通过对海域点击次数进行降序排列[5],排在前面海域作为热门海域显示到相应界面。
热门海域界面采用GridView组件,最终显示的信息有海域图片和海域名,点击海域名会获取该海域的海水参数表[7]。具体界面以拱北口岸为例,截图如图4所示。
(4)知识库版块设计
知识库作为一个独立的版块设计完成,主要目的是为了向用户提供更多关于海洋方面的知识,让用户在选择海洋活动前能方便查看该活动需要的注意事项。知识库列表,包括了图片和文章标题,图片的获取通过服务器实现;文章内容,当用户点击了标题后,界面会切换到文章详细内容。
图4 热门海域界面设计
(5)海水参数的获取
①海水模拟参数的更新
为了更加真实地模拟数据的变化,所以本次开发使用了MySQL数据库和Tomcat服务器,设置了海水参数每单位时间进行自动更新[8],代码如下:
protected void doGet(HttpServletRequest request,HttpServle⁃tResponse response)throws ServletException,IOException{
final SeaDataDAO seaDataDAO=new SeaDataDAO();
TbSeaData data=createData();
seaDataDAO.createDta(data);
Runnable runnable=new Runnable(){
public void run(){
//task to run goeshere
TbSeaData data=createData();
seaDataDAO.createDta(data);
System.out.println("Hello!!");
}
};
ScheduledExecutorService service=Executors
.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnable,10,10,
TimeUnit.SECONDS);
}
②模拟参数的获取路径
在该App中,每个海域可以查询到8类海水参数,数据库MySQL定义了一个标准表tb_standard。tb_standard作为海水参数的标准表,里面定义了value1(最小值)、value2(最大值)两个值作为每项海水参数的界限。tb_seaarea数据表,将会从tb_standard表中val⁃ue1-value2两个界限值中,随机获取数据,生成海水模拟参数表,如表1所示。
图5 海水参数数据流图
表1 海水模拟参数表tb_standard
图6是表1自动生成的参数,其中value中的“#”表示“换行”,status是对应的海域名。
图6 自动获取参数截图
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。海洋环境监测系统使用的Tomcat版本是Tomcat-7.0.69。
服务器主要是用servlet,整体为MVC的一个架构,即分三层,展示层(jsp),业务逻辑层(action)和数据访问层(dao)[8]。服务器主要是通过json的方式与App进行通信。
系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上所进行的审核评价。针对本系统的评价如下:(1)系统功能评价,根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。(2)系统技术评价,本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了信访办公效率。
所有功能都可以实现,系统运行良好,但是还有很多不够完善的地方,需要以后在使用的过程中继续完善。
海洋环境监测手机App可以实现海水参数在线查询、海水分类标准国标查询、热门海域搜索、海洋知识查阅、适合开展的活动推荐等功能,基本可以满足目标用户对海水环境的认知需求。目前,海水水质数据是模拟数据,未来与ZigBee无线传感器水质采集模块配合,可以达到实时监测特定海域海洋水质参数的目的,这是以后工作的方向。
[1]王东华.Android开发实例大全[M].北京:电子工业出版社,2012.08.
[2]曾宏远,崔荔蒙.从零开始学Android编程[M].北京:电子工业出版社,2012.
[3]金景文化.Photoshop智能手机APP界面设计全解析[M].北京:人民邮电出版社,2014.05.
[4]王巧伶.APP手机界面创意设计新手通[M].北京:机械工业出版社,2014.
[5]涂振宇,郭辉.基于Android的智能健康运动App的设计与实现[J].考试与评价,2016(10).
[6]张晓诺.基于Android的智能家居环境监测系统APP设计与实现[J].软件,2015(2):211-213.
[7]乔一乘.基于Android+Java EE架构的校园信息交互系统[D].吉林大学,2012.
[8]杨宝林.基于JavaWeb的学生成绩信息管理系统[D].吉林大学,2015.
Design and DevelopmentofMarine EnvironmentMonitoring App Based on Android
SHENXu,WANGQiu-yun
(Information Engineering School,Lingnan NormalUniversity,Zhanjiang 524048)
Themarine environmentmonitoring App is composed of 4 functionalmodules,such as seawater parameter query,seawater classification standard,hot sea area search,ocean knowledge inspection,etc.,which can basicallymeet the user's need for the seawater environment.For users,the typical application of the client is:according to the sea area of interest,in accor⁃dancewith the city-sea-sea parameters-the proposed activities carried out to select the appropriatewaters to carry outap⁃propriate activities.
沈旭(1979-),男,汉,山东单县人,讲师,硕士,CCF会员,研究方向为物联网、Android开发等
2017-05-11
2017-07-26
国家自然科学基金(No.61402399)、湛江市财政资金科技专项(No.2014A01010)、湛江市科技攻关计划(No.2014B01030)、岭南师范学院自然科学(No.QL1411)
1007-1423(2017)22-0057-04
10.3969/j.issn.1007-1423.2017.22.015
Marine Environment;Water Parameters;Marine Activities