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