郭一晶 李兆才
摘 要: 介紹了基于Android系統(tǒng)開發(fā)的教務系統(tǒng)。該系統(tǒng)可幫助廈門大學嘉庚學院教師Android用戶便捷訪問教務系統(tǒng)和校園資源。在Eclipse開發(fā)環(huán)境下,使用Http通信協(xié)議、開源jsoup解析、json解析和SQLite數(shù)據(jù)庫等開發(fā)技術完成系統(tǒng)開發(fā),系統(tǒng)主要功能包括查詢課程表、查詢課程班信息、查看考試安排、查看今日課程、查看天氣、查看開課通知單、查詢學生評教、查看學院新聞和搖一搖點名等。
關鍵詞: 教務系統(tǒng); Android平臺; 網(wǎng)頁解析; SQLite數(shù)據(jù)庫
中圖分類號:TP315 文獻標志碼:A 文章編號:1006-8228(2014)06-38-03
0 引言
隨著移動互聯(lián)網(wǎng)以及智能手機的快速發(fā)展,以前只能在PC上處理的事務漸漸被轉移到移動終端,我們逐漸邁入移動互聯(lián)網(wǎng)的時代。本設計將綜合教務系統(tǒng)的功能拓展到Android手機終端上,為方便移植,直接采用了網(wǎng)頁解析和交互的方法,以便教師快捷獲取教務系統(tǒng)信息、學院新聞和天氣等服務,提高教學工作的效率。
1 系統(tǒng)設計架構
1.1 需求分析
本系統(tǒng)將滿足用戶隨時隨地利用移動設備訪問校內資源的需求,并可解決傳統(tǒng)移動設備訪問校園網(wǎng)絡的弊端和局限[1]。客戶端功能需求包括:登錄、查詢課程表、查詢課程班、查看通告信息、查看開課通知單、查看考試安排、查詢學生評教、查看通知公告、查看學院新聞、查看教務新聞、查看天氣、記事本、查看今日課程、加載學院網(wǎng)頁版主頁和搖一搖點名等。
1.2 系統(tǒng)流程圖
該應用開始加載后要求用戶登錄,登錄成功后進入系統(tǒng)主界面,當用戶點擊視圖時,程序從主界面跳轉到相應的Activity上,響應相應的用戶請求[2],也可以選擇退出應用,系統(tǒng)流程圖如圖1所示。
1.3 功能模塊設計
系統(tǒng)按功能劃分可分為三個模塊:我的教務、新聞中心和工具模塊。
⑴ 我的教務模塊
本模塊包括綜合教務系統(tǒng)的七個常用功能:課程表、課程班信息、通告信息、開課通知單、考試安排和學生評教等。
⑵ 新聞中心模塊
本模塊包括學院新聞、通知公告、高教動態(tài)、教務新聞等欄目。
⑶ 工具模塊
本模塊包括天氣、記事本、今日課程、web學院主頁和搖一搖等。
1.4 數(shù)據(jù)庫設計
Android上的數(shù)據(jù)存儲可以采用SQLite來完成,SQLite是集成在Android平臺上的一個嵌入式關系數(shù)據(jù)庫,其最大特點是SQLite可以保存任何類型的數(shù)據(jù)到任何字段中[3]。為了實現(xiàn)記事本的功能,創(chuàng)建數(shù)據(jù)庫Notes.db,記事表表名為notes_table,其結構如表1所示。
2 具體實現(xiàn)
2.1 界面設計
本系統(tǒng)主界面采用TAB標簽進行分頁顯示,分別為圖塊菜單頁、列表菜單頁等。
圖塊菜單頁,采用長方形或正方形圖塊顯示系統(tǒng)功能菜單,簡潔清爽,色彩感較好,且學校日歷和天氣能夠動態(tài)顯示,界面效果圖如圖2所示。
列表菜單頁,將菜單項按功能進行分類,分為我的教務、新聞中心、工具三大類,分別以條形框的形式顯示,方便查找,其中我的教務模塊界面效果圖如圖3所示。
2.2 各模塊實現(xiàn)
⑴ 登錄功能實現(xiàn)
用戶使用本系統(tǒng)首先要通過登錄驗證。登錄包括三個過程,啟動系統(tǒng)時首先檢測當前是否有可用網(wǎng)絡,如果沒有網(wǎng)絡,彈出是否設置網(wǎng)絡對話框;在可用網(wǎng)絡情況下,登錄視圖根據(jù)上次是否已有用戶登錄成功記錄,若用戶之前設置了“記住我”,則使用存儲用戶名和密碼到xml文件的key-value鍵值對數(shù)據(jù),默認將數(shù)據(jù)存放在系統(tǒng)路徑[4],登錄時讀取之后執(zhí)行登錄Handle,否則系統(tǒng)提示用戶輸入用戶名和密碼;登錄是通過向本地服務器傳遞用戶名和密碼數(shù)據(jù)實現(xiàn),即手機客戶端把教師用戶名和密碼、通過網(wǎng)絡傳遞給本地服務器, 本地服務器再通過網(wǎng)絡POST請求教務系統(tǒng)服務器,取得響應結果,此處是網(wǎng)頁源代碼,本地服務器端進行網(wǎng)頁解析,若網(wǎng)頁源文件存在登錄成功標識“歡迎您”則成功登錄,進入到系統(tǒng)主頁面,否則提示相應錯誤。
⑵ 我的教務模塊實現(xiàn)
教務模塊實現(xiàn),主要是通過向本地服務器端發(fā)送請求,本地服務器再通過請求教務系統(tǒng)服務器得到網(wǎng)頁源代碼,通過jsoup解析得到需要的信息。解析的結果再以json或網(wǎng)頁的形式傳送給客戶端。此過程需定義string型的url,用來連接服務器端,向服務器端發(fā)送請求,url的值就是服務器端的地址[5]。在服務器端,系統(tǒng)將數(shù)據(jù)集合并且組裝為XML文件,在客戶端來解析這個文件[6]。
如“查詢課程表”的功能實現(xiàn)過程是:GET請求本地服務器,本地服務器再GET請求教務系統(tǒng)服務器,取得課表首頁源代碼,通過jsoup解析獲取學期信息列表,以json格式傳遞給客戶端,客戶端解析后顯示到界面上,再根據(jù)當前所選學期即本學期,發(fā)送鏈接標識給本地服務器,本地服務器再次根據(jù)鏈接獲取網(wǎng)頁的源代碼,截取課程表格那部分源代碼,以網(wǎng)頁的格式傳送給客戶端,客戶端獲取后附加上本地CSS樣式文件,用WebView組件進行加載,即可顯示成網(wǎng)頁版樣式的的課表,通過選擇不同學期發(fā)送請求獲取相應課程表。課程表如圖4所示。
類似地,可依次實現(xiàn)課程班信息、通告信息、開課通知單、考試安排和學生評教等功能。
⑶ 新聞模塊實現(xiàn)
客戶端使用HttpURLConnection發(fā)送 GET請求學院新聞欄目的RSS服務器,獲得服務器返回的數(shù)據(jù)流,通過XmlPullParser解析器來解析得到新聞列表,其中包含標題、發(fā)布時間、新聞描述和新聞鏈接,以自定義的列表顯示所有新聞的標題和發(fā)布時間,用戶可以選擇自己想看的新聞進行點擊,點擊后跳轉到顯示新聞具體信息的界面,顯示標題、發(fā)布時間、描述和瀏覽原文的鏈接,點擊瀏覽原文的鏈接,可以用WebView加載該鏈接顯示新聞原網(wǎng)頁。
⑷ 工具模塊實現(xiàn)
① 天氣查看
天氣服務功能是通過調用服務器端的方法來獲取天氣數(shù)據(jù)。其核心是通過調用通信協(xié)議SOAP(Simple Object Access Protocol)的接口,從Web Service 提供商中提取信息。本模塊使用Ksoap2標準,調用webxml.com.cn網(wǎng)站提供的免費天氣服務接口,其天氣數(shù)據(jù)來源于中國氣象局,數(shù)據(jù)每2.5小時左右自動更新一次,準確可靠。本文實現(xiàn)了獲得漳州和廈門的最近三天的天氣狀況,其中包括:天氣現(xiàn)象、溫度、風向、和風速。
② 實現(xiàn)記事本
編寫一個類繼承SQLiteOpenHelper,通過getWritableDatabase()獲得一個SQLiteDatabase數(shù)據(jù)庫,建立增刪改查操作方法。在記事本界面上,建立標題和內容兩個文本輸入框,用戶輸入完成后點擊添加按鈕,執(zhí)行數(shù)據(jù)庫中添加方法,若添加成功,更新顯示事件列表,點擊事件可以查看事件詳情,也可以在詳情界面選擇刪除該事件。
③ 今日課程
先獲取學校首頁日歷,當判斷存在“本學期”時,再次判斷系統(tǒng)時間是星期幾,加載當日的課表,其他情況如春假、秋假和學生寒暑假等情況,不加載今日課程表。
④ 訪問學院主頁
使用系統(tǒng)WebView視圖學院的加載Web網(wǎng)站,實現(xiàn)了簡單瀏覽器的功能,可以如瀏覽器訪問學院網(wǎng)站。
⑤ 搖一搖點名
客戶端使用HttpURLConnection發(fā)送 GET請求本地服務器,本地服務器通過GET請求獲取課程班頁面源代碼,解析獲取課程班信息,其中包括上課人數(shù)和學生名單鏈接,存儲到課程班集合,以json格式返回給客戶端,客戶端根據(jù)所選課程班信息,GET請求服務器得到該課程的學生名單,應用加速度傳感器的工作原理,快速晃動手機,即搖一搖[7],隨機抽取1到5個學生,將抽取到的學生信息以列表顯示到屏幕上。
點擊“查看名單”按鈕,可查看當前課程班的所有學生,搖動手機或點擊該按鈕可以隨機取得指定數(shù)目的學生。結果顯示到按鈕下面的自定義列表中,輕點單行學生可以進行選擇登記請假或曠課到記事本的操作,長按單行學生信息,可以將該學生信息持久化,增大下次被搖到的概率。點名界面如圖5所示。
3 結束語
本文介紹了基于Android平臺的教務系統(tǒng)的設計與實現(xiàn),該系統(tǒng)豐富了教師對教務相關信息等校園資源的獲取方式,教師可隨時通過手機登錄,獲取教務系統(tǒng)信息、學院新聞和天氣等服務,同時本系統(tǒng)加入了“搖一搖點名”功能,幫助教師實現(xiàn)考勤或提問點名的簡單化和趣味化。技術實現(xiàn)上通過直接采用網(wǎng)頁解析和交互的方法,方便擴展和移植。
本系統(tǒng)仍存在不足之處,如用戶操作界面還不夠精美,RSS新聞每次點擊都需重新獲取等,這些問題需要進一步改進。同時,本系統(tǒng)還可以進一步擴展常用功能,帶給用戶更多更周到的體驗。
參考文獻:
[1] 趙英,王飛.手持移動設備在校園信息系統(tǒng)中的應用[J].計算機技術與發(fā)展,2012.22:195-197
[2] 林永興.基于Android的校園助手手機應用程序的研究與設計[J].硅谷,2012.3:60
[3] 韓迪.Android創(chuàng)意實例詳解[M].北京郵電大學出版社,2012.
[4] 尹京花.基于Android開發(fā)的數(shù)據(jù)存儲[J].數(shù)字通信,2012.6:79-81
[5] 關東升,趙志榮.Android開發(fā)案例驅動教程[M].北京:機械工業(yè)出版社,2011.
[6] 張新柱.基于Android手機終端信息查詢系統(tǒng)的設計[J].齊齊哈爾大學學報,2012(4):47-50
[7] 張思民.Android應用程序設計[M].清華大學出版社,2013.