王旭 盧江
1.中國(guó)電信集團(tuán)系統(tǒng)集成有限責(zé)任公司廣西分公司; 2.南寧比鄰信息技術(shù)有限公司
隨著移動(dòng)互聯(lián)網(wǎng)飛速發(fā)展,人們從對(duì)臺(tái)式電腦(personal computer, PC)的依賴逐漸轉(zhuǎn)向移動(dòng)終端。最新數(shù)據(jù)顯示,人們使用移動(dòng)設(shè)備(包括安卓智能手機(jī)、安卓平板電腦、iPhone、ipad)的比例已經(jīng)達(dá)到63%,超越了傳統(tǒng)PC。如何實(shí)現(xiàn)在移動(dòng)終端上實(shí)現(xiàn)在線學(xué)習(xí)和資源共享已成為教學(xué)信息化研究領(lǐng)域的熱點(diǎn)問題。根據(jù)本系統(tǒng)組的初步調(diào)查顯示,高校相關(guān)教學(xué)資源系統(tǒng),如教務(wù)管理系統(tǒng)、網(wǎng)上教學(xué)評(píng)價(jià)系統(tǒng)、圖書館管理系統(tǒng)以及一卡通管理系統(tǒng)等雖然日益受到師生們的青睞,但是,由于這些系統(tǒng)之間分布較為分散,使用時(shí)更多的依賴于傳統(tǒng)PC,從而導(dǎo)致師生使用的積極性受挫,不到情非得已不用,這非常不利于高校教學(xué)資源的信息化建設(shè)。越來越多的師生表示迫切需要一個(gè)能夠在移動(dòng)終端上隨時(shí)隨地地、高效地使用這類教學(xué)資源的管理系統(tǒng)[1]。通過該系統(tǒng)可以隨時(shí)隨地、方便、高效地在移動(dòng)終端上使用高校教學(xué)資源,如使用移動(dòng)終端輕松實(shí)現(xiàn)成績(jī)查詢、課程表導(dǎo)入查詢、新聞查看以及圖書館館藏檢索等。
設(shè)計(jì)與實(shí)現(xiàn)出一個(gè)基于Android的校園助手APP,該系統(tǒng)可運(yùn)行于Android操作系統(tǒng)。通過這款基于Android的校園助手APP,用戶可進(jìn)行以下操作:課程表查詢、成績(jī)查詢、圖書館館藏圖書查詢以及資訊查看。借助該系統(tǒng),可以增大同學(xué)們對(duì)教學(xué)資源利用的效率,減少不必要的操作,達(dá)到高效、隨時(shí)隨地地使用教學(xué)資源,并且促進(jìn)師生之間互動(dòng)交流與學(xué)習(xí)的目的。
在著手開發(fā)Android APP之前,需在PC上搭建相關(guān)的開發(fā)環(huán)境。目前,Google推薦使用Java開發(fā)Android APP,所以需安裝由Sun公司提供的JDK(即Java Development Kit, java開發(fā)工具包)、Google公司提供的Android SDK(即Android Software Development Kit, Android軟件開發(fā)工具包)以及Google公司推出的Android Studio開發(fā)工具。
運(yùn)行環(huán)境的搭建主要體現(xiàn)在后臺(tái)服務(wù)器的運(yùn)行上。本項(xiàng)目后臺(tái)使用Java EE進(jìn)行編寫,所以后臺(tái)服務(wù)器需要安裝運(yùn)行環(huán)境才能運(yùn)行后臺(tái)程序。服務(wù)器需要安裝的程序有:Apache Tomcat、JDK。在安裝Apache Tomcat過程中,需要指定服務(wù)器的訪問端口,且該端口不能被系統(tǒng)或者其它服務(wù)占用。
開發(fā)過程中,為了提高開發(fā)效率,提高代碼的可維護(hù)性,在對(duì)數(shù)據(jù)庫進(jìn)行操作的過程中,將對(duì)數(shù)據(jù)庫進(jìn)行的全部操作封裝到SQLiteDataHelper類中。
1.登錄模塊的實(shí)現(xiàn)
登錄模塊中,主要實(shí)現(xiàn)向大學(xué)教務(wù)處服務(wù)器程序發(fā)生請(qǐng)求,經(jīng)過解析服務(wù)器返回的消息,進(jìn)而可判斷登錄是否成功。
2.課表模塊的實(shí)現(xiàn)
由于一周有七天的課程表需要展示,所以在實(shí)現(xiàn)的過程中,使用ViewPager裝入7個(gè)Fragment,每個(gè)Fragment裝入一天的課程表信息。
(a)添加課程模塊的實(shí)現(xiàn)
添加課程,即向數(shù)據(jù)庫課表緩存表table_timetale中插入一條課程表信息,實(shí)現(xiàn)過程如下:
通過id的值來判斷添加課程是否成功,如果id>0,說明添加成功;反之,添加失敗。
(b)查看課程模塊的實(shí)現(xiàn)
通過每一個(gè)Fragment綁定同一個(gè)xml,實(shí)現(xiàn)每個(gè)星期課表展示視圖的統(tǒng)一。Fragment綁定view的過程如下:
View v=LayoutInflater1.from(getActivity()).inflate(R.layout.activity_table, null);
在每一個(gè)Fragment實(shí)例化一個(gè)ListView列表項(xiàng),用于展示課程。ListView通過BaseAdatper適配器實(shí)現(xiàn)ListView與數(shù)據(jù)的綁定,數(shù)據(jù)的來源為本地Sqlite數(shù)據(jù)庫。實(shí)現(xiàn)的過程如下:
mcursor 保存了從課程緩存表table_timetale中查詢到的數(shù)據(jù)的指針,通過循環(huán)遍歷mcursor 可以得到課程信息,實(shí)現(xiàn)過程如下:
拿出數(shù)據(jù)填充至Array List之后,通過mAdapter.notifyDataSetChanged()通過ListView更新其中的數(shù)據(jù)。
(c)分享課程模塊的實(shí)現(xiàn)
分享課程模塊的業(yè)務(wù)流程是,用戶通過屏幕截圖然后向好友分享截圖圖片。實(shí)現(xiàn)過程如下:
3.成績(jī)查詢模塊的實(shí)現(xiàn)
通過向大學(xué)教務(wù)服務(wù)器發(fā)送請(qǐng)求以實(shí)現(xiàn)成績(jī)查詢的功能。其中,使用阿里云服務(wù)器作為搭橋,這樣實(shí)現(xiàn)的目的是為了提高請(qǐng)求效率,實(shí)現(xiàn)二級(jí)緩存,減少網(wǎng)絡(luò)堵塞。
服務(wù)器中,實(shí)現(xiàn)課表查詢的過程如下:
客戶端APP中,實(shí)現(xiàn)成績(jī)更新自動(dòng)提醒功能的實(shí)現(xiàn)過程如下:當(dāng)用戶開啟改功能時(shí),系統(tǒng)將用戶的學(xué)號(hào)以及clientId上傳至服務(wù)器數(shù)據(jù)庫中,服務(wù)器程序每隔1個(gè)小時(shí)進(jìn)行查詢一次成績(jī),如有更新則向用戶發(fā)送通知。
4.廣場(chǎng)資訊模塊的實(shí)現(xiàn)
管理員通過網(wǎng)頁端向服務(wù)器數(shù)據(jù)庫中的sr_gc表中插入數(shù)據(jù),并上傳一張圖片;客戶端通過網(wǎng)絡(luò)請(qǐng)求從該數(shù)據(jù)庫中獲取數(shù)據(jù),解析之后展示給用戶。
5.圖書館模塊的實(shí)現(xiàn)
圖書館模塊的業(yè)務(wù)流程是:用戶輸入關(guān)鍵字,系統(tǒng)向相應(yīng)接口發(fā)送請(qǐng)求以獲得建議搜索詞,系統(tǒng)彈出列表輔助用戶完成輸入;用戶開始搜索之后,系統(tǒng)向廣西醫(yī)科大學(xué)圖書館相應(yīng)服務(wù)器程序發(fā)送請(qǐng)求,獲得該關(guān)鍵字對(duì)應(yīng)的搜索結(jié)果;用戶點(diǎn)擊某一個(gè)圖書之后,系統(tǒng)通過ISBN向豆瓣API發(fā)送請(qǐng)求,獲得該圖書的詳細(xì)介紹。
6.新聞模塊的實(shí)現(xiàn)
該模塊的實(shí)現(xiàn)過程是:客戶端向大學(xué)新聞中心發(fā)送請(qǐng)求,然后將請(qǐng)求結(jié)果解析后向用戶展示。
本系統(tǒng)將Android開發(fā)與服務(wù)器開發(fā)技術(shù)結(jié)合,針對(duì)高校在線服務(wù)資源整合力度不足、在線服務(wù)用戶體驗(yàn)較差的問題,開發(fā)了基于移動(dòng)終端設(shè)備的校園助手APP[3]。在現(xiàn)有的教務(wù)管理系統(tǒng)的基礎(chǔ)上,通過Android開發(fā)技術(shù),將學(xué)生課程表信息與成績(jī)信息推送至移動(dòng)終端上,解決了現(xiàn)有的教務(wù)系統(tǒng)使用不方便,用戶體驗(yàn)不夠好的問題[4];通過Java Web開發(fā)技術(shù),結(jié)合相關(guān)框架,實(shí)現(xiàn)在APP上實(shí)現(xiàn)圖書館館藏檢索的功能,解決了高校在線服務(wù)資源整合力度不足的問題。