沈旭,王秋云
(嶺南師范學(xué)院信息工程學(xué)院,湛江524048)
基于Android的海洋環(huán)境監(jiān)測手機(jī)App設(shè)計(jì)與開發(fā)
沈旭,王秋云
(嶺南師范學(xué)院信息工程學(xué)院,湛江524048)
海洋環(huán)境監(jiān)測客戶端App由海水參數(shù)查詢、海水分類標(biāo)準(zhǔn)、熱門海域搜索、海洋知識查閱等4個功能模塊組成,基本可以滿足用戶對海水環(huán)境的認(rèn)知需求。對于用戶來說,客戶端的典型應(yīng)用是:根據(jù)感興趣的海域,按照城市-海域-海水參數(shù)-建議開展活動類型的順序,選擇合適的海域開展相應(yīng)的活動。
海洋環(huán)境;水質(zhì)參數(shù);海上活動
人們常把地球比作“水球”,那是因?yàn)楹Q竺娣e占地球總表面積的70.8%,目前海水中已發(fā)現(xiàn)的化學(xué)元素有80多種,再加上人類活動所導(dǎo)致的污染等,使得海水質(zhì)量不斷變化。隨著科技的不斷發(fā)展和人民生活水平的不斷提高,人們對于海水質(zhì)量的關(guān)注日益提高,迫切需要開發(fā)一款便于大眾使用的海洋環(huán)境監(jiān)測客戶端App。智能手機(jī)已經(jīng)成為現(xiàn)代人生活的主要通信工具,所以一個基于Android系統(tǒng)的海洋環(huán)境監(jiān)測客戶端可以為人們對海水參數(shù)的實(shí)時了解提供直接幫助,例如人們旅游,可以查詢具體海域當(dāng)天的水溫、油污、含鹽量等,從而決定是否合適游泳;海洋養(yǎng)殖,人們可通過查詢具體海域的海水微量元素含量、溫度、氨氮含量、有毒元素是否超標(biāo)等,從而決定該海水適合養(yǎng)殖什么海產(chǎn)品等。
我們的目標(biāo)在于開發(fā)一個功能實(shí)用、操作方便的基于Android的海洋環(huán)境監(jiān)測客戶端,能夠讀取硬件檢測設(shè)備傳來的海水參數(shù),并結(jié)合數(shù)據(jù)庫中,國家頒布的“海水水質(zhì)標(biāo)準(zhǔn)”相關(guān)參數(shù)標(biāo)準(zhǔn)進(jìn)行自動查詢,反饋參數(shù)到用戶手機(jī),其中反饋信息包括:具體海域水體參數(shù)值、海水類別、適合開展的海洋活動等。
1.1 市場需求分析
隨著經(jīng)濟(jì)的快速發(fā)展,交通工具愈發(fā)便捷,人與海洋的關(guān)系日益密切。越來越多的人喜歡海上運(yùn)動,如:潛水、海浴、沖浪等。同時海洋養(yǎng)殖業(yè)也受到了更多投資者的青睞,更多的人會選擇合適的海域進(jìn)行海產(chǎn)品養(yǎng)殖、海水曬鹽、工業(yè)用水引用海水等。
1.2 系統(tǒng)需求分析
海洋環(huán)境監(jiān)測App是基于Android平臺的,An?droid是一種以Linux與Java為基礎(chǔ)的開放源代碼操作系統(tǒng)[1],主要使用于便攜設(shè)備。其使用到的開發(fā)平臺是Eclipse,Eclipse是一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺[2]。為了實(shí)現(xiàn)數(shù)據(jù)的動態(tài)模擬,該軟件的開發(fā)使用了Tomcat服務(wù)器,Tomcat服務(wù)器是一個免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選[3]。
1.3 功能需求分析
經(jīng)過深入的調(diào)研,目標(biāo)系統(tǒng)的主要人群是海濱城市旅游者和普通的海產(chǎn)品養(yǎng)殖者。整個基于Android的海洋環(huán)境監(jiān)測手機(jī)App的系統(tǒng)功能模塊如圖1所示:
圖1 功能模塊圖
2.1 Activity ivity類設(shè)計(jì)
基于用戶對Android App的使用習(xí)慣,海洋環(huán)境監(jiān)測客戶端界面設(shè)計(jì)分為六個Activity:MainActivity:軟件的首頁,由兩部分構(gòu)成:公告欄和軟件主菜單導(dǎo)航版塊按鈕;CityActivity:城市查詢,分為兩個部分:查詢框(ClearEditText)、查詢結(jié)果顯示;CoreActivity:海水參數(shù)反饋界面,包括具體的8個海水參數(shù)值,適合開展的活動和該海域的類別;ReMenActivity:熱門海域,包括熱門海域的圖片和名稱;WaterActivity:海水標(biāo)準(zhǔn)分類,包括國家海水分類標(biāo)準(zhǔn)值和原文網(wǎng)址鏈接;MsgActivity:知識庫,包括圖片banner和listview[4]。
2.2 界面布局設(shè)計(jì)
海洋環(huán)境監(jiān)測App的設(shè)計(jì)分成四大版塊:查詢版塊、海水水質(zhì)分類版塊、熱門海域版塊和海洋知識庫版塊,App主界面如圖2。
(1)水質(zhì)查詢板塊設(shè)計(jì)
查詢版塊實(shí)現(xiàn)了海洋環(huán)境監(jiān)測客戶端的核心功能。查詢功能操作過程如下:
①點(diǎn)擊圖標(biāo):水質(zhì)查詢。
②選擇需要查詢的城市,這里仿Android聯(lián)系人列表來做[5],搜索的方式有兩種,一、直接在Editview輸入城市名,二、通過右側(cè)的“A-Z”字母定位到城市名。
③在spinner中選擇該城市的海域,界面會同步顯示“海水參數(shù)表”和該海域“適合開展活動”?;顒影ǎ汉Q鬂O業(yè)、海上生物保護(hù)區(qū)、水產(chǎn)養(yǎng)殖、海浴、工業(yè)用水、濱海風(fēng)景旅游、海洋開發(fā)作業(yè)[6]??砷_展活動的查詢依據(jù)是:第一類海水,海洋漁業(yè)、海上生物保護(hù)區(qū);第二類海水,水產(chǎn)養(yǎng)殖、海??;第三類海水,工業(yè)用水、濱海風(fēng)景旅游;第四類海水,海洋開發(fā)作業(yè)。
(2)海水分類版塊設(shè)計(jì)
海水分類版塊只有一個界面,包括了“國家海水分類標(biāo)準(zhǔn)表”和該標(biāo)準(zhǔn)頒布的網(wǎng)址鏈接。具體界面圖如下:
圖2 App主界面
圖3 海水分類界面設(shè)計(jì)
(3)熱門海域版塊設(shè)計(jì)
熱門海域版塊的實(shí)現(xiàn)基于水質(zhì)查詢版塊,在熱門海域的數(shù)據(jù)表設(shè)計(jì)中添加了對海域點(diǎn)擊次數(shù)的統(tǒng)計(jì),使用參數(shù)total記錄點(diǎn)擊次數(shù),通過對海域點(diǎn)擊次數(shù)進(jìn)行降序排列[5],排在前面海域作為熱門海域顯示到相應(yīng)界面。
熱門海域界面采用GridView組件,最終顯示的信息有海域圖片和海域名,點(diǎn)擊海域名會獲取該海域的海水參數(shù)表[7]。具體界面以拱北口岸為例,截圖如圖4所示。
(4)知識庫版塊設(shè)計(jì)
知識庫作為一個獨(dú)立的版塊設(shè)計(jì)完成,主要目的是為了向用戶提供更多關(guān)于海洋方面的知識,讓用戶在選擇海洋活動前能方便查看該活動需要的注意事項(xiàng)。知識庫列表,包括了圖片和文章標(biāo)題,圖片的獲取通過服務(wù)器實(shí)現(xiàn);文章內(nèi)容,當(dāng)用戶點(diǎn)擊了標(biāo)題后,界面會切換到文章詳細(xì)內(nèi)容。
圖4 熱門海域界面設(shè)計(jì)
(5)海水參數(shù)的獲取
①海水模擬參數(shù)的更新
為了更加真實(shí)地模擬數(shù)據(jù)的變化,所以本次開發(fā)使用了MySQL數(shù)據(jù)庫和Tomcat服務(wù)器,設(shè)置了海水參數(shù)每單位時間進(jìn)行自動更新[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);
}
②模擬參數(shù)的獲取路徑
在該App中,每個海域可以查詢到8類海水參數(shù),數(shù)據(jù)庫MySQL定義了一個標(biāo)準(zhǔn)表tb_standard。tb_standard作為海水參數(shù)的標(biāo)準(zhǔn)表,里面定義了value1(最小值)、value2(最大值)兩個值作為每項(xiàng)海水參數(shù)的界限。tb_seaarea數(shù)據(jù)表,將會從tb_standard表中val?ue1-value2兩個界限值中,隨機(jī)獲取數(shù)據(jù),生成海水模擬參數(shù)表,如表1所示。
圖5 海水參數(shù)數(shù)據(jù)流圖
表1 海水模擬參數(shù)表tb_standard
圖6是表1自動生成的參數(shù),其中value中的“#”表示“換行”,status是對應(yīng)的海域名。
圖6 自動獲取參數(shù)截圖
Tomcat是一個輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。海洋環(huán)境監(jiān)測系統(tǒng)使用的Tomcat版本是Tomcat-7.0.69。
服務(wù)器主要是用servlet,整體為MVC的一個架構(gòu),即分三層,展示層(jsp),業(yè)務(wù)邏輯層(action)和數(shù)據(jù)訪問層(dao)[8]。服務(wù)器主要是通過json的方式與App進(jìn)行通信。
系統(tǒng)評價是指系統(tǒng)在正式運(yùn)行了一段時間之后,對它在功能上、技術(shù)上所進(jìn)行的審核評價。針對本系統(tǒng)的評價如下:(1)系統(tǒng)功能評價,根據(jù)本系統(tǒng)開發(fā)前所訂的目標(biāo),在系統(tǒng)完成后經(jīng)過測試運(yùn)行,該系統(tǒng)達(dá)到了預(yù)定的開發(fā)目標(biāo),在實(shí)際使用中的功能可以滿足用戶需求。(2)系統(tǒng)技術(shù)評價,本系統(tǒng)設(shè)計(jì)合理,功能達(dá)到了預(yù)期目標(biāo),且系統(tǒng)運(yùn)行后穩(wěn)定可靠,安全性高,具有實(shí)用性,大大提高了信訪辦公效率。
所有功能都可以實(shí)現(xiàn),系統(tǒng)運(yùn)行良好,但是還有很多不夠完善的地方,需要以后在使用的過程中繼續(xù)完善。
海洋環(huán)境監(jiān)測手機(jī)App可以實(shí)現(xiàn)海水參數(shù)在線查詢、海水分類標(biāo)準(zhǔn)國標(biāo)查詢、熱門海域搜索、海洋知識查閱、適合開展的活動推薦等功能,基本可以滿足目標(biāo)用戶對海水環(huán)境的認(rèn)知需求。目前,海水水質(zhì)數(shù)據(jù)是模擬數(shù)據(jù),未來與ZigBee無線傳感器水質(zhì)采集模塊配合,可以達(dá)到實(shí)時監(jiān)測特定海域海洋水質(zhì)參數(shù)的目的,這是以后工作的方向。
[1]王東華.Android開發(fā)實(shí)例大全[M].北京:電子工業(yè)出版社,2012.08.
[2]曾宏遠(yuǎn),崔荔蒙.從零開始學(xué)Android編程[M].北京:電子工業(yè)出版社,2012.
[3]金景文化.Photoshop智能手機(jī)APP界面設(shè)計(jì)全解析[M].北京:人民郵電出版社,2014.05.
[4]王巧伶.APP手機(jī)界面創(chuàng)意設(shè)計(jì)新手通[M].北京:機(jī)械工業(yè)出版社,2014.
[5]涂振宇,郭輝.基于Android的智能健康運(yùn)動App的設(shè)計(jì)與實(shí)現(xiàn)[J].考試與評價,2016(10).
[6]張曉諾.基于Android的智能家居環(huán)境監(jiān)測系統(tǒng)APP設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2015(2):211-213.
[7]喬一乘.基于Android+Java EE架構(gòu)的校園信息交互系統(tǒng)[D].吉林大學(xué),2012.
[8]楊寶林.基于JavaWeb的學(xué)生成績信息管理系統(tǒng)[D].吉林大學(xué),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會員,研究方向?yàn)槲锫?lián)網(wǎng)、Android開發(fā)等
2017-05-11
2017-07-26
國家自然科學(xué)基金(No.61402399)、湛江市財政資金科技專項(xiàng)(No.2014A01010)、湛江市科技攻關(guān)計(jì)劃(No.2014B01030)、嶺南師范學(xué)院自然科學(xué)(No.QL1411)
1007-1423(2017)22-0057-04
10.3969/j.issn.1007-1423.2017.22.015
Marine Environment;Water Parameters;Marine Activities