學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具_(dá)第1頁(yè)
學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具_(dá)第2頁(yè)
學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具_(dá)第3頁(yè)
學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具_(dá)第4頁(yè)
學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具_(dá)第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論1.1研究背景據(jù)調(diào)查,目前我國(guó)的大多數(shù)高校,仍采用傳統(tǒng)的手工作業(yè)或者半手工作業(yè)方式來(lái)進(jìn)行學(xué)生參會(huì)打卡的管理。在移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的今天。信息化建設(shè)已成為必然,高校建設(shè)已將數(shù)字化校園建設(shè)放在建設(shè)的首要位置。如何對(duì)學(xué)生學(xué)習(xí)活動(dòng)全過(guò)程的動(dòng)態(tài)監(jiān)控,成為校園管理中需要解決的重要問(wèn)題,而打卡系統(tǒng)也成為了必不可缺少的一部分[1]。參會(huì)打卡系統(tǒng)設(shè)計(jì)目的主要是用來(lái)解決當(dāng)前人工打卡管理過(guò)程中有效信息混亂、效率較低、數(shù)據(jù)不利于統(tǒng)計(jì)的現(xiàn)狀問(wèn)題不利于高校對(duì)學(xué)生管理,基于當(dāng)前智能手機(jī)普遍應(yīng)用的現(xiàn)狀,將Android作為開(kāi)發(fā)平臺(tái),具有較高的適用性、使用方便,具有很高的研究?jī)r(jià)值[2]。1.2發(fā)展現(xiàn)狀分析近年來(lái),越來(lái)越多的高校注重提高學(xué)生綜合素質(zhì),在學(xué)校開(kāi)展各項(xiàng)各類(lèi)座談會(huì)。但是因?yàn)閷W(xué)生個(gè)人的原因以及開(kāi)會(huì)學(xué)生基數(shù)龐大且傳統(tǒng)打卡方式效率低或者設(shè)備缺少的情況造成打卡秩序的混亂以及打卡信息不具有一定程度的真實(shí)性。而其中有相當(dāng)一部分會(huì)議安排在教學(xué)時(shí)段,學(xué)生不進(jìn)行打卡參會(huì)又具有極大的安全隱患。教師在學(xué)生考勤打卡時(shí)仍然采取點(diǎn)名、手工記載等方式,費(fèi)時(shí)費(fèi)力且容易代答代簽。而對(duì)于指紋識(shí)別、人臉頭像識(shí)別等新型技術(shù),由于設(shè)備比較昂貴、實(shí)施成本高,不適合大規(guī)模推廣。并且現(xiàn)有的手工方式和圖像識(shí)別系統(tǒng)都有明顯的不足,那就是信息滯后,這幾類(lèi)都無(wú)法在第一時(shí)間獲取實(shí)時(shí)信息[3]。鑒于當(dāng)前的高校參會(huì)打卡系統(tǒng)比較低效,以及移動(dòng)終端的普及和Android技術(shù)的成熟,想開(kāi)發(fā)一款基于移動(dòng)終端的低成本學(xué)生參會(huì)打卡系統(tǒng)。以提高高校學(xué)生參會(huì)打卡的效率和準(zhǔn)確率,降低打卡過(guò)程中對(duì)人的依賴(lài)性,提高打卡信息實(shí)時(shí)性,在智慧校園建設(shè)中,本系統(tǒng)探索了一種新方式和新的技術(shù)路線,為高校教學(xué)和學(xué)生日常管理提供了有力的幫助[4]。在另一方面Android平臺(tái)也有較為良好的系統(tǒng)肉眼,移動(dòng)平臺(tái)設(shè)計(jì)者發(fā)布了旨在優(yōu)化應(yīng)用程序的具體指南和工具[5]所以基于Android系統(tǒng)無(wú)疑是提高用戶(hù)使用體驗(yàn)的最好辦法。云服務(wù)器又稱(chēng)云主機(jī),它的出現(xiàn)主要面向各個(gè)企業(yè)用戶(hù)與對(duì)網(wǎng)絡(luò)數(shù)據(jù)管理有需求的用戶(hù)提供基于互聯(lián)網(wǎng)的設(shè)施服務(wù)。隨著云計(jì)算科技的發(fā)展網(wǎng)絡(luò)各家大型企業(yè)都推出了自己的云計(jì)算服務(wù)。當(dāng)然云服務(wù)器就屬于其中之一。因?yàn)樵品?wù)器用戶(hù)群體龐大并且對(duì)用戶(hù)對(duì)云主機(jī)應(yīng)用的需求日益增加,云服務(wù)器的大量租用使得越來(lái)越多高品質(zhì)的網(wǎng)頁(yè)和產(chǎn)品呈現(xiàn)的我們眼前,當(dāng)然用云服務(wù)器做后臺(tái)的軟件也是數(shù)不勝數(shù)。1.3選題的意義學(xué)生在參會(huì)時(shí)會(huì)打卡簽到,效率低下的打卡方式造成打卡時(shí)人流擁擠。并且大多數(shù)同學(xué)因?yàn)樽杂X(jué)性不強(qiáng)和學(xué)校會(huì)議打卡考勤監(jiān)管不力的原因造成許多代簽或者渾水摸魚(yú)等情況。使得打卡秩序混亂至極。因此提高打卡效率;檢測(cè)和數(shù)據(jù)匯總成為了難點(diǎn)設(shè)計(jì)有效的參會(huì)打卡系統(tǒng)。對(duì)學(xué)生打卡信息進(jìn)行統(tǒng)一化管理,此處列出幾點(diǎn)明顯的不足:1. 打卡工作量大,需要值守。2. 數(shù)據(jù)混亂難以管理。3. 監(jiān)督不力渾水摸魚(yú)情況多。4. 打卡費(fèi)時(shí)費(fèi)力且效率低。實(shí)現(xiàn)學(xué)生參會(huì)打卡的便利性,成為了迫切之需。本文主要是以提高學(xué)生參會(huì)打卡效率;簽到打卡數(shù)據(jù)的真實(shí)性和時(shí)效性,減少或者淘汰傳統(tǒng)的會(huì)議考勤人員。減少管理人員整理或者發(fā)布會(huì)議信息的工作壓力。方便領(lǐng)導(dǎo)和輔導(dǎo)員能更好的對(duì)學(xué)生綜合素質(zhì)進(jìn)行考察為目的。并且應(yīng)用當(dāng)下比較成熟的移動(dòng)Android系統(tǒng)和云服務(wù)器技術(shù),設(shè)計(jì)出一款基于Android的學(xué)生參會(huì)打卡系統(tǒng)。使學(xué)生參會(huì)打卡變得更加高效化智能化。1.4本論文的結(jié)構(gòu)安排第一章緒論,介紹了學(xué)生參會(huì)打卡系統(tǒng)發(fā)展歷程和本課題研究意義。第二章需求分析,詳細(xì)解析了學(xué)生參會(huì)打卡系統(tǒng)需求,并簡(jiǎn)紹本系統(tǒng)關(guān)鍵技術(shù)。第三章系統(tǒng)總體設(shè)計(jì),簡(jiǎn)單描述了本系統(tǒng)的基本架構(gòu)和各個(gè)模塊的功能。第四章系統(tǒng)的實(shí)現(xiàn),展現(xiàn)了整個(gè)系統(tǒng)前端Android和后臺(tái)云服務(wù)器的主要功能實(shí)現(xiàn)以及對(duì)應(yīng)的功能代碼的圖文解析。第五章系統(tǒng)的測(cè)試,介紹了測(cè)試的主要功能節(jié)點(diǎn)以及具體的測(cè)試方法。第六章總結(jié)與展望,對(duì)基于Android的學(xué)生參會(huì)打卡系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)和完成概況進(jìn)行總結(jié),分析當(dāng)前系統(tǒng)有哪些不完善需要改進(jìn)或者進(jìn)一步研究的地方。并對(duì)未來(lái)技術(shù)的展望。2學(xué)生參會(huì)打卡系統(tǒng)需求分析和實(shí)現(xiàn)工具PAGE142學(xué)生參會(huì)打卡系統(tǒng)需求和實(shí)現(xiàn)工具2.1功能需求分析方案設(shè)計(jì)是對(duì)傳統(tǒng)半手工和全手工參會(huì)打卡系統(tǒng)的不足進(jìn)行優(yōu)化改良的結(jié)果。在本設(shè)計(jì)設(shè)計(jì)之初對(duì)傳統(tǒng)參會(huì)打卡方式進(jìn)行了研究。發(fā)現(xiàn)了存在硬件設(shè)備少考勤人員但參會(huì)人員多等諸多問(wèn)題。本文是針對(duì)高校參會(huì)打卡系統(tǒng)的智能化方便化的改良設(shè)計(jì),同時(shí)對(duì)高校于基于Android的參會(huì)打卡系統(tǒng)進(jìn)行了需求分析,得出一個(gè)較為完善的設(shè)計(jì)方案。2.1.1學(xué)生參會(huì)打卡流程分析傳統(tǒng)參會(huì)打卡系統(tǒng)分為全手工和半手工兩種詳見(jiàn)圖2.1,這是對(duì)傳統(tǒng)參會(huì)打卡系統(tǒng)的一個(gè)簡(jiǎn)單的總結(jié)。全手工的方式采用部署考勤人員紙質(zhì)簽到打卡。這是最原始也是對(duì)資源浪費(fèi)最大的方式。而半手工方式是基于校園卡-打卡機(jī)的方式最終數(shù)據(jù)匯總用Web進(jìn)行查看管理,通過(guò)網(wǎng)絡(luò)極大提高了簽到效率,但因?yàn)榇蚩C(jī)數(shù)量有限參會(huì)學(xué)生多所以依然會(huì)存在打卡時(shí)排長(zhǎng)隊(duì)的現(xiàn)象。所以本文提出更加方便的基于Android的參會(huì)打卡系統(tǒng)。以下分為打卡過(guò)程和數(shù)據(jù)處理過(guò)程分析。圖2.1參會(huì)打卡系統(tǒng)流程圖1.打卡過(guò)程打卡過(guò)程是學(xué)生參加會(huì)議時(shí),使用已經(jīng)安裝并且注冊(cè)登陸好的參會(huì)打卡系統(tǒng)app。領(lǐng)導(dǎo)及輔導(dǎo)員可自行決定在會(huì)議進(jìn)行的任意時(shí)間在會(huì)議室通過(guò)會(huì)議ppt或張貼的方式發(fā)布含有會(huì)議信息的二維碼供學(xué)生掃描。掃描成功后學(xué)生在會(huì)議室點(diǎn)擊定位按鈕獲取實(shí)時(shí)位置信息,獲取成功后方可點(diǎn)擊簽到按鈕,手機(jī)將發(fā)送簽到信息到云服務(wù)器。App會(huì)提示服務(wù)器的反饋信息。具體過(guò)程由圖2.2所示。圖2.2打卡過(guò)程流程圖2.出庫(kù)過(guò)程云服務(wù)器在接受Android前端發(fā)來(lái)的數(shù)據(jù)后,立刻開(kāi)始將數(shù)據(jù)中的信息與服務(wù)器數(shù)據(jù)庫(kù)里的信息進(jìn)行比對(duì)。首先是掃描二維碼的會(huì)議信息通過(guò)和記錄會(huì)議信息以及地點(diǎn)的數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行對(duì)比,確認(rèn)會(huì)議信息是否真實(shí)有效。將定位信息即實(shí)時(shí)精確的經(jīng)緯度和記錄會(huì)議室經(jīng)緯度的數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行對(duì)比。如果兩次對(duì)比數(shù)據(jù)均真實(shí)有效則打卡成功并將打卡信息新增至學(xué)生打卡信息數(shù)據(jù)庫(kù)里。并向手機(jī)端返回打卡簽到成功的信息。反之信息比對(duì)不成功則直接返回打卡失敗的信息。這就是數(shù)據(jù)處理流程詳見(jiàn)圖2.3.。圖2.3數(shù)據(jù)處理過(guò)程流程圖2.1.2用戶(hù)角色需求分析通過(guò)對(duì)參會(huì)打卡流程分析后,基于Android的學(xué)生打卡系統(tǒng)的主要人員分配如下圖圖2.4所示。圖2.4參會(huì)打卡系統(tǒng)角色需求1.參會(huì)學(xué)生參會(huì)學(xué)生時(shí)本文基于Android的學(xué)生參會(huì)打卡系統(tǒng)的主要服務(wù)對(duì)象。參會(huì)學(xué)生的主要任務(wù)是安裝app后注冊(cè)填入自己的學(xué)生信息即學(xué)號(hào)等。然后參加會(huì)議時(shí)在掃描由老師提供的含有會(huì)議信息的二維碼。在正確的會(huì)議室即開(kāi)會(huì)地點(diǎn)成功獲取實(shí)時(shí)的經(jīng)緯度。在一切操作都完成后點(diǎn)擊簽到按鈕上傳簽到信息。然后查看返回的簽到結(jié)果。詳見(jiàn)下圖2.5所示。圖2.5參會(huì)學(xué)生權(quán)限圖2.管理人員管理人員主要負(fù)責(zé)三個(gè)數(shù)據(jù)庫(kù)信息的管理。如學(xué)校即將舉辦新的會(huì)議那么就要將會(huì)議名稱(chēng)和會(huì)議地點(diǎn)正確導(dǎo)入記錄會(huì)議信息的數(shù)據(jù)庫(kù)中。如果學(xué)校要新增會(huì)議室即開(kāi)會(huì)場(chǎng)地將要將新的會(huì)議地點(diǎn)以及會(huì)議地點(diǎn)精確的經(jīng)緯度數(shù)值正確填入記錄會(huì)議室信息的數(shù)據(jù)庫(kù)中。原則上管理人員對(duì)學(xué)生打卡信息數(shù)據(jù)庫(kù)的數(shù)據(jù)可以不做管理。但是必要情況下還是可以進(jìn)行修改等操作,并且管理人員要對(duì)整個(gè)云服務(wù)器進(jìn)行維護(hù)等。管理人員權(quán)限圖如圖2.6所示。圖2.6管理人員權(quán)限圖3.領(lǐng)導(dǎo)及輔導(dǎo)員在領(lǐng)導(dǎo)視察學(xué)生參會(huì)情況和輔導(dǎo)員對(duì)學(xué)生綜合素質(zhì)進(jìn)行考評(píng)時(shí)往往需要學(xué)生綜合素質(zhì)的考評(píng)。那么學(xué)生的參會(huì)信息就顯得比較重要了,在傳統(tǒng)的半手工參會(huì)打卡系統(tǒng)中通過(guò)Web查看數(shù)據(jù)庫(kù)信息已經(jīng)相對(duì)成熟。那么這里就不會(huì)進(jìn)行更改在網(wǎng)頁(yè)里領(lǐng)導(dǎo)及輔導(dǎo)員能更直觀的查看學(xué)生的參會(huì)信息。并且在會(huì)議時(shí)領(lǐng)導(dǎo)及輔導(dǎo)員還充當(dāng)著發(fā)布會(huì)議信息二維碼的重要職務(wù)。詳見(jiàn)圖2.7圖2.7領(lǐng)導(dǎo)及輔導(dǎo)員權(quán)限圖2.1.3系統(tǒng)功能需求分析通過(guò)之前對(duì)傳統(tǒng)參會(huì)打卡方式的分析和基于Android的學(xué)生參會(huì)打卡系統(tǒng)的打卡流程和數(shù)據(jù)處理流程的簡(jiǎn)單介紹??偨Y(jié)出基于Android的學(xué)生參會(huì)打卡系統(tǒng)的功能需求的明確概念。首先此系統(tǒng)分為兩個(gè)部分完成。前端的Android與后端的云服務(wù)器。信息采集由手機(jī)Android完成而數(shù)據(jù)處理則由云服務(wù)器完成。通過(guò)網(wǎng)絡(luò)傳輸信息能對(duì)打卡信息進(jìn)行便捷的管理與修改。驗(yàn)證打卡地點(diǎn)同時(shí)也大幅度提高了數(shù)據(jù)的真實(shí)性。本文的設(shè)計(jì)對(duì)于參會(huì)打卡系統(tǒng)的效率有了極大的提高。具體功能需求詳見(jiàn)圖2.8。圖2.8學(xué)生參會(huì)打卡系統(tǒng)功能需求圖2.2關(guān)鍵技術(shù)2.2.1Android簡(jiǎn)介眾所周知Android系統(tǒng)是基于Linux的操作系統(tǒng)并且因?yàn)樗拈_(kāi)源開(kāi)放受到大多數(shù)用戶(hù)的喜愛(ài)。最開(kāi)始Android主要使用于移動(dòng)設(shè)備,但是隨著技術(shù)的快速發(fā)展一些新的基于Android的智能設(shè)備也出現(xiàn)在我們的眼前,如智能手表;平板電腦;智能電視;機(jī)頂盒等。起初由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)到如今越來(lái)越多開(kāi)發(fā)者的投入,Android系統(tǒng)應(yīng)用開(kāi)發(fā)前景極為可觀。Android開(kāi)發(fā)由四大組件構(gòu)成它們分別是:用于表現(xiàn)功能的Activity(活動(dòng));只在后臺(tái)運(yùn)行提供前臺(tái)支持的Service(服務(wù));用于接受廣播的BroadcastReceiver(廣播接收者)以及最后的支持在應(yīng)用中存儲(chǔ)讀取應(yīng)用數(shù)據(jù)的ContentProvider(內(nèi)容提供者)。采用由分層架構(gòu)組建的Android系統(tǒng),從最高層到最低層被分為四個(gè)部分。它們分別為:Linux內(nèi)核、系統(tǒng)運(yùn)行庫(kù)層、應(yīng)用程序框架層、應(yīng)用程序?qū)?。圖2.9能直觀展示Android體系的具體結(jié)構(gòu)。下面是對(duì)這幾層的簡(jiǎn)單介紹。圖2.9Android體系結(jié)構(gòu)1.應(yīng)用程序?qū)樱ˋpplication)應(yīng)用程序?qū)邮亲罡邔右彩瞧胀ㄓ脩?hù)平時(shí)所接觸的一層,它是核心應(yīng)用程序的一個(gè)集合(如日歷;鬧鐘;聯(lián)系人等),在我們?nèi)粘J褂弥邢螺d安裝的各式各樣的軟件和游戲(如QQ;微信;網(wǎng)易云音樂(lè)等)同樣也是屬于這一層。這些應(yīng)用都是由Java語(yǔ)言編寫(xiě)。2. 應(yīng)用程序框架層(ApplicationFramework)在這一層應(yīng)用程序框架層主要是向開(kāi)發(fā)人員提供了訪問(wèn)或自行開(kāi)發(fā)程序時(shí)需要的各式API。任何應(yīng)用程序都能在這一層發(fā)布自己的功能塊同時(shí)也可以調(diào)用其他應(yīng)用程序的功能塊。但是一切的前提都是必須遵循框架的安全性。所以我們可以歸納得出每一個(gè)應(yīng)用程序后都有一系列的服務(wù)(API)。那么這些API主要有:視圖(Views);通知管理器(NotificationManager);活動(dòng)管理器(ActivityManager);內(nèi)容提供器(ContentProviders);資源管理器(ResourceManager)等,這些API促使使用者有了更好的使用體驗(yàn)。3. 系統(tǒng)運(yùn)行庫(kù)(Libraries)系統(tǒng)運(yùn)行庫(kù)也被稱(chēng)為核心類(lèi)庫(kù)是由C/C++庫(kù)來(lái)提供支持的。通過(guò)上一層也就是應(yīng)用程序框架層為Android開(kāi)發(fā)者提供服務(wù)。比如3D繪圖支持是由OpenGL/ES庫(kù)來(lái)提供服務(wù);Web瀏覽器引擎是由LibWebCore庫(kù)來(lái)提供支持等。Android運(yùn)行時(shí)庫(kù)允許開(kāi)發(fā)人員用Java語(yǔ)言編寫(xiě)應(yīng)用程序。除此之外在手機(jī)內(nèi)存以及CPU優(yōu)化方面由庫(kù)里的Dalvik虛擬機(jī)進(jìn)行優(yōu)化支持。4. Linux內(nèi)核(LinuxKernel)Android系統(tǒng)是運(yùn)行在LinuxKernel之上的,由Linux為Android提供各種硬件服務(wù)的底層驅(qū)動(dòng)(如GPS服務(wù);藍(lán)牙服務(wù);電源管理;視屏顯示等)。相對(duì)完全封閉的IOS系統(tǒng)開(kāi)源開(kāi)放的Android系統(tǒng)的編寫(xiě)和應(yīng)用肯定更加適合本系統(tǒng)的設(shè)計(jì)實(shí)驗(yàn)開(kāi)發(fā)。在如今Android系統(tǒng)使用者占據(jù)絕大數(shù)移動(dòng)設(shè)備使用者的今天,基于Android的學(xué)生參會(huì)打卡系統(tǒng)更加有研究?jī)r(jià)值。2.2.2AndroidStudio簡(jiǎn)介系統(tǒng)的前端Android應(yīng)用程序是使用AndroidStudio來(lái)完成的。曾有很長(zhǎng)一段時(shí)間AndroidStudio被稱(chēng)為當(dāng)下最為完美的Android編程軟件,這句話(huà)印證了它功能的強(qiáng)大。AndroidStudio是由谷歌公司推出的一款完全免費(fèi)的Android集成開(kāi)發(fā)工具。它是在IntelliJIDEA基礎(chǔ)上改編而來(lái),前者因?yàn)橘M(fèi)用高昂的原因讓無(wú)數(shù)草根開(kāi)發(fā)人員望而卻步,AndroidStudio的出現(xiàn)也推動(dòng)了一大波Android開(kāi)發(fā)熱潮。AndroidStudio集成了開(kāi)發(fā)Android應(yīng)用時(shí)所需要的工具,但是AndroidStudio的運(yùn)行需要Java環(huán)境的支持。所以使用AndroidStudio前首先應(yīng)該安裝至少版本為1.7以上的JDK以及2G以上的內(nèi)存。AndroidStudio具有幾個(gè)比較明顯的特點(diǎn):1.在我們使用AndroidStudio編寫(xiě)應(yīng)用程序時(shí)更加方便靈活這是因?yàn)锳ndroidStudio是基于gradle的構(gòu)建項(xiàng)目支持。2.AndroidStudio具有專(zhuān)屬的重構(gòu)和快速修復(fù)的方法,通過(guò)變量配置來(lái)適應(yīng)不同版本的apk文件。AndroidStudio還能支持ProGuard和應(yīng)用簽名。3.AndroidStudio內(nèi)置了提示工具(linktools代碼優(yōu)化工具)用于捕獲性能、可用性、版本兼容性等問(wèn)題,為新手開(kāi)發(fā)人員省去查找問(wèn)題的時(shí)間。4..因?yàn)锳ndroidStudio擁有大量的代碼模塊所以在模板向?qū)?lái)生成常用的Android應(yīng)用組件和設(shè)計(jì)模塊就變得快捷高效。5.可拖拽的布局UI編輯器省去了每一次需要用代碼調(diào)節(jié)布局的時(shí)間。為項(xiàng)目的開(kāi)發(fā)提供了極大的幫助。所以本文基于Android的學(xué)生參會(huì)打卡系統(tǒng)的前端就是使用AndroidStudio來(lái)編寫(xiě)的,作為一個(gè)還在校就讀的大學(xué)生AndroidStudio無(wú)疑是最好的選擇。2.2.3阿里云輕量應(yīng)用服務(wù)器簡(jiǎn)介輕量應(yīng)用服務(wù)器是由阿里云提供的一款新的云服務(wù)器產(chǎn)品。阿里云是阿里巴巴集團(tuán)與2009年創(chuàng)立的。全名為阿里云計(jì)算有限公司(AlibabaCloudComputingCo.Ltd.)是全球領(lǐng)先的云計(jì)算科技公司。阿里云向社會(huì)提供了云服務(wù)器出租服務(wù)。因?yàn)榘⒗镌圃品?wù)器較業(yè)內(nèi)最為穩(wěn)定且為大學(xué)生提供了極為優(yōu)惠的云服務(wù)器出租業(yè)務(wù)。所以本文選擇使用阿里云云服務(wù)器。輕量應(yīng)用服務(wù)器是面向?qū)υ朴?jì)算只是入門(mén)級(jí)或者不了解的使用者提供的云服務(wù)器應(yīng)用部署;安全防控;域名管理;運(yùn)行維護(hù)的一站式綜合服務(wù)。使用輕量應(yīng)用服務(wù)器的用戶(hù)可以在部署云服務(wù)器是選擇阿里云提供的幾款成型的精品鏡像。這些鏡像已經(jīng)內(nèi)置了相應(yīng)系統(tǒng)且提前安裝了大多數(shù)項(xiàng)目運(yùn)行的環(huán)境軟件(如MySQL;wordpress等)。本文所使用的是一個(gè)基于CentOS的系統(tǒng)鏡像,此系統(tǒng)鏡像還可以提供數(shù)據(jù)庫(kù)和服務(wù)器文件等管理的圖形化界面。為項(xiàng)目的開(kāi)發(fā)提供了極大的幫助。2.2.4IntelliJIDEA簡(jiǎn)介本文基于Android的參會(huì)打卡系統(tǒng)的后端云服務(wù)器的項(xiàng)目是在IDEA上完成的。IDEA全稱(chēng)IntelliJIDEA,是java語(yǔ)言開(kāi)發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具之一。IDEA被給予極高的評(píng)價(jià)的原因是因?yàn)樗鼉?yōu)秀的Debug(調(diào)試)功能。它擁有CVS整合;代碼分析;J2EE支持等功能??梢詫?duì)Java;Javascript;Ajax等技術(shù)進(jìn)行調(diào)試。它的旗艦版本還可以對(duì)HTML;PHP等做支持,可謂是極為強(qiáng)大的編程軟件。IDEA提倡智能編碼,減輕開(kāi)發(fā)人員的工作壓力所以IDEA具有許多便捷功能如:豐富的導(dǎo)航模式;智能的選?。粚?duì)重構(gòu)的優(yōu)越支持;XML的完美支持;動(dòng)態(tài)語(yǔ)法檢測(cè);對(duì)JSP的完全支持;程序員意圖支持等20多種優(yōu)秀功能。本文的云服務(wù)器后臺(tái)程序由Java語(yǔ)言編寫(xiě),在編寫(xiě)時(shí)IDEA提供了許多智能編輯和錯(cuò)誤提示為本文系統(tǒng)的云服務(wù)器后端開(kāi)發(fā)提供了便利。2.2.5MySQL簡(jiǎn)介本文的學(xué)生參會(huì)打卡系統(tǒng)的云服務(wù)器數(shù)據(jù)是通過(guò)MySQL數(shù)據(jù)庫(kù)技術(shù)來(lái)管理的。MySQL數(shù)據(jù)庫(kù)是當(dāng)下應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng),雖然MySQL數(shù)據(jù)庫(kù)相較于其他專(zhuān)業(yè)的大型數(shù)據(jù)庫(kù)系統(tǒng)有許多不足之處(如因?yàn)轶w積太小不支持視圖等),但是由于它是一個(gè)開(kāi)源軟件且在個(gè)人使用者大量增加的今天,MySQL數(shù)據(jù)庫(kù)也能提供滿(mǎn)足絕大多數(shù)使用者的服務(wù)。所以它成為了當(dāng)下最受歡迎的數(shù)據(jù)庫(kù)系統(tǒng)。MySQL數(shù)據(jù)庫(kù)是一種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),用多張表儲(chǔ)存不同種類(lèi)的數(shù)據(jù),所以它的反應(yīng)速度和靈活性都相當(dāng)?shù)母摺ySQL數(shù)據(jù)庫(kù)雖然也有商業(yè)版但是它所提供的社區(qū)版功能也基本齊全。所以基于體積小、成本低、速度快的特點(diǎn)。它成為了中小型網(wǎng)站、個(gè)人網(wǎng)頁(yè)、高校教學(xué)的首選。MySQL數(shù)據(jù)庫(kù)作為一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)如下圖2.10所示。圖2.10MySQL數(shù)據(jù)庫(kù)特點(diǎn)便捷性MySQL數(shù)據(jù)庫(kù)的使用操作是非常簡(jiǎn)單的,可以說(shuō)是只要懂一點(diǎn)IT知識(shí)的人都可以無(wú)師自通。并且現(xiàn)在Linux系統(tǒng)都會(huì)預(yù)裝MySQL,在業(yè)內(nèi)有一個(gè)很經(jīng)典的集群———LAMP(Linux、Apache、MySQL、PHP)所以MySQL使用是非常方便的。開(kāi)源作為一個(gè)開(kāi)源項(xiàng)目,MySQL旗下聚集了一大批技術(shù)愛(ài)好者或者從業(yè)者。大家提出問(wèn)題共同解決問(wèn)題。因?yàn)槊赓M(fèi)所以大規(guī)模部署成為可能。速度快就如前文所述MySQL數(shù)據(jù)庫(kù)利用多張表儲(chǔ)存不同種類(lèi)的數(shù)據(jù),所以它的反應(yīng)速度和靈活性都相當(dāng)?shù)母?。并且在社區(qū)版中MySQL開(kāi)發(fā)者還去除了過(guò)剩的功能,精簡(jiǎn)了操作流程。所以操作所需要的時(shí)間也是相當(dāng)短。可移植性MySQL從3.23.15版本開(kāi)始支持移植,這對(duì)任何一個(gè)數(shù)據(jù)庫(kù)使用者帶來(lái)的好處都是無(wú)法估量的。我們能在任何一個(gè)常見(jiàn)的操作系統(tǒng)里使用MySQL數(shù)據(jù)庫(kù)。也可以將數(shù)據(jù)庫(kù)文件從一臺(tái)設(shè)備轉(zhuǎn)移到另外一臺(tái)甚至操作系統(tǒng)不同的設(shè)備里。譬如本文使用的數(shù)據(jù)庫(kù)文件就是由Windows創(chuàng)建轉(zhuǎn)移到Linux系統(tǒng)里的。引擎強(qiáng)大MySQL數(shù)據(jù)庫(kù)時(shí)插件式存儲(chǔ)系統(tǒng)從而不同于其他數(shù)據(jù)庫(kù)系統(tǒng)MySQL有許多的存儲(chǔ)引擎諸如ndb、mylsam、tokudb等。插件式的設(shè)計(jì)使MySQL支持更多的數(shù)據(jù)庫(kù)的接入。社區(qū)支持據(jù)說(shuō)monty(MySQL之父)在MySQL推出之初親自寫(xiě)下30000封電子郵件幫助用戶(hù)使用MySQL,成為了一段佳話(huà)。但在MySQL的推廣方面各個(gè)網(wǎng)絡(luò)社區(qū)也是功不可沒(méi),隨便查找都能找到各種技術(shù)文檔;疑難解答;架構(gòu)方案等。我們能在國(guó)內(nèi)外任何網(wǎng)絡(luò)社區(qū)(Google、Facebook、百度、阿里、騰訊)找到其他用戶(hù)在使用MySQL時(shí)不斷開(kāi)拓創(chuàng)作的新功能和工具。重慶工程學(xué)院本科畢業(yè)設(shè)計(jì)3系統(tǒng)總體設(shè)計(jì)PAGE263系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)總體設(shè)計(jì)本論文提出的學(xué)生參會(huì)打卡系統(tǒng)主要是為了解決現(xiàn)在傳統(tǒng)打卡系統(tǒng)效率低的問(wèn)題,全手工的打卡方式過(guò)于老舊在此不做討論,半手工基于校園卡-打卡機(jī)的打卡方式存在硬件設(shè)備缺少的致命問(wèn)題。并且日常打卡中對(duì)于代打代簽等惡劣打卡操作也無(wú)法控制,打卡信息的真實(shí)性較低且時(shí)效性不高。所以本文設(shè)計(jì)的系統(tǒng)是目前社會(huì)上使用最為廣泛的客戶(hù)機(jī)-服務(wù)器模式,通過(guò)現(xiàn)在學(xué)生大量使用的Android手機(jī)作為打卡設(shè)備,加上一定的位置判斷功能可以在一定程度上改善目前參會(huì)打卡系統(tǒng)效率低下的現(xiàn)狀。在這一章本文將根據(jù)前文總結(jié)的系統(tǒng)的需求分為兩個(gè)部分(客戶(hù)機(jī)-服務(wù)器)分別展示系統(tǒng)的設(shè)計(jì)。3.2客戶(hù)機(jī)Android端設(shè)計(jì)學(xué)生參會(huì)打卡系統(tǒng)肯定需要獲取學(xué)生和會(huì)議的信息,再加上本系統(tǒng)采取了使用定位判斷打卡信息的真實(shí)性功能,信息采集尤為重要。所以本文的系統(tǒng)設(shè)計(jì)將信息的采集放在了客戶(hù)機(jī)Android前端上。同時(shí)信息整理完成后需要將其發(fā)送至服務(wù)器同時(shí)需要一個(gè)發(fā)送信息的功能??蛻?hù)機(jī)的主要功能詳見(jiàn)圖3.1。圖3.1客戶(hù)機(jī)的主要功能3.2.1用戶(hù)信息學(xué)生參會(huì)打卡系統(tǒng)是為了記錄學(xué)生的打卡活動(dòng)而設(shè)計(jì)的,那么云服務(wù)器信息的接受和打卡信息的生成都需要登記學(xué)生的學(xué)號(hào)。所以在系統(tǒng)的Android應(yīng)用里就必須要有學(xué)生信息的采集功能。在出于信息安全方面我們將學(xué)生信息功能設(shè)計(jì)為登陸界面的形式,在學(xué)生使用本系統(tǒng)的app時(shí)首先需要通過(guò)注冊(cè)賬號(hào)的環(huán)節(jié)因此學(xué)生信息采集功能就變得十分簡(jiǎn)單,學(xué)生使用自己的學(xué)號(hào)作為賬戶(hù)設(shè)置密碼在每次賬戶(hù)登陸時(shí)系統(tǒng)將把登陸的賬號(hào)保存至本地?cái)?shù)據(jù)庫(kù),等待所有參會(huì)打卡步驟完成后的信息整理。3.2.2獲取會(huì)議信息采集學(xué)生信息后其次就是收集學(xué)生參加會(huì)議的會(huì)議信息了。在這一步本文提出了通過(guò)掃描含有會(huì)議信息的二維碼的方法來(lái)進(jìn)行會(huì)議選擇。在移動(dòng)支付如此盛行的今天掃碼操作對(duì)于當(dāng)代大學(xué)生來(lái)說(shuō)并不陌生,通過(guò)這個(gè)方法能節(jié)省不少的操作時(shí)間。會(huì)議信息發(fā)布和掃描二維碼是獲取會(huì)議信息的關(guān)鍵,因?yàn)楸鞠到y(tǒng)的會(huì)議信息是通過(guò)二維碼保存的,自然在每一個(gè)會(huì)議舉辦前都需要生成一個(gè)二維碼圖片。如今在任何搜索引擎上鍵入二維碼生成后可供選擇的免費(fèi)二維碼生成服務(wù)多如牛毛,并且本文設(shè)計(jì)的二維碼信息保存方案的信息十分簡(jiǎn)單。因此在二維碼生成方面本系統(tǒng)不需要過(guò)多的步驟。在會(huì)議上主講老師或者學(xué)生可以選擇在合適的時(shí)間將此二維碼圖片發(fā)布在講演PPT或者視頻里;也可以由會(huì)議主辦方在會(huì)議室布置帶有二維碼的告示。不同于校園卡-打卡機(jī)的一對(duì)一打卡方式,掃描二維碼實(shí)現(xiàn)了一對(duì)多的打卡流程極大的提高打卡效率。下圖3.2是二維碼發(fā)布及掃描演示。圖3.2二維碼發(fā)布及掃描演示3.2.3定位系統(tǒng)本系統(tǒng)對(duì)打卡操作是否異常也就是數(shù)據(jù)真實(shí)性的判斷是通過(guò)對(duì)比實(shí)時(shí)定位信息來(lái)完成的?,F(xiàn)在移動(dòng)設(shè)備的位置信息功能以及十分發(fā)達(dá)。民用北斗系統(tǒng)和GPS系統(tǒng)定位據(jù)可以精確到3-5m。所以在參會(huì)打卡系統(tǒng)中設(shè)計(jì)了通過(guò)將打卡操作時(shí)的實(shí)時(shí)位置上傳給服務(wù)器對(duì)比是否相應(yīng)的會(huì)議室的范圍內(nèi)來(lái)進(jìn)行數(shù)據(jù)真實(shí)性判斷。圖3.3是通過(guò)定位判斷數(shù)據(jù)真實(shí)性的流程圖。圖3.3定位判斷數(shù)據(jù)真實(shí)性3.2.4數(shù)據(jù)管理由于Android前端和后臺(tái)云服務(wù)器要進(jìn)行數(shù)據(jù)交互,所以我們需要選擇一種安全;快速;通用;體積小的數(shù)據(jù)交換格式。通過(guò)對(duì)現(xiàn)在應(yīng)用市場(chǎng)的考察發(fā)現(xiàn)JSON格式是一個(gè)非常好的選擇JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,是基于JavaScript的一個(gè)子集。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,采用類(lèi)似于C語(yǔ)言的格式。典型的JSON格式中“[]”符號(hào)對(duì)表示JSON數(shù)組,“{}”符號(hào)對(duì)表示JSON對(duì)象。JSON較之XML更小更快更易解析。Android要訪問(wèn)遠(yuǎn)程MySQL數(shù)據(jù)庫(kù),先要利用HTTP協(xié)議發(fā)送Request請(qǐng)求給后臺(tái)云服務(wù)器,云服務(wù)器端根據(jù)請(qǐng)求訪問(wèn)MySQL數(shù)據(jù)庫(kù)服務(wù)器。服務(wù)器數(shù)據(jù)處理完成后通過(guò)HTTP協(xié)議回傳給Android終端,Android終端再對(duì)JSON解析,并進(jìn)行相關(guān)的UI處理[6]。3.3服務(wù)器端設(shè)計(jì)在獲取Android客戶(hù)機(jī)發(fā)送來(lái)的信息后服務(wù)器需要分別將會(huì)議信息;會(huì)議室信息;與實(shí)時(shí)定位經(jīng)緯度與數(shù)據(jù)庫(kù)保存的信息對(duì)比。而用作解決學(xué)生日常問(wèn)題的系統(tǒng)的后臺(tái)服務(wù)器,必須選擇一個(gè)相對(duì)穩(wěn)定無(wú)人值守也能正常運(yùn)行的云服務(wù)器。并且要在云服務(wù)器上配置正確的軟件運(yùn)行環(huán)境以及MySQL數(shù)據(jù)庫(kù)版本使后臺(tái)程序服務(wù)能夠被支持。最終服務(wù)器需要對(duì)Android客戶(hù)機(jī)發(fā)送來(lái)的數(shù)據(jù)進(jìn)行應(yīng)答發(fā)送返回值。具體功能見(jiàn)下圖3.4。圖3.4云服務(wù)器功能3.3.1服務(wù)器框架設(shè)計(jì)1.環(huán)境配置本系統(tǒng)的后臺(tái)云服務(wù)器選用的是阿里云輕量應(yīng)用服務(wù)器,在選擇云服務(wù)器系統(tǒng)鏡像時(shí)選擇的寶塔可視化面板鏡像。這樣能更方便管理人員對(duì)云服務(wù)器的后期維護(hù)和數(shù)據(jù)庫(kù)的修改操作。在系統(tǒng)環(huán)境方面需要安裝JDK1.8和MySQL5.5及其以上版本。在數(shù)據(jù)庫(kù)查看方面需要安裝phpMyAdmin軟件,它可以對(duì)MySQL的數(shù)據(jù)表進(jìn)行面板化修改。最后需要給云服務(wù)器安裝screen功能。2.建立后臺(tái)運(yùn)行程序本系統(tǒng)的后臺(tái)程序是基于Java語(yǔ)言使用IDEA編程軟件編寫(xiě)的。本系統(tǒng)的服務(wù)器應(yīng)用使用了SpringBoot框架。SpringBoot是用來(lái)簡(jiǎn)化Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程的框架,方便開(kāi)發(fā)人員,因?yàn)椴恍枰x樣板化配置所以編寫(xiě)復(fù)雜程度降低不少。SpringBoot能獨(dú)立創(chuàng)建并主動(dòng)配置Spring應(yīng)用,并且在使用IDEA編寫(xiě)時(shí)可以通過(guò)Maven快速構(gòu)建。SpringBoot繼承了Spring易配置易測(cè)試的優(yōu)點(diǎn)。最后代碼編寫(xiě)完成后需要講程序打包為jar格式。3.服務(wù)器運(yùn)行程序本系統(tǒng)需要無(wú)人值守時(shí)也能正常運(yùn)行所以需要Screen功能,通過(guò)screen能創(chuàng)建一個(gè)可以在后臺(tái)運(yùn)行的服務(wù),它不會(huì)因?yàn)榻K端的斷開(kāi)停止運(yùn)行,具體操作如下所示。1. sudosuroot切換root賬號(hào)。2. screen-l創(chuàng)建一個(gè)新的后臺(tái)運(yùn)行服務(wù)。3. 進(jìn)入保存系統(tǒng)jar包頁(yè)面。4. java-jar相應(yīng)的包運(yùn)行程序。3.3.2MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)1.環(huán)境配置學(xué)生參會(huì)打卡系統(tǒng)基于MySQL數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中分別建立會(huì)議信息表;會(huì)議室信息表和學(xué)生打卡信息表。下面依次介紹各個(gè)表的所存儲(chǔ)的信息以及分別的作用。1. 會(huì)議信息表會(huì)議信息表由兩項(xiàng)信息組成分別是會(huì)議名稱(chēng)(Varchar)和會(huì)議地點(diǎn)(Varchar)。會(huì)議名稱(chēng)時(shí)學(xué)生參加的會(huì)議的名字它將和由客戶(hù)機(jī)Android手機(jī)掃碼獲得的信息進(jìn)行對(duì)比。會(huì)議地點(diǎn)是參加會(huì)議所在的會(huì)議室名稱(chēng)同樣與掃碼獲得的信息進(jìn)行比對(duì)。2. 會(huì)議室信息會(huì)議室信息由兩項(xiàng)信息組成分別是會(huì)議室名稱(chēng)(Varchar)和會(huì)議室經(jīng)緯度(bigint),會(huì)議室名稱(chēng)和會(huì)議信息表的會(huì)議地點(diǎn)對(duì)應(yīng)。而當(dāng)確定會(huì)議室名稱(chēng)后,會(huì)議室經(jīng)緯度將和上傳的實(shí)時(shí)經(jīng)緯度進(jìn)行對(duì)比判斷。3. 學(xué)生參會(huì)信息表學(xué)生參會(huì)信息表由學(xué)號(hào)(bigint)和會(huì)議名稱(chēng)(Varchar)組成。是服務(wù)器對(duì)傳送來(lái)的信息比對(duì)成功后將傳送來(lái)的信息中的學(xué)號(hào)和對(duì)應(yīng)的會(huì)議名稱(chēng)分別填入建立一條新的數(shù)據(jù)。重慶工程學(xué)院本科畢業(yè)設(shè)計(jì)4系統(tǒng)的實(shí)現(xiàn)PAGE424系統(tǒng)的實(shí)現(xiàn)4.1Android前端本節(jié)主要是介紹在學(xué)生參會(huì)打卡系統(tǒng)中前端Android的設(shè)計(jì)實(shí)現(xiàn)展示。在第二章里具體分析具體流程后,分析了前端所要實(shí)現(xiàn)的具體功能后編寫(xiě)出符合系統(tǒng)基本要求的Android前端軟件。4.1.1頁(yè)面介紹1.登陸界面學(xué)生信息管理包括學(xué)生注冊(cè);登陸軟件;修改密碼;注銷(xiāo)賬號(hào)等功能。在主界面所有關(guān)于學(xué)生信息的功能一覽無(wú)余。下面幾張圖片則是與學(xué)生信息功能的面板展示。圖4.1學(xué)生登錄主界面圖4.2學(xué)生注冊(cè)功能界面。圖4.3學(xué)生賬號(hào)密碼修改界面2.登陸后學(xué)生會(huì)進(jìn)入系統(tǒng)主界面。主界面里有本系統(tǒng)前端的所有功能按鈕包括:會(huì)議選擇(掃描二維碼);定位;簽到及退出功能。下面幾張圖片是各個(gè)功能面板的展示。圖4.4參會(huì)打卡系統(tǒng)功能主界面進(jìn)入主界面后首先應(yīng)該點(diǎn)擊會(huì)議選擇按鈕打開(kāi)二維碼掃描界面掃描在會(huì)議發(fā)布的含有會(huì)議信息的二維碼。圖4.5會(huì)議選擇二維碼掃描界面成功掃描二維碼后點(diǎn)擊定位按鈕,進(jìn)入頁(yè)面后點(diǎn)擊開(kāi)始定位并等待顯示實(shí)時(shí)定位數(shù)據(jù)的獲取。圖4.6實(shí)時(shí)定位界面4.1.2Android主要功能代碼簡(jiǎn)介Android前端代碼主要分析下如何通過(guò)Android設(shè)備的GPS獲取實(shí)時(shí)定位;打開(kāi)攝像機(jī)掃描二維碼以及信息上傳服務(wù)器的功能。1.GPS信息采集使用GPS首先要申請(qǐng)相關(guān)權(quán)限因?yàn)楸鞠到y(tǒng)的定位功能是基于百度地圖SDK所以在使用前首先應(yīng)該在百度地圖申請(qǐng)APIKEY。具體申請(qǐng)還需要幾步操作這里就不做贅述。以下幾張圖是申請(qǐng)AK及獲取定位權(quán)限的示意圖和代碼。圖4.7百度地圖申請(qǐng)AK圖4.8定位功能相關(guān)權(quán)限圖4.8填入申請(qǐng)的百度地圖AK請(qǐng)求定位后獲取實(shí)時(shí)定位信息,分別請(qǐng)求接受對(duì)應(yīng)的定位數(shù)據(jù)。百度SDK里有完整的定位信息獲取。而我們系統(tǒng)只需要精確的經(jīng)緯度數(shù)據(jù)即可。獲取以后用SharedPreferences方法將獲取到的經(jīng)緯度信息先保存到本地?cái)?shù)據(jù)庫(kù)。圖4.9GPS請(qǐng)求位置信息圖4.10保存經(jīng)緯度信息2.掃描二維碼掃描二維碼和照相機(jī)相關(guān)所以首先要獲取照相機(jī)權(quán)限,在界面設(shè)置一個(gè)用于二維碼掃描框的框體。再利用已經(jīng)谷歌發(fā)布的Zbar庫(kù),采集二維碼信息并將二維碼信息解碼。圖4.11照相機(jī)基礎(chǔ)功能設(shè)置圖4.12二維碼解碼線程圖4.13二維碼掃描界面布局3.傳送數(shù)據(jù)至云服務(wù)器在完成一切操作后Android客戶(hù)機(jī)需要將數(shù)據(jù)發(fā)送到云端服務(wù)器,所以需要使用http協(xié)議來(lái)進(jìn)行數(shù)據(jù)傳輸,而在HTTP協(xié)議的三種方法中Post是相對(duì)安全(因?yàn)镻ost將請(qǐng)求參數(shù)放到請(qǐng)求體里面)也是最常用的方式所以我們采用了Post方法。由于本系統(tǒng)采用的是C/S架構(gòu)(客戶(hù)機(jī)/服務(wù)器),而后臺(tái)使用的是springboot框架只暴露出名為“check-in”的接口。所以直接將數(shù)據(jù)Post到接口。在數(shù)據(jù)方面通過(guò)JSONObject方法將之前所有的采集到的數(shù)據(jù)組成一個(gè)新的JSON數(shù)據(jù)。首先向云服務(wù)器Post的請(qǐng)求告訴服務(wù)器接下來(lái)的數(shù)據(jù)格式是json,服務(wù)器需要用json解析這次請(qǐng)求。然后將整理好的JSON數(shù)據(jù)用Post方法發(fā)送至check-in接口。在數(shù)據(jù)發(fā)送至服務(wù)器后會(huì)有產(chǎn)生一個(gè)httpResponse的對(duì)象。而本系統(tǒng)返回值設(shè)計(jì)的是只有ture和false所以response返回的應(yīng)該是是一個(gè)Boolean。下圖為具體流程圖。圖4.14Android客戶(hù)機(jī)與服務(wù)器數(shù)據(jù)通信流程因?yàn)榕渲肞ost方法接口名和網(wǎng)絡(luò)地址是分開(kāi)在三個(gè)頁(yè)面完成的所以這里將三張代碼整合到一起。圖4.15Post發(fā)送信息的相關(guān)設(shè)置發(fā)送消息后需要等待云服務(wù)器處理數(shù)據(jù)后發(fā)送返回值,通過(guò)得到的返回值。將打卡簽到是否成功的信息發(fā)到用戶(hù)界面,讓打卡學(xué)生知曉自己的打卡狀態(tài)。圖4.16接受返回信息并反饋4.2云服務(wù)器本節(jié)主要是介紹在學(xué)生參會(huì)打卡系統(tǒng)中后臺(tái)云服務(wù)器設(shè)計(jì)實(shí)現(xiàn)展示。在第二章里具體分析具體流程后,分析了云服務(wù)器所要實(shí)現(xiàn)的具體功能后編寫(xiě)出符合系統(tǒng)基本要求的。本系統(tǒng)的云服務(wù)器是阿里云服務(wù)器,服務(wù)器系統(tǒng)使用的寶塔可視化面板鏡像(基于CentOS),云服務(wù)器的運(yùn)行和維護(hù)都相對(duì)普通云服務(wù)器簡(jiǎn)單。4.2.1服務(wù)器數(shù)據(jù)庫(kù)面板展示因?yàn)楸疚南到y(tǒng)的云服務(wù)器使用的是寶塔可視化面板鏡像。所以云服務(wù)器可以進(jìn)行可視化管理,云服務(wù)器預(yù)先安裝了phpMyAdmin方便管理數(shù)據(jù)庫(kù)信息,省去終端操作的步驟并且對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)可以直觀監(jiān)控。管理人員可以直接在云服務(wù)器管理界面中對(duì)會(huì)議信息和會(huì)議室信息數(shù)據(jù)進(jìn)行增刪改查,更加方便操作。下面幾張圖是云服務(wù)器管理界面中提取的服務(wù)器數(shù)據(jù)庫(kù)面板數(shù)據(jù)庫(kù)展示圖(用原圖縮放)。圖4.17會(huì)議信息表圖4.18會(huì)議室信息表圖4.19學(xué)生參會(huì)打卡信息表4.2.2云服務(wù)器數(shù)據(jù)判斷主要代碼因?yàn)樵谇拔腁ndroid前端代碼里已經(jīng)提到過(guò)數(shù)據(jù)接口而云服務(wù)器的數(shù)據(jù)接口也是相同的所以這里不再介紹。首先我們來(lái)看一下服務(wù)器是如何配置后臺(tái)數(shù)據(jù)庫(kù)的。首先應(yīng)該設(shè)置數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)位置。因?yàn)閿?shù)據(jù)庫(kù)是MySQL數(shù)據(jù)庫(kù)系統(tǒng)操作十分方便,只需要設(shè)置好端口號(hào)8000和數(shù)據(jù)庫(kù)的用戶(hù)名和密碼就大功告成。下圖是配置數(shù)據(jù)庫(kù)的代碼圖。圖4.20數(shù)據(jù)庫(kù)配置信息Do把數(shù)據(jù)庫(kù)的每一張表映射為一個(gè)java的類(lèi)這樣就可以通過(guò)操作java類(lèi)完成數(shù)據(jù)持久化,而非通過(guò)與復(fù)雜的SQL語(yǔ)句打交道。它是一種思想,是指將數(shù)據(jù)庫(kù)中的每一行數(shù)據(jù)用對(duì)象的形式表現(xiàn)出來(lái)。Do類(lèi)每一個(gè)實(shí)例都對(duì)應(yīng)一行數(shù)據(jù)數(shù)據(jù)庫(kù)配置信息后就建立是服務(wù)器數(shù)據(jù)庫(kù)里的三張表的數(shù)據(jù)對(duì)象。以下三張圖分別是會(huì)議信息表;會(huì)議室表以及學(xué)生打卡信息表。圖4.21會(huì)議信息DO圖4.22會(huì)議室信息DO圖4.23學(xué)生參會(huì)打卡信息DO后臺(tái)服務(wù)器在接受到前端信息是要將數(shù)據(jù)和服務(wù)器數(shù)據(jù)庫(kù)進(jìn)行判斷比對(duì)。在判斷發(fā)送來(lái)的信息是否真實(shí)有效后,進(jìn)行對(duì)應(yīng)的流程。如果數(shù)據(jù)真實(shí)有效就將學(xué)生學(xué)號(hào)和參見(jiàn)的會(huì)議名稱(chēng)作為一條新增數(shù)據(jù)添加到學(xué)生參會(huì)打卡信息表里并且向前端Android設(shè)備返回true。反之?dāng)?shù)據(jù)對(duì)比失敗則直接返回false。下圖是對(duì)服務(wù)器對(duì)數(shù)據(jù)信息判斷的代碼。后臺(tái)云服務(wù)器對(duì)實(shí)時(shí)定位位置是由最初設(shè)置的會(huì)議室經(jīng)緯度和實(shí)時(shí)經(jīng)緯度進(jìn)行的一個(gè)誤差判斷的簡(jiǎn)單邏輯。將上傳的經(jīng)緯度分解成X,Y兩個(gè)數(shù)值。當(dāng)實(shí)時(shí)定位的經(jīng)緯度與初始值誤差均在所設(shè)定的一個(gè)范圍(本系統(tǒng)的預(yù)設(shè)誤差是0.0003)內(nèi)則判定定位成功,反之失敗。圖4.24數(shù)據(jù)判斷代碼會(huì)很清晰看出定位判斷的邏輯。圖4.24數(shù)據(jù)判斷代碼5系統(tǒng)的測(cè)試5.1測(cè)試目的本文學(xué)生參會(huì)打卡系統(tǒng)設(shè)計(jì)目的是為了方便高校學(xué)生的日常會(huì)議打卡,所以系統(tǒng)的穩(wěn)定性;數(shù)據(jù)的準(zhǔn)確性和信息的時(shí)效性成為本系統(tǒng)最為重要的三個(gè)考察項(xiàng)目。穩(wěn)定性在于Android前端能否向服務(wù)器發(fā)送信息和云服務(wù)器是否能通過(guò)發(fā)送來(lái)的數(shù)據(jù)返回對(duì)應(yīng)的信息。數(shù)據(jù)準(zhǔn)確性在于Android前端實(shí)時(shí)定位數(shù)據(jù)是否可以成功獲取和云服務(wù)器能否正確判斷誤差。信息時(shí)效性在于打卡成功后數(shù)據(jù)庫(kù)能否及時(shí)將打卡信息存入數(shù)據(jù)庫(kù)。在這一章我們將從實(shí)時(shí)定位獲??;數(shù)據(jù)傳輸考察;打卡信息變化三個(gè)節(jié)點(diǎn)進(jìn)行測(cè)試。同樣在系統(tǒng)設(shè)計(jì)時(shí)每一個(gè)步驟都需要在在電腦編程軟件和相關(guān)輔助軟件上都成功運(yùn)行并驗(yàn)證成功。其次模擬器測(cè)試成功后還需要真機(jī)測(cè)試因?yàn)楫?dāng)系統(tǒng)安裝在真機(jī)上或許又會(huì)出現(xiàn)新的問(wèn)題。云服務(wù)器是否運(yùn)行正常同樣也是一個(gè)需要驗(yàn)證的項(xiàng)目。為了將設(shè)計(jì)系統(tǒng)更加完善穩(wěn)定高效下面本文又將分為PC段模擬測(cè)試和真機(jī)測(cè)試兩個(gè)部分展示。5.2測(cè)試環(huán)境5.2.1硬件環(huán)境本系統(tǒng)兩部分測(cè)試硬件需求如表5-1所示。表5-1系統(tǒng)測(cè)試硬件需求表硬件名稱(chēng)配置型號(hào)數(shù)量阿里云輕量應(yīng)用服務(wù)器1核2GB內(nèi)存系統(tǒng)盤(pán)40GSSD云盤(pán)(深圳服務(wù)器)1Android手機(jī)華為P8(GRA-UL10)1筆記本電腦華碩筆記本ZX50JX(Inteli5CPU8G內(nèi)存1T硬盤(pán))15.2.2軟件環(huán)境本系統(tǒng)兩部分測(cè)試軟件環(huán)境需求如下。Android系統(tǒng)需求:Android6.0版本及其以上版本;服務(wù)器數(shù)據(jù)庫(kù)版本要求:MySQL5.5及其以上版本;服務(wù)器其他環(huán)境需求:CentOS7.3(64位)、phpMyAdmin4.4、JDK1.8;PC端系統(tǒng)需求:Windows10專(zhuān)業(yè)版(需要安裝JDK1.8);PC端輔助測(cè)試軟件:AndroidStudio;Postman等。GPS定位測(cè)試環(huán)境:萬(wàn)壽華庭及周?chē)?00M范圍內(nèi);5.3系統(tǒng)功能測(cè)試本文系統(tǒng)測(cè)試將分為兩個(gè)部分:PC端軟件模擬測(cè)試和真機(jī)測(cè)試。根據(jù)本系統(tǒng)用戶(hù)使用需求分出了三個(gè)測(cè)試節(jié)點(diǎn)。本次測(cè)試是設(shè)計(jì)者本人進(jìn)行所以測(cè)試項(xiàng)目可能會(huì)有局限性,本系統(tǒng)在成功發(fā)布后期在不斷完善功能后應(yīng)請(qǐng)專(zhuān)業(yè)測(cè)試人員測(cè)試。5.3.1PC端軟件模擬測(cè)試因?yàn)閃IN10PC端GPS獲取權(quán)限與模擬器不兼容所以PC端不進(jìn)行定位測(cè)試。1. Android前端數(shù)據(jù)發(fā)送斷點(diǎn)Debug測(cè)試PC端驗(yàn)證Android前端是否將打卡信息發(fā)送出去可以使用AndroidStudio的斷點(diǎn)功能和Debug測(cè)試,即將一個(gè)系統(tǒng)的單個(gè)步驟通過(guò)命令提示符面板顯示信息進(jìn)行測(cè)試。由下圖5.1我們可以看見(jiàn)經(jīng)過(guò)斷點(diǎn)測(cè)試單步推進(jìn)成功將具有必要信息的打卡請(qǐng)求信息發(fā)送(從代碼中我們能看見(jiàn)單步推進(jìn)運(yùn)行到生成發(fā)送信息并未進(jìn)行到發(fā)送信息所以數(shù)據(jù)庫(kù)沒(méi)有這條信息)。圖5.1斷點(diǎn)Debug測(cè)試2.PC端驗(yàn)證服務(wù)器功能PC端驗(yàn)證服務(wù)器功能,我們利用的是Postman詳見(jiàn)下圖編寫(xiě)一條帶有正確打卡信息的json信息到發(fā)送框填入。同時(shí)正確填入云服務(wù)器網(wǎng)絡(luò)地址和接口名稱(chēng),點(diǎn)擊Send發(fā)送查看服務(wù)器返回信息。同時(shí)到云服務(wù)器管理界面查看數(shù)據(jù)庫(kù)有剛才發(fā)送的打卡信息。結(jié)果如下圖5.2和5.3顯示。圖5.2Postman驗(yàn)證服務(wù)器功能圖5.3查看數(shù)據(jù)庫(kù)新增信息5.3.2業(yè)務(wù)功能測(cè)試真機(jī)測(cè)試是利用Android手機(jī)安裝參會(huì)打卡系統(tǒng)軟件后,通過(guò)手機(jī)獲取會(huì)議相關(guān)的數(shù)據(jù)信息,然后將打卡信息推送到云服務(wù)器。因?yàn)樵贏ndroid應(yīng)用里我們只能看見(jiàn)用戶(hù)界面所以這里我們就測(cè)試實(shí)時(shí)定位數(shù)值的獲取功能;云服務(wù)器數(shù)據(jù)處理以及手機(jī)接收到云服務(wù)器的返回值發(fā)送到界面給參會(huì)學(xué)生的信息顯示。(因?yàn)橐獪y(cè)試服務(wù)器對(duì)實(shí)時(shí)定位是否在允許范圍內(nèi)所以真機(jī)測(cè)試需要在室外進(jìn)行)。1.Android真機(jī)在不同地方獲取實(shí)時(shí)定位實(shí)時(shí)定位功能是利用Android系統(tǒng)自帶的功能的也是本系統(tǒng)最重要的功能。在不同的地方是否能獲取到精確的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論