劉嘯宇 范輝
摘 要:論文實現(xiàn)了一個基于Android智能操作系統(tǒng)的選課系統(tǒng)。該系統(tǒng)使用方便靈活,實現(xiàn)了高校選課流程中的所有功能,為學(xué)生提供了利用手機、平板等移動終端進行選課的環(huán)境,有著良好的用戶體驗。本系統(tǒng)服務(wù)器采用開源的tomcat服務(wù)器,以MySQL作為后臺數(shù)據(jù)庫,網(wǎng)絡(luò)數(shù)據(jù)交互遵照HTTP協(xié)議。最后,文章對系統(tǒng)的擴展及優(yōu)化提出了一種解決方案。
關(guān)鍵詞:Android;移動終端;選課系統(tǒng)
隨著移動通信網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的不斷發(fā)展,智能移動終端的迅速普及,移動互聯(lián)網(wǎng)對社會各個領(lǐng)域產(chǎn)生了深刻的影響和重大的變革。移動互聯(lián)網(wǎng)不僅僅改變?nèi)藗兊纳罘绞?,它也對人們的工作方式產(chǎn)生了巨大影響。因此,本文提出并實現(xiàn)了一種基于Android手機操作系統(tǒng)的選課系統(tǒng)。利用該系統(tǒng),學(xué)生選課可以脫離傳統(tǒng)PC機和基于B/S技術(shù)的選課系統(tǒng),充分使用已經(jīng)飛速普及的移動終端設(shè)備(如智能手機和平板電腦等)進行選課。這為高校學(xué)生提供了一種寬松的選課環(huán)境,同時也減輕了傳統(tǒng)校園網(wǎng)絡(luò)的壓力。
目前在很多高校之中,都擁有自己的選課系統(tǒng),但是當(dāng)今使用的選課系統(tǒng)大多是基于ASP或者JSP等技術(shù),采用B/S架構(gòu)利用計算機訪問網(wǎng)絡(luò)進行選課和選課信息處理。傳統(tǒng)的選課系統(tǒng)模式,即學(xué)生利用網(wǎng)絡(luò),在計算機上提交自己的選課信息,由于受設(shè)備的固定性和可移動性差等原因,常常導(dǎo)致學(xué)生錯過選課時間或者不能選修到自己理想的課程。本文實現(xiàn)的選課系統(tǒng)利用當(dāng)今高速發(fā)展的4G移動互聯(lián)網(wǎng)絡(luò)和智能移動終端設(shè)備,針對傳統(tǒng)選課業(yè)務(wù),實現(xiàn)了全部的選課流程,優(yōu)化了頁面布局,擁有良好的用戶體驗。
1 Android系統(tǒng)介紹
Android系統(tǒng)是由Google發(fā)布的一種基于Linux的自由及開源的智能移動終端操作系統(tǒng),其對智能移動終端的迅速普及起著至關(guān)重要的作用。本論文實現(xiàn)的選課系統(tǒng)使用的硬件是運行Android操作系統(tǒng)的智能移動終端。
Android系統(tǒng)架構(gòu)共包括四層如圖1所示:
1.1 應(yīng)用程序?qū)?/p>
Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。
1.2 應(yīng)用程序框架層
開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。
隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括:豐富而又可擴展的視圖(Views),可以用來構(gòu)建應(yīng)用程序,甚至可嵌入的web瀏覽器。內(nèi)容提供器使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù),或者共享它們自己的數(shù)據(jù)。資源管理器提供非代碼資源的訪問。通知管理器使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息?;顒庸芾砥饔脕砉芾響?yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。
1.3 系統(tǒng)運行庫層
Android包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。同時,該層還包含了一個Java核心庫,該核心庫提供了Java編程語言核心庫的大部分功能。
在這一層還包含了一個Dalvik虛擬機,每一個Android應(yīng)用程序都在它自己的進程中進行,都擁有一個獨立的Dalvik虛擬機實例。Dalvik虛擬機執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時虛擬機是基于寄存器的,所有的類都由Java編譯器編譯,然后統(tǒng)一轉(zhuǎn)化成.dex格式由虛擬機執(zhí)行。Dalvik虛擬機依賴于Linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。
1.4 Linux內(nèi)核層
Android核心系統(tǒng)服務(wù)依賴于Linux2.6內(nèi)核,如安全性、內(nèi)存管理、進程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。Linux內(nèi)核也是作為硬件與軟件棧的抽象層。驅(qū)動:顯示驅(qū)動、攝像頭驅(qū)動、鍵盤驅(qū)動、WiFi驅(qū)動、Audio驅(qū)動、flash內(nèi)存驅(qū)動、Binder(IPC)驅(qū)動、電源管理等。
2 系統(tǒng)結(jié)構(gòu)設(shè)計
該系統(tǒng)的整體框架如圖2所示,系統(tǒng)的客戶端采用C/S模式(客戶端/服務(wù)器模式),系統(tǒng)的服務(wù)器端采用B/S(瀏覽器/服務(wù)器)和C/S兩種模式實現(xiàn)。其中,用戶與客戶端交互,系統(tǒng)為其提供良好的用戶界面;管理員與服務(wù)器交互有兩種方式,一種是通過傳統(tǒng)PC機的瀏覽器登錄系統(tǒng)進行交互,另一種是使用智能終端設(shè)備登錄系統(tǒng)交互,管理員對服務(wù)器端進行維護管理,服務(wù)器端想客戶端提供數(shù)據(jù)下載、數(shù)據(jù)上傳接口用于數(shù)據(jù)交換。
系統(tǒng)客戶端和服務(wù)器端通過HTTP協(xié)議進行數(shù)據(jù)交互,系統(tǒng)的網(wǎng)絡(luò)架構(gòu)圖如圖3所示。系統(tǒng)的數(shù)據(jù)處理和業(yè)務(wù)邏輯全部在服務(wù)器端進行,用戶使用客戶端進行的登錄和選課等操作指令均發(fā)送到服務(wù)器端,業(yè)務(wù)邏輯和數(shù)據(jù)處理對用戶是透明的,從而保障數(shù)據(jù)和用戶信息安全,防止數(shù)據(jù)泄露和惡意用戶在客戶端對系統(tǒng)業(yè)務(wù)邏輯和數(shù)據(jù)安全進行破壞。
3 系統(tǒng)功能實現(xiàn)
3.1 服務(wù)器端功能
該系統(tǒng)服務(wù)器端主要實現(xiàn)三個功能:存儲數(shù)據(jù)功能、處理數(shù)據(jù)功能和管理員管理系統(tǒng)功能,各模塊的實現(xiàn)如下:
⑴數(shù)據(jù)存儲功能。服務(wù)器端提供數(shù)據(jù)的存儲功能,保障數(shù)據(jù)的一致性,服務(wù)器上存儲每一個開課科目的詳細信息、選課記錄、精品課程等數(shù)據(jù)。在校的注冊學(xué)生可以登錄系統(tǒng)對自己的培養(yǎng)計劃進行編制,以方便學(xué)生選課。
系統(tǒng)采用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),采用回滾和備份數(shù)據(jù)多重策略保證數(shù)據(jù)的一致性、正確性和可恢復(fù)性。
⑵數(shù)據(jù)處理功能。服務(wù)器端要求能夠?qū)蛻舳税l(fā)來的請求信息進行解析,然后將處理后的數(shù)據(jù)返回給客戶端。本系統(tǒng)在客戶端進行的所有操作都被提交到服務(wù)器端,并由服務(wù)器進行處理以保證數(shù)據(jù)的安全性。處理完成后,服務(wù)器端把結(jié)果返回給客戶端,客戶端呈現(xiàn)結(jié)果給選課學(xué)生,客戶端專注于界面的顯示效果以提高學(xué)生選課的便捷性。
⑶管理員管理功能。管理員負責(zé)維護系統(tǒng)后臺信息,包括新生注冊、畢業(yè)生離校注銷、開設(shè)課程信息的添加修改等等。同時管理員負責(zé)審核學(xué)生的選課信息,并更新學(xué)生的選課狀態(tài)。
3.2 客戶端功能
本系統(tǒng)中客戶端的框架圖如圖4所示。
系統(tǒng)開放之前,管理人員根據(jù)在校學(xué)生學(xué)籍信息添加學(xué)生用戶,用戶與在校生學(xué)號一一對應(yīng),此后新用戶只在每學(xué)年開始前根據(jù)畢業(yè)生離校信息、新生入學(xué)信息和學(xué)生降級信息進行一次維護,學(xué)生無注冊系統(tǒng)賬號權(quán)限。管理員根據(jù)各個學(xué)院教學(xué)主任提交的排課信息表錄入待選課程的基本信息,包括課程名、課程號、授課教師、考核方式、課程等級、授課時間和班容量等。課程信息的設(shè)置工作智能由管理員設(shè)置,該信息維護在后臺通過shared preferences方式進行存儲,此后客戶端每次選修課程的請求僅僅讀取該設(shè)置的課程ID信息,然后把該ID作為參數(shù)傳送給服務(wù)器端,有服務(wù)器端進行數(shù)據(jù)處理和選課信息存儲。
為保障數(shù)據(jù)一致性,數(shù)據(jù)的更新處理全部由后臺處理,前臺學(xué)生看到的永遠都是最新的數(shù)據(jù)。該過程的詳細流程如圖5所示。
系統(tǒng)運行后首先判斷是否聯(lián)網(wǎng),如沒有聯(lián)網(wǎng),提示用戶設(shè)置網(wǎng)絡(luò);聯(lián)網(wǎng)成功后從服務(wù)器上下載默認的XML文件,解析后判斷是否有數(shù)據(jù)更新,若有則下載數(shù)據(jù)并更新前臺頁面數(shù)據(jù),若無則讀取本地文件顯示在前臺。由于移動終端的應(yīng)用龐雜,內(nèi)存使用十分受限制,對XML的解析采用SAX方式(SAX方式順序讀取XML文件內(nèi)容,不會將XML文件完全加載,可以高效的使用內(nèi)存)。
4 結(jié)束語
本文實現(xiàn)了一個基于Android的選課系統(tǒng),本系統(tǒng)實現(xiàn)了高校學(xué)生選課流程的所有功能,包括預(yù)選課、選課、編制培養(yǎng)計劃和退補選課程等,系統(tǒng)有著良好的可擴展性。根據(jù)學(xué)校的需求,可以陸續(xù)將學(xué)校其他系統(tǒng)并入實現(xiàn)系統(tǒng)的移動智能化,比如現(xiàn)在大部分高校的MIS系統(tǒng)、圖書管理系統(tǒng)等系統(tǒng)的功能并入選課系統(tǒng),實現(xiàn)一個具有高校全部系統(tǒng)接口的移動端高校信息系統(tǒng)。
由于系統(tǒng)中一門課程可能存在開設(shè)多個教學(xué)班的現(xiàn)象,當(dāng)一個教學(xué)班未達到選課人數(shù)時,需要由管理員把這部分選課學(xué)生并入同一時間相同課程的其他教學(xué)班。針對這個情況系統(tǒng)可以進行優(yōu)化,后續(xù)實現(xiàn)系統(tǒng)自動并班,減輕管理員工作負擔(dān)。
總之,在移動互聯(lián)網(wǎng)飛速發(fā)展的今天,人們的生活方式、工作方式都在發(fā)生變化,高校作為一個掌握和研究前沿技術(shù)的領(lǐng)域,實現(xiàn)高校選課系統(tǒng)研究有著廣闊的實用前景。
[參考文獻]
[1]Jaroslav Tulach.Practical API Design Confessions of a Java Framework Architect[M].北京:人民郵電出版社,2011.
[2]李剛.瘋狂Android講義[M].第二版.北京:電子工業(yè)出版社,2010.