李海明,孔婷婷,祝麗臻,梁 丹*
( 浙江農(nóng)林大學(xué),浙江 臨安 311300 )
測量學(xué)實驗電子手薄APP開發(fā)
李海明,孔婷婷,祝麗臻,梁 丹*
( 浙江農(nóng)林大學(xué),浙江 臨安 311300 )
本文通針在實驗教學(xué)過程中出現(xiàn)實驗數(shù)據(jù)處理以及保存較為繁瑣復(fù)雜的問題,開發(fā)一種新的app來記錄測量學(xué)實驗當(dāng)中的數(shù)據(jù)處理以及數(shù)據(jù)記錄。主要對其app系統(tǒng)構(gòu)架與服務(wù)構(gòu)架進行了分析,設(shè)計了實驗數(shù)據(jù)測量系統(tǒng)的結(jié)構(gòu)與客戶端,介紹了用戶界面與數(shù)據(jù)存儲方式,對spring框架進行了搭建能夠?qū)崿F(xiàn)數(shù)據(jù)的存儲與查詢等功能。
實驗數(shù)據(jù);app;spring框架
隨著我國經(jīng)濟的持續(xù)發(fā)展,我國非常重視教育教學(xué),在提高我國教育水平的同時投入了大量的人力物力對教學(xué)設(shè)備進行升級改造。本文針對能夠?qū)崿F(xiàn)實驗數(shù)據(jù)無紙化存儲處理,實現(xiàn)測量數(shù)據(jù)電子記錄計算,幫助學(xué)生更好更快地完成測量任務(wù)。其研究意義在于:能夠?qū)崿F(xiàn)電子手簿,減少甚至取消紙質(zhì)版記錄表,更加低碳環(huán)保;幫助學(xué)生通過實踐深化理論知識的掌握;利于教師對學(xué)生實驗成績的考核[1]。
基于Android手機app的開發(fā),應(yīng)用了分層架構(gòu)的基本原理,其結(jié)構(gòu)原理如圖1所示。由圖可知,于Android手機中的app框架包括四層,其中四層按照從上到下的順序排列分別為:第一層為應(yīng)用程序、第二層為程序框架、第三層為系統(tǒng)庫、第四層為Linux內(nèi)核[2]。
第一層應(yīng)用程序:這一層屬于Android系統(tǒng)app開發(fā)的基礎(chǔ),所有的最基礎(chǔ)的信息都包含在里面,比如瀏覽器、通訊錄、郵箱、設(shè)置等基礎(chǔ)功能都在里面包含[3]。
第二層為程序框架:該程序框架是二次開發(fā)的的基礎(chǔ)工具包,進行二次開發(fā)的時候都會把這一層作為基礎(chǔ)。這一層的應(yīng)用框架包括資源管理系統(tǒng)、視頻與圖文管理系統(tǒng)、可視化管理系統(tǒng)、位置管理系統(tǒng)與XMPP服務(wù)管理系統(tǒng)等多個模塊。
第三層為系統(tǒng)庫:此系統(tǒng)庫包括九大模塊分別為媒體、圖層、WebKit、SQ-Lite、FreeType、OpenGLEState、SGL、SSL 和 libc模塊。這些模塊可以提供對系統(tǒng)的監(jiān)測與維護等方面的保護。
第四層為Linux內(nèi)核:在Android系統(tǒng)中Linux為主要服務(wù)器的核心,其保證了讀取數(shù)據(jù)與處理各項任務(wù)的能力,具有較好的口碑[4]。
系統(tǒng)的服務(wù)架構(gòu)采用的是當(dāng)前比較流行的spring+springMVC+Mybaties的框架,spring是開源的框架,其提供了整合其他框架的功能,本文可以很方便的添加其他開發(fā)框架融入到本文自己的系統(tǒng)中,spring的核心是控制反轉(zhuǎn)ioc,利用依賴注入DI實現(xiàn)代碼的解耦。簡化了應(yīng)用的開發(fā)和維護,而且利用其面向切面的編程可以后期給應(yīng)用添加前置通知和后置通知,升級和維護應(yīng)用程序。
對于一個完整的系統(tǒng),包含用戶交互,邏輯處理,數(shù)據(jù)存儲,一般情況下本文會對系統(tǒng)應(yīng)用進行分層處理。按照主流的分層結(jié)構(gòu),本文將系統(tǒng)分為視圖層,控制層,以及持久層。這樣做的好處是實現(xiàn)各個模塊之間代碼的強耦合性,方便系統(tǒng)的升級和維護。
視圖層:負責(zé)與用戶的交互,以及數(shù)據(jù)的顯示,良好的用戶交互界面是評價一個軟件的重要參數(shù),也是提升用戶體驗的最重要的項目。
控制層:控制層負責(zé)處理業(yè)務(wù)邏輯,用戶在前端輸入相應(yīng)的數(shù)據(jù)或者執(zhí)行相應(yīng)的操作,想服務(wù)器發(fā)送請求,通過控制層,本文接受用戶的請求并分發(fā)請求,調(diào)用相應(yīng)的控制器對相應(yīng)的業(yè)務(wù)邏輯進行處理,返回給前端需要顯示的數(shù)據(jù)以及信息。
持久層:負責(zé)數(shù)據(jù)的存儲,數(shù)據(jù)的安全性以及持久性是本文重點考慮的,在這里采用數(shù)據(jù)庫存儲數(shù)據(jù)。各層的結(jié)構(gòu)圖如下:
3.2.1 用戶界面
對于用戶而言,對于程序的源代碼是不可知的,本文應(yīng)用軟件絕大多數(shù)都是在和軟件的交互界面打交道,而本文開發(fā)的電子手薄app是基于安卓的,而在安卓中Activity是用戶接口程序,所有的Activity都要和用戶打交道,它提供給用戶只是一個交互式的接口功能,而Activity自身是沒有界面的,所以它會創(chuàng)建一個窗口,通過setContentView(View)接口來加載UI界面。Activity可以全屏顯示,也可以通過更改主題使得其窗口化。
3.2.2 數(shù)據(jù)存儲
在實際應(yīng)用中,本文需要對數(shù)據(jù)進行vch長期的保存和處理,所以本文利用數(shù)據(jù)庫來管理本文的數(shù)據(jù),現(xiàn)在主流的軟件都在應(yīng)用Oracle數(shù)據(jù)庫或者Mysql來存儲數(shù)據(jù),Oracle適合大型公司,并且商用是需要收費的,而mysql適合中小企業(yè),它是免費的,本文在服務(wù)器上需要配置本文的數(shù)據(jù)庫。對于本文的數(shù)據(jù),本文首先需要對需求分析進行數(shù)據(jù)庫建模。建模軟件用的是power designer,對數(shù)據(jù)庫中的表進行管理。
在服務(wù)端本文采用的是spring框架來搭建服務(wù)端的整體運行框架,需要搭建框架的運行環(huán)境,spring架構(gòu)配置代碼如圖2所示。
本文經(jīng)過對設(shè)計的app進行測試,app可以記錄實驗數(shù)據(jù),并且對數(shù)據(jù)可以進行相應(yīng)的處理,處理之后存儲在數(shù)據(jù)庫,方便隨時查看,比起傳統(tǒng)的紙質(zhì)報告有以下優(yōu)點:(1)數(shù)據(jù)可以篩選查看,結(jié)果更清晰明了;(2)實現(xiàn)了無紙質(zhì)化,節(jié)能環(huán)保。(3)利于周期數(shù)據(jù)保存,對于實驗周期長的數(shù)據(jù)記錄,提供了方便的查詢方式。經(jīng)過驗證,本文的需求已經(jīng)實現(xiàn),并且達到了相應(yīng)的要求。
[1]沈美,于翔.基于SQLite數(shù)據(jù)庫的安卓日程管理系統(tǒng)的設(shè)計與開發(fā)[J].電子技術(shù)與軟件工程,2014(23):216-217.
[2]李培林.安卓系統(tǒng)的應(yīng)用及發(fā)展趨勢展望[J].計算機光盤軟件與應(yīng)用,2012(18):161-162.
[3]楊瀟亮.基于安卓操作系統(tǒng)的應(yīng)用軟件開發(fā)[J].電子制作,2014(19):45-46.
[4]何璇.基于Java語言的安卓手機軟件開發(fā)[J].計算機光盤軟件與應(yīng)用,2014(08):67-68.
10.16640/j.cnki.37-1222/t.2018.01.107
浙江農(nóng)林大學(xué)學(xué)生科研訓(xùn)練項目(112-2013200007)
李海明(1994-),男,本科,研究方向:地理信息學(xué)研究。
*為通訊作者