李向東 楊昕
摘 要: 在移動(dòng)互聯(lián)網(wǎng)時(shí)代,為滿足隨時(shí)隨地進(jìn)行學(xué)習(xí)的需求,設(shè)計(jì)了一種基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng),該系統(tǒng)可以運(yùn)行在基于Android系統(tǒng)的手機(jī)和平板電腦等終端上,能夠進(jìn)行學(xué)生課程學(xué)習(xí),學(xué)生與教師進(jìn)行在線交流等教學(xué)活動(dòng)。系統(tǒng)采用J2ME技術(shù)進(jìn)行開發(fā),能夠跨平臺(tái)運(yùn)行,客戶端用戶登錄使用OAUTH認(rèn)證;用戶可以通過RSS訂閱學(xué)習(xí)課程,簡(jiǎn)便及時(shí);系統(tǒng)的XML數(shù)據(jù)采用SAX解析,使得讀取和操作XML數(shù)據(jù)的更快速。系統(tǒng)使用流量小,經(jīng)濟(jì)投入少。
關(guān)鍵詞: Android平臺(tái); 移動(dòng)學(xué)習(xí)系統(tǒng); OAUTH認(rèn)證; RSS訂閱; SAX解析
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)04-24-03
Abstract: In the mobile Internet era, in order to learn whenever and wherever possible, a mobile learning system based on Android platform is designed. The system can operate on phones and tablet PCs based on Android. Students can learn and communicate online with teachers. J2ME technology is utilized to develop this system, which can run across platforms. The client user can login by OAUTH authentication and learn the course through the RSS subscription convenient and timely. XML data is analyzed by SAX, which makes reading and manipulating XML data be more quickly. The system requires smaller flow and less investment.
Key words: Android; mobile learning system; OAUTH certification; RSS curriculum subscription; SAX analysis
0 引言
移動(dòng)終端和移動(dòng)互聯(lián)網(wǎng)近幾年發(fā)展迅猛,基于Android移動(dòng)終端價(jià)格低,WIFI無線網(wǎng)和移動(dòng)網(wǎng)絡(luò)資費(fèi)便宜,這使移動(dòng)互聯(lián)網(wǎng)4G已經(jīng)開始進(jìn)入人們的生活,人們已經(jīng)不滿足于PC上的數(shù)字化學(xué)習(xí)(E-learning)了,逐漸遷移到使用手機(jī)等移動(dòng)終端的移動(dòng)學(xué)習(xí)(Mobile Learning)上。移動(dòng)學(xué)習(xí)是一種借助移動(dòng)終端不受時(shí)間、空間的限制發(fā)生的學(xué)習(xí),可以為人們提供隨時(shí)隨地的學(xué)習(xí)體驗(yàn)[1],打破了傳統(tǒng)教育在地域和時(shí)間上的限制,這是一種未來的不可缺少的學(xué)習(xí)模式,也對(duì)實(shí)現(xiàn)終身化學(xué)習(xí)理念有著極其重要的意義。
1 移動(dòng)學(xué)習(xí)系統(tǒng)需求分析
1.1 功能需求
教師可以通過PC的瀏覽器對(duì)移動(dòng)學(xué)習(xí)系統(tǒng)進(jìn)行管理,例如添加通知、管理課程學(xué)習(xí)材料、師生進(jìn)行在線交流等,學(xué)生可以使用手機(jī)客戶端通過無線網(wǎng)絡(luò)查看通知、進(jìn)行課程的訂閱、瀏覽文本/課件/教學(xué)視頻等學(xué)習(xí)資料、與教師進(jìn)行在線交流等。
1.2 經(jīng)濟(jì)需求
移動(dòng)學(xué)習(xí)要能滿足大多數(shù)人的需求,經(jīng)濟(jì)投入少。而采用基于Android平臺(tái)進(jìn)行開發(fā)經(jīng)濟(jì)實(shí)惠,Android平臺(tái)的移動(dòng)終端品牌多,市場(chǎng)占有率高,可選擇余地大,價(jià)格便宜[2]。
1.3 技術(shù)需求
采用JAVA技術(shù)進(jìn)行開發(fā),并與Android平臺(tái)結(jié)合,非常便捷,軟件跨平臺(tái),方便移植。
2 移動(dòng)學(xué)習(xí)系統(tǒng)開發(fā)的關(guān)鍵技術(shù)
2.1 J2ME技術(shù)
系統(tǒng)采用J2ME(Java 2 Micro Edition)開發(fā),J2ME是把Java應(yīng)用于移動(dòng)通訊設(shè)備、嵌入式設(shè)備或消費(fèi)性電器而推出的一項(xiàng)技術(shù)。由于技術(shù)開放、源代碼開源,使得系統(tǒng)能夠跨平臺(tái)運(yùn)行實(shí)現(xiàn)[3],基于Android平臺(tái)移動(dòng)學(xué)習(xí)系統(tǒng)采用J2ME技術(shù)開發(fā)比較合適,也能夠方便地遷移到Windows Phone等其他平臺(tái),還可以迅速通過本地協(xié)議將存儲(chǔ)在客戶端信息調(diào)出來供用戶瀏覽,在系統(tǒng)需要時(shí)才從互聯(lián)網(wǎng)下載信息,節(jié)省流量,減少帶寬的占用。
2.2 OAUTH技術(shù)
OAUTH是一種安全的、開放而又簡(jiǎn)易的用戶資源的授權(quán)協(xié)議,各大互聯(lián)網(wǎng)公司都提供了OAUTH認(rèn)證服務(wù),移動(dòng)學(xué)習(xí)系統(tǒng)采用OAUTH認(rèn)證,可以有權(quán)訪問用戶授權(quán)的資源,比較簡(jiǎn)捷,同時(shí)用戶信息不會(huì)泄露,安全性高[4]。
2.3 Android后臺(tái)Service技術(shù)
Service是運(yùn)行在后臺(tái),不和用戶交互應(yīng)用的服務(wù)。Service自己不能運(yùn)行,需要通過Activity或者其他Context對(duì)象來調(diào)用,在移動(dòng)學(xué)習(xí)系統(tǒng)客戶端使用Context.startService()方式啟動(dòng)Service[5]。后臺(tái)服務(wù)運(yùn)行的學(xué)生Android客戶端能夠快速啟動(dòng),并且保證及時(shí)接收到推送信息。
2.4 RSS及SAX技術(shù)
RSS(Really Simple Syndication)是一種用于共享新聞和其他Web內(nèi)容的數(shù)據(jù)交換規(guī)范,起源于網(wǎng)景通訊公司的推"Push"技術(shù),通過RSS技術(shù)將客戶訂閱的內(nèi)容傳送給移動(dòng)學(xué)習(xí)系統(tǒng)客戶端。對(duì)于RSS中傳遞的XML使用SAX來解析,這是讀取和操作XML數(shù)據(jù)的更快速、更輕量的方法[6]。
3 Android移動(dòng)學(xué)習(xí)系統(tǒng)總體架構(gòu)
圖1是移動(dòng)學(xué)習(xí)系統(tǒng)的總體架構(gòu),系統(tǒng)采用三層的C/S+B/S模式架構(gòu),學(xué)生使用Android客戶端通過WIFI/3G/4G無線網(wǎng)絡(luò),采用OAUTH認(rèn)證登錄,進(jìn)行RSS訂閱、課程資源訪問;教師使用PC中的WWW瀏覽器進(jìn)行移動(dòng)學(xué)習(xí)系統(tǒng)的管理。
移動(dòng)學(xué)習(xí)系統(tǒng)采用三層結(jié)構(gòu)開發(fā),如表1所示,第一層為用戶層,分為PC客戶端和Android客戶端,負(fù)責(zé)用戶界面的設(shè)計(jì);第二層為業(yè)務(wù)邏輯層,包括應(yīng)用服務(wù)器,如采用Tomcat搭建Web服務(wù)器層;第三層為數(shù)據(jù)操作層負(fù)責(zé)數(shù)據(jù)的存取,服務(wù)器數(shù)據(jù)庫(kù)采用MYSQL搭建,Android手機(jī)客戶端采用輕量級(jí)的sqllte3,符合客戶端存儲(chǔ)數(shù)據(jù)量少的特點(diǎn)。
4 系統(tǒng)流程設(shè)計(jì)
整個(gè)移動(dòng)學(xué)習(xí)系統(tǒng)設(shè)計(jì)了三種角色:Android客戶端的學(xué)生用戶、PC瀏覽器端的教師和系統(tǒng)管理員。系統(tǒng)的流程圖如圖2所示。Android客戶端可以通過OAUTH技術(shù)授權(quán)認(rèn)證。學(xué)生可以進(jìn)行課程的通知訂閱,在課程學(xué)習(xí)資料中瀏覽課程的課件和視頻等學(xué)習(xí)資料,和教師進(jìn)行在線的交流,對(duì)教師發(fā)布的課程練習(xí)題進(jìn)行操練。教師通過PC瀏覽器端進(jìn)行課程的管理,包括:課件、視頻的發(fā)布、修改、刪除,發(fā)布最新的課程通知,和學(xué)生進(jìn)行在線的學(xué)習(xí)交流等等。管理員用戶可以對(duì)系統(tǒng)進(jìn)行配置、管理各功能模塊、用戶權(quán)限的設(shè)置等等。
5 系統(tǒng)功能模塊設(shè)計(jì)
5.1 用戶登錄模塊設(shè)計(jì)
學(xué)生Android客戶端采用OAUTH認(rèn)證登錄,OAUTH認(rèn)證服務(wù)作為一個(gè)開放的服務(wù)和服務(wù)標(biāo)準(zhǔn),任何第三方軟件都可以使用,任何系統(tǒng)都可以實(shí)現(xiàn)自身的OAUTH認(rèn)證服務(wù),移動(dòng)學(xué)習(xí)系統(tǒng)使用OAUTH認(rèn)證服務(wù)提供的JAVA語(yǔ)言開發(fā)包進(jìn)行開發(fā),從而大大節(jié)約了程序員的時(shí)間,開發(fā)也非常簡(jiǎn)易。包括Google,Yahoo,Microsoft在內(nèi)的很多互聯(lián)網(wǎng)大公司都提供OAUTH認(rèn)證服務(wù),移動(dòng)學(xué)習(xí)系統(tǒng)采用新浪微博、騰訊QQ和人人網(wǎng)的認(rèn)證服務(wù),系統(tǒng)允許采用這些平臺(tái)的賬號(hào)直接登錄,方便了用戶的操作。移動(dòng)學(xué)習(xí)系統(tǒng)向這些OAUTH認(rèn)證服務(wù)提供商請(qǐng)求未授權(quán)的Request Token。向RequestTokenURL發(fā)起請(qǐng)求,然后獲取用戶授權(quán)的Request Token,最后用授權(quán)的Request Token換取Access Token,當(dāng)系統(tǒng)拿到Access Token后,就可以有權(quán)訪問用戶授權(quán)的資源了。系統(tǒng)中新浪微博的OAUTH認(rèn)證具體的流程如圖3所示。
5.2 課程通知訂閱模塊
課程通知模塊采用RSS內(nèi)容聚合模式技術(shù)開發(fā),使用RSS,服務(wù)器可以統(tǒng)一為學(xué)生Android客戶端推送訂閱信息,可以快速地了解課程最新信息,獲取系統(tǒng)內(nèi)容更新,具有較高的時(shí)效性。通過RSS訂閱,服務(wù)器給客戶端傳送統(tǒng)一格式的XML文件,客戶端使用SAX技術(shù)對(duì)XML文件進(jìn)行解析,當(dāng)SAX解析引擎在RSS源中完成了XML數(shù)據(jù)解析后,將創(chuàng)建一個(gè)RSSFeed類的實(shí)例,使它包含了需要處理RSS數(shù)據(jù)所需的所有內(nèi)容。RSSFeed類包含三個(gè)重要元素,其中
⑴ 創(chuàng)建XML解析處理器;
⑵ 創(chuàng)建SAX解析器;
⑶ 將XML解析處理器分配給解析器;
⑷ 對(duì)文檔進(jìn)行解析,將每個(gè)事件發(fā)送給處理器。
最后,客戶端可以獲取服務(wù)器傳遞的相關(guān)課程信息摘要,學(xué)生用戶通過簡(jiǎn)單的課程信息來決定是否通過地址請(qǐng)求來獲取相關(guān)的課程資源,不必時(shí)常打開課程信息進(jìn)行刷新,一旦有新的通知內(nèi)容,就會(huì)及時(shí)地推送給客戶端,為用戶節(jié)省移動(dòng)數(shù)據(jù)流量和時(shí)間。用戶通過對(duì)課程訂閱的設(shè)置,還可以對(duì)訂閱信息進(jìn)行篩選,只訂閱自己感興趣的信息源,并且,課程通知訂閱模塊提供下載功能,課程課件、視頻等信息可以直接下載到Android客戶端,方便學(xué)習(xí)。
5.3 課程學(xué)習(xí)模塊
課程的學(xué)習(xí)資料通過服務(wù)器中的統(tǒng)一XML文件模板生成,發(fā)送到客戶端,同樣也由SAX來進(jìn)行解析,解析后XML文件中課程標(biāo)題、內(nèi)容等通過列表控件進(jìn)行布局顯示,當(dāng)學(xué)生用戶通過列表的URL進(jìn)行學(xué)習(xí)內(nèi)容的選擇,并進(jìn)入詳細(xì)的課程學(xué)習(xí),由于考慮到學(xué)習(xí)終端的屏幕大小,采用相對(duì)的布局結(jié)構(gòu),定義了兩個(gè)xml文件texttitle_layout.xml和textbody_layout.xml實(shí)現(xiàn)界面的標(biāo)題和正文布局。
當(dāng)打開某一門課程進(jìn)行視頻學(xué)習(xí)時(shí),移動(dòng)學(xué)習(xí)系統(tǒng)通過URL下載視頻并緩存到系統(tǒng)中的方式,采用調(diào)用Android系統(tǒng)的VideoView和系統(tǒng)中已經(jīng)安裝的其他視頻播放器來播放視頻,支持的格式有mp4、3gp、mov和wmv等等,對(duì)于播放一次后的視頻,已經(jīng)下載到系統(tǒng)緩存內(nèi),下次播放就不需要再重新下載,節(jié)省流量。
6 系統(tǒng)運(yùn)行與測(cè)試
系統(tǒng)開發(fā)完成后采用HTC公司的Android手機(jī)G11型號(hào)進(jìn)行各項(xiàng)功能的測(cè)試,G11的硬件基本參數(shù)如表2所示。安裝APK文件后,在移動(dòng)3G的網(wǎng)絡(luò)環(huán)境下進(jìn)入移動(dòng)學(xué)習(xí)系統(tǒng),如圖4所示,進(jìn)行用戶的登錄,并且可以進(jìn)行OAUTH授權(quán),進(jìn)入系統(tǒng)后,可以接收到RSS訂閱,如圖5所示,用戶可選擇感興趣的課程進(jìn)入學(xué)習(xí)。如圖6所示為正進(jìn)行課程教學(xué)的視頻,視頻播放流暢,各個(gè)模塊都通過了運(yùn)行和測(cè)試。
7 結(jié)束語(yǔ)
在當(dāng)今高速發(fā)展的移動(dòng)互聯(lián)網(wǎng)時(shí)代,手機(jī)、平板電腦逐漸普及,移動(dòng)學(xué)習(xí)系統(tǒng)可以借助WIFI和3G/4G移動(dòng)網(wǎng)絡(luò)使人們隨時(shí)隨地都能進(jìn)行學(xué)習(xí)活動(dòng)。本系統(tǒng)基于Android運(yùn)行,使用范圍廣,可選擇的終端多。在技術(shù)上采用流行的J2ME開發(fā),使得系統(tǒng)可以跨平臺(tái)運(yùn)行。結(jié)合OAUTH認(rèn)證技術(shù)、RSS技術(shù)和SAX技術(shù),完成了本學(xué)習(xí)系統(tǒng)的各項(xiàng)功能,保證用戶能夠流暢地進(jìn)行課程學(xué)習(xí)和在線交流,并且能夠基于移動(dòng)終端和移動(dòng)互聯(lián)網(wǎng)的特點(diǎn),在UI設(shè)計(jì)、流量控制中保證了良好的用戶體驗(yàn)。
參考文獻(xiàn):
[1] 趙垂兵.基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京郵電大學(xué),2012.
[2] 熊水柔.基于Android系統(tǒng)的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2012.
[3] 郭晶晶.基于J2ME的移動(dòng)學(xué)習(xí)系統(tǒng)的研究與實(shí)現(xiàn)[D].武漢理工大學(xué),2012.
[4] 周輝.基于Android移動(dòng)學(xué)習(xí)平臺(tái)研究與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
[5] 郭宏志.Android應(yīng)用開發(fā)詳解[M].電子工業(yè)出版社,2010.
[6] 李小康.基于Android的手持終端學(xué)習(xí)系統(tǒng)[D].西安電子科技大學(xué),2012.