版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Android的農(nóng)場(chǎng)作物信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)THEINFORMATIONMANAGEMENTSYSTEMOFFARMCROPBASEDONANDROID 目錄摘要 基于Android的農(nóng)場(chǎng)作物信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著計(jì)算機(jī)行業(yè)的蓬勃發(fā)展,各行各業(yè)都走向了信息化作業(yè),但是在傳統(tǒng)農(nóng)場(chǎng)中,信息的收集和處理一直十分低效,傳統(tǒng)農(nóng)業(yè)中農(nóng)場(chǎng)對(duì)于作物選擇只能依靠往年市場(chǎng)與農(nóng)場(chǎng)自身經(jīng)驗(yàn),缺乏系統(tǒng)的分析。本文針對(duì)這種現(xiàn)象,在Android平臺(tái)使用JAVA語(yǔ)言進(jìn)行開(kāi)發(fā),以SQLite設(shè)計(jì)數(shù)據(jù)庫(kù),將農(nóng)場(chǎng)作物信息的生產(chǎn)管理和財(cái)務(wù)管理結(jié)合在一起,設(shè)計(jì)了一款農(nóng)場(chǎng)作物信息綜合管理系統(tǒng)-悅農(nóng),系統(tǒng)實(shí)現(xiàn)了登錄、作物信息管理、作物種植推薦、員工信息管理等功能。使用者可在本系統(tǒng)登錄后,查看不同種類作物的生長(zhǎng)周期,預(yù)計(jì)產(chǎn)量,財(cái)務(wù)信息和農(nóng)場(chǎng)人員管理信息等。從而更好的了解和掌握作物的基本情況,記錄作物的關(guān)鍵信息。讓使用者在使用本系統(tǒng)后可以隨時(shí)隨地查看農(nóng)場(chǎng)作物信息情況,系統(tǒng)的實(shí)現(xiàn)能幫助用戶掌握作物規(guī)律,提高生產(chǎn)效率。關(guān)鍵詞:Android;管理系統(tǒng);農(nóng)場(chǎng);作物TheInformationManagementSystemofFarmCropsBasedonAndroidAbstract:Withthevigorousdevelopmentofthecomputerindustry,allwalksoflifearemovingtowardsinformatizationoperations,butintraditionalfarms,thecollectionandprocessingofinformationhasbeenveryinefficient.Farmsintraditionalagriculturecanonlyrelyonthemarketandthefarm’sownexperienceforcropselectioninpreviousyears,Lackofsystematicanalysis.Facingtothethisphenomenon,Chinesefarmswasinvestigated.TheInformationManagementSystemofFarmCropswasdesigned,YueNongAPPYueNongAPPwasdevelopedwithAndroidstudio.Thispaperdesignsandimplementsthecropinformationmanagementfunction.Thesystemiscomposedofclientandserver.Keywords:Android;Managementsystem;Farm;Crop1前言我國(guó)自古以來(lái)便是一個(gè)農(nóng)業(yè)大國(guó),據(jù)國(guó)家統(tǒng)計(jì)局網(wǎng)站數(shù)據(jù)顯示我國(guó)農(nóng)作物總播種面積從2000年的156299.85千公頃飛速增長(zhǎng)到2019年的166829.28千公頃[1],種植面積位居世界第一,人工信息管理已經(jīng)無(wú)法滿足如此龐大的種植面積的需求?,F(xiàn)如今中小型農(nóng)戶與各式農(nóng)場(chǎng)并存的現(xiàn)代中國(guó)農(nóng)業(yè),都缺乏高效,便捷的農(nóng)場(chǎng)信息收集和管理手段,使得管理的人力物力資源消耗較多。將目光放眼國(guó)外,農(nóng)場(chǎng)管理系統(tǒng)在各發(fā)達(dá)國(guó)家中得到了很好的反響。如丹麥在早年間推出的自愿農(nóng)業(yè)咨詢管理決策系統(tǒng)受到了很多農(nóng)場(chǎng)主的喜愛(ài),在系統(tǒng)帶來(lái)的利益下,農(nóng)場(chǎng)主紛紛自愿提供信息。整個(gè)丹麥的農(nóng)業(yè)交流得到了飛速的拓展,在丹麥出口的產(chǎn)品中,有25%是農(nóng)業(yè)產(chǎn)品,農(nóng)產(chǎn)品出口率已達(dá)到67%。丹麥農(nóng)業(yè)除了自給自足外,還可以養(yǎng)活世界1500萬(wàn)人口,而每個(gè)農(nóng)場(chǎng)生產(chǎn)的食物可以滿足350人需要,每個(gè)農(nóng)場(chǎng)工人生產(chǎn)的食品可以滿足230人需求[2]。不僅滿足了內(nèi)需,還向周邊國(guó)家出口了大批農(nóng)作物。相較于國(guó)外,國(guó)內(nèi)對(duì)于信息化農(nóng)業(yè)管理相對(duì)落后,市場(chǎng)上農(nóng)業(yè)相關(guān)的計(jì)算機(jī)技術(shù)鳳毛麟角。農(nóng)場(chǎng)作物管理系統(tǒng)可以減少當(dāng)前農(nóng)場(chǎng)紙張化信息記錄導(dǎo)致的資源浪費(fèi)情況。同時(shí),計(jì)算機(jī)獨(dú)有的快捷存儲(chǔ)以及迅速查詢功能有效提高了繁雜的農(nóng)場(chǎng)作物信息管理的效率,提高了作物信息管理的精確度。信息化的記錄模式,可以加速農(nóng)產(chǎn)品的流通,促進(jìn)農(nóng)產(chǎn)品銷售從而提高農(nóng)民收入。2系統(tǒng)開(kāi)發(fā)關(guān)鍵技術(shù)介紹2.1系統(tǒng)開(kāi)發(fā)語(yǔ)言及編譯工具JAVA:JAVA語(yǔ)言是一種面向?qū)ο筮^(guò)程的語(yǔ)言,且可以撰寫(xiě)跨平臺(tái)APP客戶端的程序開(kāi)發(fā)語(yǔ)言。用JAVA開(kāi)發(fā)手機(jī)客戶端軟件有很強(qiáng)的通用性和平臺(tái)移植性,JAVA手機(jī)APP的安全性和高效性也較為突出,所以,JAVA語(yǔ)言在手機(jī)客戶端應(yīng)用開(kāi)發(fā)方面應(yīng)用廣泛。AndroidStudio:AndroidStudio是谷歌推出的一個(gè)Android集成開(kāi)發(fā)工具,基于IntelliJIDEA,類似于EclipseADT,AndroidStudio提供了集成的Android開(kāi)發(fā)工具用于開(kāi)發(fā)和調(diào)試。MyEclipse:MyEclipse的最大實(shí)用價(jià)值就是其中包含了發(fā)布包中的大量的工具。如CCS/JS/HTML/XML的編輯器,幫助創(chuàng)建EJB和Struts項(xiàng)目的向?qū)Рa(chǎn)生項(xiàng)目的所有主要的組件如action/sessionbean/form等。還包含編輯Hibernate配置文件和執(zhí)行SQL語(yǔ)句的工具。2.2系統(tǒng)架構(gòu)框架(1)MVP設(shè)計(jì)框架:“Model——Presenter——View”,應(yīng)用在Android中可以實(shí)現(xiàn)Activity和業(yè)務(wù)邏輯的解耦,簡(jiǎn)化Activity的規(guī)模。MVP模式中View可以進(jìn)行組件化。在MVP當(dāng)中,View不依賴Model。這樣就可以讓View從特定的業(yè)務(wù)場(chǎng)景中脫離出來(lái),可以說(shuō)View可以做到對(duì)業(yè)務(wù)完全無(wú)知。它只需要提供一系列接口提供給上層操作。這樣就可以做到高度可復(fù)用的View組件。(2)MVC框架:MVC可以實(shí)現(xiàn)功能模塊和顯示模塊的分離,同時(shí)它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性。有效減少了多余的代碼量。(3)SpringBoot:SpringBoot設(shè)計(jì)目的是在建立新的Spring應(yīng)用時(shí),使其搭建以及開(kāi)發(fā)過(guò)程更加簡(jiǎn)單便捷。該框架使用特殊的方式使配置進(jìn)行,因此開(kāi)發(fā)人員省去了定義樣板化配置的步驟,減輕工作量。2.3數(shù)據(jù)庫(kù)技術(shù)Androidstudio中自帶的SQLite類的GrennDao操作方法可以實(shí)現(xiàn)客戶端的微量存儲(chǔ)以及信息查詢。SQLite:SQLite是一個(gè)被低估的數(shù)據(jù)庫(kù)。其實(shí),它是一個(gè)非??煽康臄?shù)據(jù)庫(kù)類型,功能達(dá)到可以處理TB級(jí)別的數(shù)據(jù),缺點(diǎn)在于沒(méi)有網(wǎng)絡(luò)層,所以不是一個(gè)傳統(tǒng)意義上的服務(wù)器。因?yàn)檫@個(gè)原因,不適用于某些場(chǎng)合,但仍然可以是大多數(shù)場(chǎng)合的選擇。GreenDao:是一個(gè)通過(guò)注解操作數(shù)據(jù)庫(kù)的第三方庫(kù),通過(guò)反射機(jī)制給實(shí)體類生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作類。有以下優(yōu)點(diǎn):(1)性能MAX,幾乎是Android平臺(tái)上最快速的ORM(ObjectRelationalMapping,對(duì)象關(guān)系映射)框架。(2)API(ApplicationProgrammingInterface,\t"C:/Users/Ccc/Desktop/201641842211孫威/_blank"應(yīng)用程序接口)簡(jiǎn)單便捷,使用容易。(3)內(nèi)存開(kāi)銷小。(4)數(shù)據(jù)庫(kù)加密支持。對(duì)于服務(wù)端,MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)工具是大眾化的選擇。MySQL有以下特點(diǎn):(1)它的核心是完全多線程,可以存在多處理器。(2)列類型多樣化:支持1、2、3、4、和8字節(jié)長(zhǎng)度自有符號(hào)/無(wú)符號(hào)整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和ENUM類型。(3)MySQL支持不同的工作平臺(tái),如:C、C++、JAVA、API、Python等。3系統(tǒng)概要設(shè)計(jì)3.1需求分析(1)系統(tǒng)需求說(shuō)明:本系統(tǒng)面向大面積種植的農(nóng)場(chǎng),通過(guò)管理信息數(shù)據(jù)化,讓農(nóng)場(chǎng)作物信息管理精確有效,能夠有效促進(jìn)農(nóng)產(chǎn)品流通。農(nóng)場(chǎng)向往種植推薦功能,幫助農(nóng)場(chǎng)進(jìn)行作物種植選擇,提高經(jīng)濟(jì)效益和農(nóng)民收入。與市面上現(xiàn)有的管理系統(tǒng)不同,本系統(tǒng)基于Android平臺(tái)開(kāi)發(fā),有著時(shí)間上、空間上的便捷性,設(shè)備需求簡(jiǎn)單以及上手難度低等優(yōu)點(diǎn)。(2)系統(tǒng)可行性分析:目前市場(chǎng)上,基于Android所開(kāi)發(fā)出來(lái)的APP管理系統(tǒng)眾多,常見(jiàn)的類型有公司考勤管理系統(tǒng),校園學(xué)習(xí)管理系統(tǒng),物業(yè)管理系統(tǒng)等。其原因,除開(kāi)它不弱于PC(Personalcomputer,私人電腦)端的UI(UserInterface,私人電腦)設(shè)計(jì)效果,其強(qiáng)大的跨空間應(yīng)用能力同時(shí)也獲得了不少軟件開(kāi)發(fā)者的青睞,與此同時(shí),Android支持的終端設(shè)備智能手機(jī)全面普及,其與日俱增的開(kāi)發(fā)功能,簡(jiǎn)單易學(xué)操作手法和無(wú)與倫比的便攜性,可以充分滿足這類型管理系統(tǒng)的需求。對(duì)于APP開(kāi)發(fā)中出現(xiàn)的技術(shù)問(wèn)題,還可通過(guò)Android公司官方手冊(cè)、眾多研究書(shū)籍、各大論壇等途徑中進(jìn)行求教學(xué)習(xí),從而得到解決。(3)系統(tǒng)資源說(shuō)明:以下是本系統(tǒng)需要的設(shè)備要求:智能手機(jī)或PC端模擬器,要求使用Android系統(tǒng)。操作系統(tǒng):Android7.0版本或以上。CPU(CentralProcessingUnit,計(jì)算機(jī)中央處理器):至少支持驍龍200(MSM8x25Q)以及其性能以上的CPU;2012年以后生產(chǎn)的CPU基本均可。運(yùn)行內(nèi)存:運(yùn)行內(nèi)存需要2GB及以上均可。DirectX版本:8以上。3.2系統(tǒng)架構(gòu)設(shè)計(jì)3.2.1總體架構(gòu)設(shè)計(jì)本系統(tǒng)總體架構(gòu)設(shè)計(jì)有兩個(gè)要點(diǎn),分別是設(shè)計(jì)API,架構(gòu)分層。設(shè)計(jì)API第一個(gè)需要考慮的是API的安全機(jī)制,解決方案是采用HTTPS。其次就是接口協(xié)議標(biāo)準(zhǔn)化,API的數(shù)據(jù)采用JSON格式進(jìn)行傳輸,JSON的值只有六種數(shù)據(jù)類型,在設(shè)計(jì)時(shí)需要考慮好。接下來(lái)是架構(gòu)分層,APP的核心就是數(shù)據(jù),那么,從APP對(duì)數(shù)據(jù)處理作用劃分,最簡(jiǎn)單易懂的劃分:數(shù)據(jù)管理、數(shù)據(jù)加工、數(shù)據(jù)展示。對(duì)應(yīng)了三層架構(gòu):數(shù)據(jù)層、業(yè)務(wù)層、展示層。數(shù)據(jù)層的工作是數(shù)據(jù)管理,主要功能是進(jìn)行API的封裝,同時(shí)把數(shù)據(jù)結(jié)果傳輸給上一層,并且會(huì)進(jìn)行數(shù)據(jù)緩存。業(yè)務(wù)層則是數(shù)據(jù)加工者,工作就是從數(shù)據(jù)層獲取數(shù)據(jù),然后經(jīng)過(guò)業(yè)務(wù)邏輯處理轉(zhuǎn)化成展示層需要的數(shù)據(jù)。業(yè)務(wù)層處于數(shù)據(jù)層和展示層之間,擁有承上啟下的作用。展示層作為數(shù)據(jù)展示者,主要負(fù)責(zé)數(shù)據(jù)展示工作。3.2.2客戶端設(shè)計(jì)對(duì)于客戶端,本系統(tǒng)的客戶端架構(gòu)使用MVP設(shè)計(jì)風(fēng)格MVP即“Model——View——Presenter”。View:接口,聲明所有的View相關(guān)的操作,包括GetValue、SetValue、Progress、Navigator等。MVP思想的核心,通過(guò)提取View接口,實(shí)現(xiàn)了Activity和Presenter的解耦。Activity:View接口的實(shí)現(xiàn),初始化界面,初始化View中的控件,調(diào)用Presenter完成業(yè)務(wù)邏輯Model:涉及到的數(shù)據(jù)對(duì)象,以及對(duì)數(shù)據(jù)的操作。Presenter:即為業(yè)務(wù)邏輯的實(shí)現(xiàn)。在本地存儲(chǔ)方面使用了GreenDao工具操作。在展示層方面,本系統(tǒng)使用Android中的ViewPager+Fragment進(jìn)行信息展示,套用智能刷新框架SmartRefreshLayout實(shí)現(xiàn)下拉刷新功能。用戶通過(guò)手指滑動(dòng)界面,點(diǎn)擊跳轉(zhuǎn),下拉刷新完成交互。出于管理系統(tǒng)的保密需要,系統(tǒng)設(shè)計(jì)了一個(gè)登錄系統(tǒng)來(lái)驗(yàn)證用戶登錄權(quán)限和使用權(quán)限。然后,針對(duì)農(nóng)場(chǎng)樣式,設(shè)置了收成信息、種植信息、財(cái)務(wù)管理等三大主要模塊,分別對(duì)應(yīng)農(nóng)場(chǎng)的生產(chǎn)管理與財(cái)務(wù)管理,前兩個(gè)模塊包含了農(nóng)場(chǎng)作物管理信息,后面的財(cái)務(wù)管理模塊包含了農(nóng)場(chǎng)作物的財(cái)務(wù)信息以及農(nóng)場(chǎng)員工的信息。農(nóng)場(chǎng)作物信息在傳統(tǒng)的紙張式記錄中容易出現(xiàn)遺漏和錯(cuò)誤,將其數(shù)據(jù)化十分有必要。參考中國(guó)農(nóng)業(yè)網(wǎng),農(nóng)作物以使用價(jià)值分類可分為糧食作物、經(jīng)濟(jì)作物兩大類。而本系統(tǒng)更加細(xì)化的通過(guò)作物具體類型分為六大類。糧食作物,油料作物,蔬菜作物,果類作物,飼料作物,藥用作物。如圖1。圖1模塊功能設(shè)計(jì)Fig1messagedesign
3.2.3服務(wù)端設(shè)計(jì)(1)本系統(tǒng)基于JAVA語(yǔ)言結(jié)合了Tomcat、MyE以及MySQL,參照MVC模式開(kāi)發(fā)了服務(wù)器端。MVC模式在本系統(tǒng)服務(wù)端網(wǎng)頁(yè)當(dāng)中具體如下:M即Model模型是指模型表示業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫(xiě)一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。V即View視圖即為用戶可視界面,同時(shí)可以與之交互。例如說(shuō)網(wǎng)頁(yè)界面中由html元素組成的類型,MVC模式帶來(lái)的好處之一是在應(yīng)用程序出現(xiàn)很多形式各異的視圖時(shí),他能為其進(jìn)行處理。對(duì)于視圖來(lái)說(shuō),并未有真正的處理過(guò)程,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。C即Controller控制器是指接收到用戶的輸入信息后,控制器調(diào)用模型以及視圖并完成用戶所發(fā)出的需求,從根本來(lái)說(shuō),控制器決定調(diào)用的Model的類型,控制操作的執(zhí)行來(lái)為視圖準(zhǔn)備需求的數(shù)據(jù)。架構(gòu)如圖2。圖2MVC架構(gòu)Fig2MVCarchitecture(2)服務(wù)端數(shù)據(jù)庫(kù)設(shè)計(jì)農(nóng)場(chǎng)作物信息管理系統(tǒng)需要數(shù)個(gè)功能,在MVC模式下每一個(gè)功能都對(duì)應(yīng)了一個(gè)JAVABean。JAVABean直接操作的是數(shù)據(jù)庫(kù)。因而針對(duì)系統(tǒng)需求設(shè)計(jì)的數(shù)據(jù)庫(kù)如圖3。
圖3數(shù)據(jù)庫(kù)ER圖Fig3DatabaseERdiagram3.3系統(tǒng)開(kāi)發(fā)環(huán)境系統(tǒng)開(kāi)發(fā)的硬件軟件環(huán)境如下開(kāi)發(fā)軟件:MyEclipse,Androidstudio開(kāi)發(fā)語(yǔ)言:JAVA、XML、Html、Web服務(wù)器:Tomcat7.0數(shù)據(jù)庫(kù):MySQL操作系統(tǒng):Windows10專業(yè)版運(yùn)行內(nèi)存:8GB顯卡:GTX960MCPU:I7-6700HQ硬盤(pán):100G固態(tài)硬盤(pán)4系統(tǒng)功能設(shè)計(jì)及實(shí)現(xiàn)4.1系統(tǒng)登錄為保證系統(tǒng)數(shù)據(jù)一定的安全性,為系統(tǒng)設(shè)計(jì)了登錄與注冊(cè)功能。登錄是為了解決用戶與系統(tǒng)之間的“告知與識(shí)別”;比如在路上碰到一個(gè)人,他的臉傳遞信息到你的腦中,即為告知。腦就會(huì)調(diào)動(dòng)與之相關(guān)的信息。于是你就知道了這個(gè)人的名字,性別,信息等。實(shí)際上登錄的過(guò)程與之相同,把現(xiàn)實(shí)的人們與虛擬的人相互匹配。物理上現(xiàn)實(shí)存在的人通過(guò)登錄這個(gè)行為“告知”系統(tǒng)與之對(duì)應(yīng)的虛擬的人。通過(guò)這一行為系統(tǒng)就可以從后臺(tái)調(diào)用精確的信息展示。注冊(cè)則是為虛擬的人建立他的信息。本系統(tǒng)的登錄流程如圖4。圖4登錄流程圖Fig4Loginflowchart4.2系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1種植信息表本系統(tǒng)中的種植信息主要包括六種元素,分別是作物預(yù)計(jì)播種面積(畝),成熟制(一年一熟,一年兩熟,一年三熟),成熟周期(天),實(shí)際收成量(KG),作物虧損量(KG),作物類型。用戶可進(jìn)行信息管理。在數(shù)據(jù)庫(kù)中對(duì)應(yīng)關(guān)系如表1。
表1種植信息表Table1plantinginformationtable數(shù)據(jù)名稱列名允許空類型預(yù)計(jì)播種面積seedingArea√整數(shù)(最大10位)成熟制institutionCrop×字符(最長(zhǎng)40位)成熟周期cycleCrop×整數(shù)(最大10位)實(shí)際收成量gainCrop√整數(shù)(最大10位)作物虧損量lossCrop√整數(shù)(最大10位)作物類型typeCrop×字符(最長(zhǎng)40位)4.2.2收成信息表本系統(tǒng)中的收成信息也是六種元素,分別是種植密度(CM*CM),實(shí)際播種面積(畝),畝產(chǎn)量(KG),預(yù)計(jì)收成量(KG),種子儲(chǔ)量(KG),作物類型。用戶可進(jìn)行信息管理。如表2。表2收成信息表Table2harvestinformationtable數(shù)據(jù)名稱列名允許空類型種植密度growDensity×整數(shù)(最大10位)實(shí)際播種面積seededArea√整數(shù)(最大10位)畝產(chǎn)量muCrop×整數(shù)(最大10位)預(yù)計(jì)收成量predictCrop√整數(shù)(最大10位)種子儲(chǔ)量seedReserves√浮點(diǎn)數(shù)(最大7位,小數(shù)點(diǎn)后2位)作物類型typeCrop×字符(最長(zhǎng)40位)4.2.3財(cái)務(wù)信息財(cái)務(wù)信息模塊包含兩個(gè)表,分別是關(guān)于作物的收成評(píng)級(jí)和關(guān)于員工的財(cái)務(wù)信息。用戶可進(jìn)行信息管理。作物財(cái)務(wù)信息有五種元素,種子價(jià)格(元/斤),成品價(jià)格(元/斤),利潤(rùn)率(百分?jǐn)?shù)),種植補(bǔ)貼(元/畝),作物類型。如表3
表3收成評(píng)級(jí)表Table3harvestratingtable數(shù)據(jù)名稱列名允許空種子價(jià)格seedPrice×浮點(diǎn)數(shù)(最大7位,小數(shù)點(diǎn)后2位)成品價(jià)格priceCrop×浮點(diǎn)數(shù)(最大7位,小數(shù)點(diǎn)后2位)利潤(rùn)率profitCropo×浮點(diǎn)數(shù)(最大7位,小數(shù)點(diǎn)后2位)種植政策補(bǔ)貼subsidyCrop√整數(shù)(最大10位)作物類型typeCrop×字符(最長(zhǎng)40位)員工財(cái)務(wù)信息有五種元素,性別,可管理作物類型,能力評(píng)價(jià),薪資(元/月),雇傭性質(zhì)。如表4。表4員工信息表Table4employeeinformationtable數(shù)據(jù)名稱列名允許空性別sexMan×字符(最長(zhǎng)10位)管理作物類型typeCrop×字符(最長(zhǎng)40位)能力評(píng)價(jià)abilityMan×字符(最長(zhǎng)1位)薪資salaryMan×整數(shù)(最大10位)雇傭性質(zhì)propertiesMan×整數(shù)(最大10位)4.3作物信息管理功能本系統(tǒng)的作物信息管理功能通GreenDao操作數(shù)據(jù)庫(kù)實(shí)現(xiàn),可實(shí)現(xiàn)作物財(cái)務(wù)信息,收成信息,財(cái)務(wù)信息,員工信息的增刪改查。實(shí)現(xiàn)步驟如下:首先,新建GreenDaoGenerator模塊,并配置castielgreendaolb工程的build.gradle,添加依賴。接著,編寫(xiě)CastielGreenDao類,注意:我們的Java工程只有一個(gè)類,它的內(nèi)容決定了「GreenDaoGenerator」的輸出,你可以在這個(gè)類中通過(guò)對(duì)象、關(guān)系等創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。操作成功后,執(zhí)行g(shù)enerator工程,即可生成DAO文件數(shù)據(jù)庫(kù)。接下來(lái)是核心初始化代碼,在自己的Application中先創(chuàng)建了一個(gè)SQLiteOpenHelper并創(chuàng)建連接到一個(gè)具體數(shù)據(jù)庫(kù);再根據(jù)具體的datebase創(chuàng)建一個(gè)master對(duì)象用于;最后通過(guò)master創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)的會(huì)話操作。代碼如下:helper=newDaoMaster.DevOpenHelper(this,"notes-db",null);db=helper.getWritableDatabase();daoMaster=newDaoMaster(db);daoSession=daoMaster.newSession();noteDao=daoSession.getNoteDao();查詢操作:list=(ListView)findViewById(R.id.dao_list);btnAdd=(Button)findViewById(R.id.btn_add);btnQurey=(Button)findViewById(R.id.btn_query);etQureyName=(EditText)findViewById(R.id.edit_query);listF=getFinanceDao().loadAll();//查詢?nèi)繑?shù)據(jù)操作刪除操作:b_modify=(Button)view.findViewById(R.id.btn_modify);b_modify.setOnClickListener(newButton.OnClickListener(){publicvoidonClick(Viewv){dialogModify(curBean);dataDialog.dismiss();}});b_del=(Button)view.findViewById(R.id.btn_del);b_del.setOnClickListener(newButton.OnClickListener(){publicvoidonClick(Viewv){//根據(jù)Id刪除對(duì)應(yīng)數(shù)據(jù)getFinanceDao().deleteByKey(curBean.getId());studentAdapter.setData(getFinaceDao().loadAll());dataDialog.dismiss();}});dataDialog.setContentView(view);dataDialog.show();}增加操作:protectedvoiddialogAdd(){finalDialogdataDialog=newDialog(CastielActivity.this,R.style.myDialogTheme);LayoutInflatercurInfnfalater=LayoutInflater.from(this);Viewview=curInfnfalater.inflate(R.layout.my_dialog,null);Buttonb_ok,b_cancle;finalEditTextetName,etSex,etClass,etAge;seedPrice=(EditText)view.findViewById(R.id.edit_name);priceCrop=(EditText)view.findViewById(R.id.edit_sex);profitCropo=(EditText)view.findViewById(R.id.edit_class);subsidyCrop=(EditText)view.findViewById(R.id.edit_age);4.4懸浮窗設(shè)計(jì)近年來(lái),使用懸浮窗功能的APP越來(lái)越多,懸浮窗的便捷性可見(jiàn)一斑。懸浮窗是手機(jī)屏幕上顯示的一個(gè)小插件,用戶不用進(jìn)入APP,在手機(jī)桌面即可通過(guò)點(diǎn)擊懸浮窗看到APP傳遞的信息。通過(guò)利潤(rùn)率以及作物一年的生長(zhǎng)周期,即為一年可種植幾次,得出一年利潤(rùn)高的作物,系統(tǒng)會(huì)推薦各個(gè)種類種植的作物,如糧食作物小麥利潤(rùn)率更高,但是水稻一年兩熟,系統(tǒng)會(huì)推薦水稻。在本系統(tǒng)中,設(shè)計(jì)了一個(gè)懸浮窗來(lái)進(jìn)入種植推薦界面,用戶在手機(jī)桌面即可隨時(shí)點(diǎn)擊懸浮窗進(jìn)入桌面,能夠隨時(shí)隨地快捷的進(jìn)入界面進(jìn)行查閱管理,非常的方便。效果如圖5。圖5懸浮窗種植推薦界面Fig6Recommendedinterfaceforfloatingwindowplanting本系統(tǒng)的懸浮窗點(diǎn)擊后會(huì)呈現(xiàn)種植方案推薦,通過(guò)定位用戶所在地,推薦適宜當(dāng)?shù)厍沂找胬硐氲姆N植作物。以下是懸浮窗實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn)步驟:它通過(guò)自定義View實(shí)現(xiàn),View是Android中WINDOW抽象類管理的,View是Android中呈現(xiàn)視圖的方式,但是View不能單獨(dú)存在,必須附著在Window這個(gè)抽象的概念上。設(shè)計(jì)步驟如下:獲取WindowManager。具體方法即以下陳述:wManager=(WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);在Activity和此Service中都可以直接使用這個(gè)方法來(lái)獲得WindowManager。其getSystemService返回的是一個(gè)WindowManagerImpl對(duì)象,這是一個(gè)存在于本地進(jìn)程中的一個(gè)對(duì)象。而事實(shí)是WindowManagerImpl繼承了WindowManager,而WindowManger繼承ViewManager。(2)設(shè)置WindowManager.LayoutParams類。LayoutParams里面存放著的是窗口的屬性,通過(guò)這個(gè)變量,可以為窗口賦予各式的屬性。也可以改變它的屬性值,來(lái)進(jìn)行各種各樣的操作,像懸浮窗口的拖動(dòng),拉伸等操作。4.5后臺(tái)音樂(lè)設(shè)計(jì)本系統(tǒng)開(kāi)發(fā)了后臺(tái)音樂(lè)功能,要實(shí)現(xiàn)音樂(lè)的播放,需要在界面中放置兩個(gè)按鈕,用來(lái)控制音樂(lè)的播放和停止,通過(guò)使用startService和stopService來(lái)實(shí)現(xiàn)這兩個(gè)功能,Service是一個(gè)生命周期長(zhǎng)且沒(méi)有用戶界面的程序,當(dāng)程序在各個(gè)Activity中切換的時(shí)候,我們可以利用Service來(lái)實(shí)現(xiàn)背景音樂(lè)的播放,即使當(dāng)程序退出到后臺(tái)的時(shí)候,音樂(lè)仍然在播放。同時(shí),用戶可以拖動(dòng)進(jìn)度條來(lái)控制后臺(tái)音樂(lè),該界面同時(shí)還有關(guān)閉,暫停和開(kāi)啟功能按鈕。實(shí)現(xiàn)思路是通過(guò)SevericeConnect來(lái)實(shí)現(xiàn)對(duì)audio.java的mediaplay的調(diào)用再在Binder里建立player.的各類方法使得可以在Mainactivity里使用。如圖6。進(jìn)度條代碼如下:publicvoidUpdate(){intcurrentTime=controller.getCurrentPosition();//獲取當(dāng)前進(jìn)度seekBar.setProgress(currentTime);//設(shè)置進(jìn)度條textView.setText(formatTime(currentTime));//設(shè)置顯示時(shí)間handler.sendEmptyMessageDelayed(0,500);//每隔500ms更新一次};publicvoidonStopTrackingTouch(SeekBarseekBar){//拖動(dòng)進(jìn)度條實(shí)時(shí)監(jiān)控intprogress=seekBar.getProgress();//獲取當(dāng)前進(jìn)度條位置seekBar.setProgress(progress);//更新進(jìn)度條controller.setProgress(progress);//更新音樂(lè)進(jìn)度
圖6后臺(tái)音樂(lè)界面Fig6Backgroundmusicinterface4.6UI設(shè)計(jì)UI即為UserInterface的縮寫(xiě),譯為用戶界面,根據(jù)功能需要,有展示信息、操控界面和彈出窗口等功能。對(duì)于整體風(fēng)格,考慮到本系統(tǒng)是面向農(nóng)場(chǎng)工作者,采用了藍(lán)色作為背景的簡(jiǎn)約風(fēng)格。在這個(gè)基礎(chǔ)上需要使得界面盡可能的簡(jiǎn)單易懂。系統(tǒng)的界面效果設(shè)計(jì),以商務(wù)的簡(jiǎn)約風(fēng)為主體,讓本系統(tǒng)的風(fēng)格趨向于和諧統(tǒng)一,文字部分采用了顏色較為顯眼的自發(fā)光,意在用明顯的顏色差異,讓使用者能清楚的瀏覽信息。界面顯示效果如圖7、8、9。圖7開(kāi)始界面Fig7Startscree圖8收成信息Fig8Harvestinformation圖9財(cái)務(wù)界面Fig9Financialinterface4.7關(guān)鍵代碼實(shí)現(xiàn)4.7.1GreenDao數(shù)據(jù)庫(kù)的建立DaoMaster::DaoMaster保存數(shù)據(jù)庫(kù)對(duì)象(SQLiteDatabase)并管理特定模式的DAO類(而不是對(duì)象)。它有靜態(tài)方法來(lái)創(chuàng)建表或刪除它們。它的內(nèi)部類OpenHelper和DevOpenHelper是SQLiteOpenHelper實(shí)現(xiàn),它們?cè)赟QLite數(shù)據(jù)庫(kù)中創(chuàng)建模式。DaoMaster是通過(guò)GreenDao注釋反射后,自動(dòng)形成的代碼。它存在的主要目的是,不用讓用戶進(jìn)行手動(dòng)去復(fù)寫(xiě)繁重的表操作代碼塊。例如:publicstaticvoidcreateAllTables(Databasedb,booleanifNotExists){CropInfoDao.createTable(db,ifNotExists);FinanceInfoDao.createTable(db,ifNotExists);GrowInfoDao.createTable(db,ifNotExists);PriceInfoDao.createTable(db,ifNotExists);}在db當(dāng)中創(chuàng)建對(duì)應(yīng)的4個(gè)表。這個(gè)方法在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),會(huì)返回一個(gè)回調(diào)函數(shù)。如果數(shù)據(jù)庫(kù)被創(chuàng)建,我們則開(kāi)始創(chuàng)建表去調(diào)用創(chuàng)建表的方法?,F(xiàn)在知道ifNotExists的由來(lái)后,我們把ifNotExists參數(shù)最后用于寫(xiě)SQL語(yǔ)句的時(shí)候。如果為真,我們就添加"IFNOTEXISTS"的SQL語(yǔ)句頭。反之為假,我們就直接創(chuàng)建。4.7.2DaoSession類DaoSession:管理特定模式的所有可用DAO對(duì)象,可以使用其中一個(gè)getter方法獲取該對(duì)象。DaoSession類則是繼承自GreenDao中的AbstractDaoSession類,這個(gè)類也是映射生成的。我認(rèn)為這個(gè)類主要功能是讓實(shí)體類與Dao之間給予綁定。如:registerDao則是AbstractDaoSession類中的方法。如下:protected<T>voidregisterDao(Class<T>entityClass,AbstractDao<T,?>dao){entityToDao.put(entityClass,dao);}主要是將實(shí)體類與對(duì)應(yīng)Dao類,一一傳入“entityToDao”的Map中,在本系統(tǒng)中,不同于常規(guī)框架的是在需要這個(gè)Map對(duì)象時(shí),對(duì)此做處理,如下:publicAbstractDao<?,?>getDao(Class<?extendsObject>entityClass){AbstractDao<?,?>dao=entityToDao.get(entityClass);if(dao==null){thrownewDaoException("NoDAOregisteredfor"+entityClass);}returndao;}通過(guò)getDao方法,可以拿到一個(gè)AbstractDao對(duì)象。而這個(gè)對(duì)象就是GreenDao其中的一個(gè)核心內(nèi)部類了。這個(gè)類中,主要是寫(xiě)跟數(shù)據(jù)庫(kù)相交互的代碼塊。這里后續(xù)會(huì)繼續(xù)對(duì)此研究,在此就不在仔細(xì)闡述。4.8系統(tǒng)測(cè)試(1)測(cè)試意義。要保證系統(tǒng)質(zhì)量,系統(tǒng)測(cè)試是一個(gè)不可忽略的重要手段。一般有傳統(tǒng)的程序化測(cè)試和系統(tǒng)功能測(cè)試兩個(gè)方面。還涉及系統(tǒng)合理性、美觀性等多方面的評(píng)估和調(diào)整,基本上都認(rèn)為在軟件開(kāi)發(fā)方便扮演著重要角色。(2)測(cè)試步驟。為模擬系統(tǒng)在手機(jī)上的運(yùn)行情況,做了兩項(xiàng)測(cè)試。其一,下載了一款市面上常見(jiàn)的PC端模擬器:雷電模擬器,將導(dǎo)出的APK安裝包放入其中安裝后測(cè)試使用。隨后,將APK安裝包用微信電腦版發(fā)送給安卓系統(tǒng)的手機(jī)安裝測(cè)試。(3)測(cè)試結(jié)果。在兩個(gè)測(cè)試平臺(tái)上均可順利運(yùn)行,基本達(dá)成以上所述功能。
5結(jié)論在安卓應(yīng)用市場(chǎng)上對(duì)比分析了一些管理系統(tǒng)在內(nèi)容和機(jī)制上的單調(diào)性、呆板性和空洞性,本文詳細(xì)介紹了一款農(nóng)場(chǎng)作物管理系統(tǒng)從策劃分析到開(kāi)發(fā)的具體實(shí)現(xiàn)過(guò)程。首先,基于Andriod這個(gè)開(kāi)放的開(kāi)發(fā)平臺(tái),使用GrennDao實(shí)現(xiàn)了對(duì)于管理系統(tǒng)數(shù)據(jù)存儲(chǔ)與分析的一些思考以及創(chuàng)意。其次,在考察市場(chǎng)上部分主流的APP后,通過(guò)自定義View設(shè)計(jì)實(shí)現(xiàn)了懸浮窗功能,讓用戶能夠隨時(shí)隨地點(diǎn)擊進(jìn)入APP頁(yè)面。最后,在開(kāi)發(fā)系統(tǒng)的過(guò)程中,我們貫穿了前期調(diào)研和開(kāi)發(fā)策劃、實(shí)際技術(shù)和美術(shù)實(shí)現(xiàn)、以及后期處理和測(cè)試運(yùn)行,熟悉了制作流程,對(duì)一款應(yīng)用開(kāi)發(fā)的步驟和程有深層次的學(xué)習(xí)和理解。本文所闡述的農(nóng)場(chǎng)作物信息管理系統(tǒng),打破了以往的思維固式,在農(nóng)場(chǎng)管理中對(duì)信息進(jìn)行系統(tǒng)化處理,節(jié)約了傳統(tǒng)方式中紙張記錄所浪費(fèi)的大量人力物力。系統(tǒng)立足于安卓移動(dòng)平臺(tái),在時(shí)間上和空間上有著無(wú)與倫比的優(yōu)勢(shì)。同時(shí)易于學(xué)習(xí)和使用,讓普通農(nóng)民也可以快速上手操作。本系統(tǒng)可以通過(guò)登錄,查看作物的各種基本信息,同時(shí)額外增加了員工信息和財(cái)務(wù)信息的管理功能。對(duì)于管理層來(lái)說(shuō),他們可以隨時(shí)隨地掌握農(nóng)場(chǎng)作物的信息情況,查詢農(nóng)場(chǎng)的財(cái)務(wù)信息和了解員工情況。對(duì)于員工來(lái)說(shuō),可以了解農(nóng)場(chǎng)的基本信息,更好掌握作物情況而進(jìn)行合理的日常作物管理工作。讓農(nóng)場(chǎng)實(shí)現(xiàn)基本的信息化,以期達(dá)到更高效的生產(chǎn)。但是,因?yàn)閷?duì)農(nóng)業(yè)的了解面不足,編程能力有限。本文介紹的“悅農(nóng)”還是存在較多的問(wèn)題和缺陷,如系統(tǒng)中有部分模塊的設(shè)置并不是很合理,使用者的自由度并沒(méi)有在可控范圍內(nèi)達(dá)到解放。同時(shí),分析決策的功能并不完善。希望在以后能逐漸完善,讓使用者可以在本系統(tǒng)中可將農(nóng)場(chǎng)作物信息實(shí)時(shí)與所有使用者共享。在UI設(shè)計(jì)上,本人會(huì)進(jìn)一步努力美化界面,讓使用在使用時(shí)可以有賞心悅目的體驗(yàn)。參考文獻(xiàn)中華人民共和國(guó)國(guó)家統(tǒng)計(jì)局.國(guó)家農(nóng)業(yè)數(shù)據(jù)[EB/OL]./easyquery.htm?cn=C01&zb=A0D0E&sj=2019\t"/https/77726476706e69737468656265737421e3f449932b317a1e7d0682a5d65b2621/new/Detail/index/WWMERGEBLAST/_self"[2]賈鳳伶,趙玉潔,馮友仁,等.丹麥農(nóng)業(yè)綠色可持續(xù)發(fā)展對(duì)我國(guó)的經(jīng)驗(yàn)借鑒與啟示[J].農(nóng)業(yè)科技管理:2020(1)1-5.[3]明日科技.JAVA從入門(mén)到精通[M].北京:清華大學(xué)出版社,2016:84-96.[4]AhmedFawzyMohamedGad.PreparingSQLiteforAndroidApplicationDevelopment[J].2019(5):16-20.[5]張學(xué)義.基于Android系統(tǒng)的數(shù)據(jù)庫(kù)類設(shè)計(jì)[J].電腦編程技巧與維護(hù).2019(5):8-15.[6]張杭方敏.先進(jìn)的農(nóng)場(chǎng)綜合信息管理決策系統(tǒng)[J].農(nóng)業(yè)信息探索,2016(4):30-35.[7]陳鵬程.生態(tài)農(nóng)業(yè)后臺(tái)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2019:46-60.[8]韓清松.慶豐家庭農(nóng)場(chǎng)信息化管理研究[J].昆明:云南大學(xué),2018:12-18.[9]駱樂(lè),朱建軍,鄭軍.基于協(xié)同理論的家庭農(nóng)場(chǎng)經(jīng)營(yíng)能力體系研究[J].山東農(nóng)業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2018(2):1-7.[10]冉丹,李綱.基于ModBus的智慧農(nóng)場(chǎng)管理系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2017(16):35-40.[11]KhalidMahboob,IbadUrRehman,MuhammadAli.DevelopmentofAndroidControlledArduinobasedIntelligentCarParkingSystem.InternationalJournalofWirelessandMicrowave[M].2020:16-20.[12]趙寧.基于安卓系統(tǒng)的圖書(shū)館管理系統(tǒng)設(shè)計(jì)分析[J].計(jì)算機(jī)產(chǎn)品與流通,2019:10-20.[13]劉旭花.基于安卓手機(jī)平臺(tái)的學(xué)習(xí)管理系統(tǒng)[J].智庫(kù)時(shí)代,2019(21):5-10.[14]韓貝.\t"/https/77726476706e69737468656265737421fbf952d2243e635930068cb8/kns/brief/_blank"SQLite數(shù)據(jù)庫(kù)研究與應(yīng)用[D].南京:南京郵電大學(xué),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)競(jìng)賽活動(dòng)方案
- 檔案管理與服務(wù)流程(標(biāo)準(zhǔn)版)
- 互聯(lián)網(wǎng)基礎(chǔ)知識(shí)課件
- 2026年劇本殺運(yùn)營(yíng)公司品牌形象維護(hù)管理制度
- 探索2025年在線教育直播互動(dòng)平臺(tái)技術(shù)創(chuàng)新與教育資源共享與整合可行性研究
- 2026年智能城市科技發(fā)展報(bào)告
- 2025年航空制造業(yè)先進(jìn)材料應(yīng)用與市場(chǎng)趨勢(shì)報(bào)告
- 產(chǎn)后身體變化及應(yīng)對(duì)策略
- 2026年醫(yī)療機(jī)器人藥物配送行業(yè)報(bào)告
- 智能化礦山安全監(jiān)控:2025年安防巡邏機(jī)器人產(chǎn)業(yè)化可行性評(píng)估報(bào)告
- 產(chǎn)前篩查轉(zhuǎn)診制度
- 降鈣素的臨床意義
- 2024-2025學(xué)年河南省南陽(yáng)市社旗縣九年級(jí)(上)期末英語(yǔ)試卷(含答案)
- Tesla:如何設(shè)計(jì)48V汽車?-2025-01-技術(shù)資料
- 變壓器轉(zhuǎn)讓協(xié)議書(shū)范本的樣本
- 道閘施工方案
- 脫鹽水裝置操作規(guī)程
- 湖南省張家界市永定區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題
- 2023-2024學(xué)年江西省贛州市章貢區(qū)文清實(shí)驗(yàn)學(xué)校數(shù)學(xué)六年級(jí)第一學(xué)期期末經(jīng)典模擬試題含答案
- 事業(yè)單位考察材料范文
- DB36-T 1158-2019 風(fēng)化殼離子吸附型稀土礦產(chǎn)地質(zhì)勘查規(guī)范
評(píng)論
0/150
提交評(píng)論