張粵,李俊,方國康,馮滿滿
(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院,武漢 430065)
基于Android的學(xué)生考勤系統(tǒng)設(shè)計與實現(xiàn)
張粵,李俊,方國康,馮滿滿
(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院,武漢430065)
據(jù)調(diào)查,目前我國的大多數(shù)高校,在學(xué)生管理方面仍然采用傳統(tǒng)的手工作業(yè)或者半手工作業(yè)方式。教師在學(xué)生考勤、晚歸管理、課堂學(xué)習(xí)管理等方面,仍然采取點名、手工記載等方式,費時費力且容易代答代簽。而對于指紋識別、人臉頭像識別等新型技術(shù),由于設(shè)備比較昂貴、實施成本高,不適合大規(guī)模推廣。并且現(xiàn)有的手工方式和圖像識別系統(tǒng)都有明顯的不足,那就是信息滯后,老師們都無法在第一時間獲取實時信息。鑒于當前的高校考勤系統(tǒng)比較低效,以及移動終端的普及和Wi-Fi熱點技術(shù)的成熟,想開發(fā)一款基于移動終端的低成本,高效的學(xué)生考勤系統(tǒng)[1-2]。目前為止基于Android平臺的定位研究和應(yīng)用處于高速增長階段,國內(nèi)相關(guān)領(lǐng)域的研究論文已經(jīng)層出不窮如論文[3-5],經(jīng)過討論和閱讀相關(guān)文獻,找到了一種基于Wi-Fi熱點和MAC地址標識教室的方法,即先通過移動Wi-Fi熱點的MAC地址和教室地點綁定,然后學(xué)生通過課表查找到當前上課的教室,獲取綁定的MAC地址,然后去查找當前Wi-Fi列表,如果有匹配的MAC地址,就與服務(wù)器交互,將自己的信息發(fā)給服務(wù)器,生成簽到記錄,完成簽到。
本系統(tǒng)采用Android、PHP、MySQL等技術(shù)以客戶端服務(wù)器的形式來進行數(shù)據(jù)交互??蛻舳税瑢W(xué)生端、教師端。服務(wù)端以PHP語言編寫的后臺腳本用于響應(yīng)客戶端的請求,并返回相應(yīng)數(shù)據(jù)。
(1)平臺簡介
Android是一種基于Linux內(nèi)核分層體系結(jié)構(gòu)的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,由Google公司和開放手機聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機。2005年8月由Google收購注資。第一部 Android智能手機發(fā)布于2008年10月。2011年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android結(jié)構(gòu)分為四個層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和Linux內(nèi)核層,Android平臺具有開放性、豐富的硬件、方便開發(fā)、Google應(yīng)用等優(yōu)勢
(2)Android的AsyncTask異步任務(wù)類
在開發(fā)Android移動客戶端的時候往往要使用多線程來進行操作,我們通常會將耗時的操作放在單獨的線程執(zhí)行,避免其占用主線程而給用戶帶來不好的用戶 體驗。但是在子線程中無法去操作主線程(UI線程),在子線程中操作UI線程會出現(xiàn)錯誤。因此Android提供了一個類Handler來在子線程中來更新UI線程,用發(fā)消息的機制更新UI界面,呈現(xiàn)給用戶。這樣就解決了子線程更新UI的問題。但是費時的任務(wù)操作總會啟動一些匿名的子線程,太多的子線程給系統(tǒng)帶來巨大的負擔(dān),隨之帶來一些性能問題。因此Android提供了一個工具類AsyncTask,顧名思義異步執(zhí)行任務(wù)。這個AsyncTask生來就是處理一些后臺的比較耗時的任務(wù),給用戶帶 來良好用戶體驗的,從編程的語法上顯得優(yōu)雅了許多,不再需要子線程和Handler就可以完成異步操作并且刷新用戶界面
LAMP(Linux-Apache-MySQL-PHP)網(wǎng)站架構(gòu)是目前國際流行的Web框架,該框架包括:Linux操作系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器,MySQL數(shù)據(jù)庫,Perl、PHP或者Python編程語言,所有組成產(chǎn)品均是開源軟件,是國際上成熟的架構(gòu)框架,很多流行的商業(yè)應(yīng)用都是采取這個架構(gòu),和Java/J2EE架構(gòu)相比,LAMP具有Web資源豐富、輕量、快速開發(fā)等特點,微軟的.NET架構(gòu)相比,LAMP具有通用、跨平臺、高性能、低價格的優(yōu)勢,因此LAMP無論是性能、質(zhì)量還是價格都是企業(yè)搭建網(wǎng)站的首選平臺。本設(shè)計正是采用的LAMP平臺構(gòu)建的Web服務(wù)器。
本系統(tǒng)將學(xué)生信息、課表信息、上課信息從教務(wù)系統(tǒng)導(dǎo)入到服務(wù)器,然后將每個教室的標識碼即隨身Wi-Fi的MAC地址收錄到數(shù)據(jù)庫。每個學(xué)生的學(xué)號在注冊的時候?qū)c該學(xué)生移動終端無線網(wǎng)卡的MAC地址綁定,作為該學(xué)生的終端標識。當學(xué)生帶移動終端去具體教室上課時,會自動查找該教室的標志MAC,如果沒能查找到則證明學(xué)生沒逃課,將不能把自己的簽到信息寫入服務(wù)器的數(shù)據(jù)庫,然后教室和輔導(dǎo)員可以查看到某節(jié)課沒有簽到的學(xué)生。
基于 Android的學(xué)生考勤管理系統(tǒng)主要由 Android端和服務(wù)器端2部分組成。Android學(xué)生端負責(zé)考勤數(shù)據(jù)的采集以及較為簡單的數(shù)據(jù)查詢。學(xué)生叫考勤信息發(fā)送到服務(wù)器,并存儲在數(shù)據(jù)庫中,任課教師使用安裝有Android教師端軟件的智能設(shè)備進行查看學(xué)生考勤數(shù)據(jù),實時查看學(xué)生考勤的信息,發(fā)現(xiàn)其中存在的問題,從而完善自己的管理工作。下圖(圖1)說明了本系統(tǒng)的基本架構(gòu)。
圖1 系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)使用的是MySQL關(guān)系型數(shù)據(jù)庫,結(jié)合系統(tǒng)需求,可以抽取出相關(guān)實體,包含學(xué)生注冊表、學(xué)生信息表、教室信息表、教師信息表、班級表、年級表、課程表、課程信息表以及關(guān)系表等數(shù)據(jù)表,從圖二數(shù)據(jù)庫ER圖可以看出各個表之間的關(guān)系以及表與表之間的相互聯(lián)系,在具體使用中我們通過學(xué)生注冊的移動終端的MAC地址為該學(xué)生的標識,獲取與該學(xué)生的所有相關(guān)消息。
圖2 數(shù)據(jù)庫ER圖
基于Android的考勤管理軟件主要包括5大功能模塊:學(xué)生注冊模塊、簽到與考勤模塊、課程管理模塊、教室信息管理模塊和Wi-Fi管理模塊。其中Wi-Fi管理模塊是本軟件的基礎(chǔ)模塊,判斷簽到學(xué)生是否在教室,只有與數(shù)據(jù)庫的教室MAC標識一致,且當前時間與課表時間一致,才能進行正確的簽到。
學(xué)生注冊模塊主要負責(zé)用戶身份驗證和將Android移動終端MAC地址與學(xué)生綁定。通過身份驗證,來保證信息的真實、準確。
簽到與考勤模塊主要是對學(xué)生的到課情況進行收錄和統(tǒng)計,學(xué)生注冊后無需登錄,可定時完成指定課程的簽到信息的提交。教師和年級輔導(dǎo)員可通過登錄,在軟件中查看相關(guān)簽到數(shù)據(jù)和具體學(xué)生信息,這樣教師和教務(wù)管理者可以通過這些信息來了解當前學(xué)生的到課情況,并作出相應(yīng)的處理,保證教學(xué)質(zhì)量。
課程管理模塊和教室信息管理模塊是一個輔助功能,主要是提前將課程相關(guān)信息、學(xué)生信息、教師信息錄入系統(tǒng),而教室信息可有授課老師在課前通過軟件錄入或手動錄入到數(shù)據(jù)庫,當數(shù)據(jù)錄入完成學(xué)生可以自動、方便地完成指定課程的簽到。同時課程管理模塊還提供了當前上課信息判斷的功能。
通過Android系統(tǒng)API,我們可以獲取到周邊Wi-Fi的一些信息,如Wi-Fi信號的強度、強度等級、MAC地址等信息。Wi-Fi管理模塊是怎個系統(tǒng)的基礎(chǔ)模塊,其主要功能是使用系統(tǒng)API搜索該終端周邊Wi-Fi信號,獲取各個Wi-Fi信號的信息,然后從服務(wù)器通過學(xué)生課表獲取當前學(xué)生上課所在教室的MAC地址標識符,并和每個Wi-Fi信號做比較,如果發(fā)現(xiàn)有匹配的信息才可進行下一步。
這個模塊分為兩個部分,分別是學(xué)生簽到和教工考勤兩個部分,在學(xué)生簽到的實現(xiàn)中,本系統(tǒng)考慮到簽到的高效性,利用Android系統(tǒng)內(nèi)部類AlarmManager設(shè)置定時任務(wù),并在程序中編寫廣播接收者來接收系統(tǒng)發(fā)出的廣播,使得學(xué)生在上課時可以自動簽到,而無需自己打開軟件簽到。
(1)學(xué)生簽到,即學(xué)生上課時間自動簽到,它以學(xué)生注冊模塊,Wi-Fi管理模塊、課程管理模塊和教室信息管理模塊為基礎(chǔ),當用戶注冊后通過學(xué)生注冊終端的MAC地址,進行信息驗證和教室地點、上課時間匹配后,將用戶的簽到消息發(fā)送至服務(wù)器。
(2)教工考勤,分為兩類用戶,教師或輔導(dǎo)員從數(shù)據(jù)庫取出學(xué)生簽到信息,并分析簽到數(shù)據(jù)。如果是授課教師登陸回生成該教師所授課程的考勤信息,如果是年級輔導(dǎo)員會生成該年級所有課程的考勤信息。該設(shè)計使得教師能夠?qū)W⑴c自己的課程出勤率來調(diào)整教學(xué)方案,學(xué)院管理者可以勒戒各個年級的出勤情況,做出相應(yīng)的應(yīng)對措施。
本系統(tǒng)以Web服務(wù)器為數(shù)據(jù)中轉(zhuǎn)站,實現(xiàn)了學(xué)生簽到,教工查看到課情況的考勤系統(tǒng)。其中用戶可以分為三類,即學(xué)生、教工、年級輔導(dǎo)員,不同類的用戶可以使用的功能不同,學(xué)生可以簽到,查看自己的課表,教工可以查看教授課程的考勤信息,年級輔導(dǎo)員可以查看本年級所有課程的到勤狀況。其總體系統(tǒng)架構(gòu)如圖3所示。
(1)學(xué)生端UI實現(xiàn)
學(xué)生端主要包括3個界面(即3個Activity),分別是歡迎界面,注冊界面,課表界面。其中歡迎界面用于顯示軟件的信息和歡迎用戶使用。注冊界面,課表界面則顯示學(xué)生課表,該界面是用canvas畫圖實現(xiàn)的自定義UI界面,將課表信息畫到界面上,并可以響應(yīng)手勢進行界面移動,課表界面如圖4所示。
圖3 系統(tǒng)總體架構(gòu)
圖4 課表界面圖
(2)學(xué)生端功能實現(xiàn)
學(xué)生端功能包含學(xué)生注冊,課表獲取,自動簽到或手動簽到等功能,當用戶打開軟件會進入到歡迎界面,然后通過Wi-Fi模塊獲取該移動終端的MAC標識,與數(shù)據(jù)庫比對將判斷是否注冊,若已注冊將始化課表信息,然后顯示課表界面,否則將進入注冊界面,帶用戶注冊后進入課表界面,然后程序后嘗試匹配上課信息,如果上課信息符合,則進行簽到操作。教師課表相關(guān)數(shù)據(jù)使用Android系統(tǒng)內(nèi)置的SQLite數(shù)據(jù)庫API在本地進行存儲,避免每次都要從服務(wù)器獲取,浪費數(shù)據(jù)流量,其程序流程圖如圖5所示。
(1)教師端UI實現(xiàn)
Android教師端的界面主要包含2個,其采用的都是Listview用一個列表來顯示課程以及學(xué)生考情情況,當點擊該課程的上課信息時,會進入第二個界面以列表的形式顯示該課程缺勤學(xué)生的具體信息,教師可以及時獲取到缺勤學(xué)生的信息,有效的防止學(xué)生逃課。其具體效果如圖6所示。
(2)教師端功能實現(xiàn)
Android教師端主要是為了方便教工和輔導(dǎo)員查看學(xué)生到課記錄,其主要功能為獲取課程以及該課程考勤信息,如果是輔導(dǎo)員的話會獲取本年級所有課程,然后點擊某一課程會顯示該課程的詳細信息,再次點擊會顯示缺勤學(xué)生的詳細信息。在考勤信息與數(shù)據(jù)庫的同步方面則采用開啟一個后臺服務(wù)來操作。在打開軟件之后,進程會創(chuàng)建一個服務(wù)以便每隔一分鐘向數(shù)據(jù)庫請求一次數(shù)據(jù),待取到更新數(shù)據(jù)后重新更新UI界面。
圖5 Android學(xué)生端流程圖
圖6 Android教師端UI效果圖
(3)Web服務(wù)器實現(xiàn)
以LAMP組合來搭建一個免費、開源、高效的Web服務(wù)器,該服務(wù)器并未編寫基于網(wǎng)頁的界面,而是為Android學(xué)生端和教師端提供數(shù)據(jù)訪問接口,采用HTTP請求、應(yīng)答進行交互。用戶通過Android客戶端發(fā)送標準的HTTP請求,Apache服務(wù)器收到請求后,將請求消息交給PHP腳本程序處理,PHP根據(jù)不同的Action來觸發(fā)不同的程序,從數(shù)據(jù)庫中獲取相應(yīng)的數(shù)據(jù)后,將數(shù)據(jù)交由Apache返回給客戶端。
本系統(tǒng)使用的多種不同的編程技術(shù),已完成基本的學(xué)生簽到功能,學(xué)生和教師均可以通過界面操作,進行考勤,大大的節(jié)約了教師的時間,具有很強的實用性。由于此項目基礎(chǔ)設(shè)施費用較低廉,使得本系統(tǒng)具有很好的擴展性,此系統(tǒng)將不會局限于統(tǒng)計學(xué)生的到課情況,稍加以改裝便可應(yīng)用于中小型企業(yè)的人員上。
[1]基于Android的學(xué)生考勤管理系統(tǒng)設(shè)計與開發(fā).現(xiàn)代電子技術(shù),2014.
[2]基于Android的手機簽到系統(tǒng).計算機與現(xiàn)代化,2014.
[3]高明云.整合搜索手機地圖Android平臺[M].北京:人民郵電出版社,2009.
[4]董承風(fēng),胡慶.基于Android平臺的雙網(wǎng)雙待的研究與設(shè)計[J].計算機應(yīng)用與軟件,2012,29(2).
[5]王視環(huán).蜂窩網(wǎng)與GPS相結(jié)合的手機混合定位技術(shù)——gpsOne[J].信息與電子工程,2004.
李?。?978-11),男,湖北黃石人,副教授,研究方向為網(wǎng)絡(luò)管理、智能移動開發(fā)
方國康(1994-05),男,湖北恩施人,在讀本科,研究方向為Android開發(fā)
馮滿滿(1995-07),男,湖北襄陽人,在讀本科,研究方向為Android開發(fā)
Student's Attendance;Wi-Fi Location;Checking on Attendance by Mobile Terminal
Design and Implementation of Student Attendance System Based on Android
ZHANG Yue,LI Jun,F(xiàn)ANG Guo-kang,F(xiàn)ENG Man-man
(College of Computer Science and Technology,Wuhan University of Science and Technology,Wuhan 430065)
1007-1423(2015)31-0008-06
10.3969/j.issn.1007-1423.2015.31.002
張粵(1995-),男,湖北咸寧人,在讀本科,研究方向為Android開發(fā)
2015-09-01
2015-10-25
高校的學(xué)生考勤管理工作一直都是一項耗時、耗力的工作,而且目前我國教師的考勤方式依然是手工操作,效率低下,且實際效果并不理想。研究一種高效、實時的考勤系統(tǒng)很有必要,該系統(tǒng)提出一種包含Android移動客戶端(Android端)、Web服務(wù)端 (服務(wù)端)混合而成基于MAC標識的學(xué)生考勤管理系統(tǒng)。使用基于Android平臺的移動設(shè)備實現(xiàn)自動簽到、查詢簽到記錄功能,通過3G網(wǎng)絡(luò)將學(xué)生端考勤數(shù)據(jù)實時上傳至服務(wù)器,并用教師端實現(xiàn)考勤數(shù)據(jù)的動態(tài)管理和查看。通過實際應(yīng)用表明,系統(tǒng)部署后確能實時、宏觀的掌握學(xué)生出勤信息,為高校學(xué)生管理提供有力的支持。
學(xué)生考勤;Wi-Fi定位;移動終端考
武漢科技大學(xué)大學(xué)生科技創(chuàng)新(No.14ZRC099)
Checking on student's attendance is a time-consuming and labor-intensive work in Chinese high school,and what's more,most teachers are still manual operation,the efficiency is low,and the actual effect is unexpected.It is necessary to study a kind of efficient and realtime attendance system.Proposes a kind of student attendance management system which includes Android mobile client(Android),Web (Server)and MAC marking.Uses the mobile device based on the Android platform to achieve automatic registration,check attendance record function,upload the students'attendance data real-time to the server by network,and uses the App to design for teacher to achieve the dynamic management and check the attendance data.Through the practical application,it shows that the system can be deployed in real time and the macro management of students'attendance information,which provides a strong support for the management of college students.