《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Android的教學(xué)資源庫移動客戶端的研究與實現(xiàn)
基于Android的教學(xué)資源庫移動客戶端的研究與實現(xiàn)
2014年微型機(jī)與應(yīng)用第24期
倪建新
(無錫高等師范學(xué)校,江蘇 無錫 214153)
摘要: 提出了一種基于Android平臺的教學(xué)資源庫移動客戶端的解決方法,,分析了該系統(tǒng)的架構(gòu)和主要模塊,,并以本校的教學(xué)資源庫為例,,具體實現(xiàn)了該系統(tǒng),,其對移動校園應(yīng)用以及移動學(xué)習(xí)系統(tǒng)的研究具有一定的參考價值,。
Abstract:
Key words :

  摘  要: 提出了一種基于Android平臺的教學(xué)資源庫移動客戶端的解決方法,,分析了該系統(tǒng)的架構(gòu)和主要模塊,,并以本校的教學(xué)資源庫為例,具體實現(xiàn)了該系統(tǒng),,其對移動校園應(yīng)用以及移動學(xué)習(xí)系統(tǒng)的研究具有一定的參考價值,。

  關(guān)鍵詞: Android;資源庫,;移動客戶端,;移動校園;移動學(xué)習(xí)

0 引言

  目前,,隨著數(shù)字化校園工作的不斷深入,,各校都在積極研究數(shù)字化校園的各項應(yīng)用,其中教學(xué)資源庫的建設(shè)是一個重點,。已有的資源庫應(yīng)用一般都采用B/S架構(gòu),,各類資源都放置在服務(wù)器上,在PC端通過瀏覽器實現(xiàn)用戶的接入,。用這種方式在移動設(shè)備上進(jìn)行接入時會存在一些弊端,,如操作繁瑣、可交互性差,、數(shù)據(jù)流量大等,。這些情況以及移動智能設(shè)備的大量普及,使得開發(fā)教學(xué)資源庫移動客戶端系統(tǒng)變得非常迫切,。本文設(shè)計并實現(xiàn)了一個基于Android平臺的教學(xué)資源庫移動客戶端系統(tǒng),,用戶通過該系統(tǒng)可以在Android智能終端上實現(xiàn)課程資源學(xué)習(xí)、接收新資源信息,、視頻點播,、在線練習(xí),、用戶交流等功能。

1 系統(tǒng)的架構(gòu)設(shè)計

  本系統(tǒng)采用C/S架構(gòu)設(shè)計,,重點在于移動客戶端的開發(fā),,學(xué)校的服務(wù)器端采用的是.NET+IIS+SQLServer的配置,考慮到安全性及數(shù)據(jù)量的問題,,在遠(yuǎn)程數(shù)據(jù)庫的連接上,,Android客戶端通過WebService這個橋梁來訪問SQLServer,獲得相應(yīng)的XML格式數(shù)據(jù),,并通過Android自帶的PULL解析器解析出相關(guān)數(shù)據(jù)顯示在客戶端UI界面中,。

  客戶端模塊在功能上主要分為用戶登錄、我的通知,、在線學(xué)習(xí),、視頻點播、在線練習(xí),、資料下載,、師生互動,、用戶交流和密碼設(shè)置等,。為了程序的簡潔,移動客戶端未設(shè)置教學(xué)資源庫的管理功能,,管理員賬號只能通過PC端登錄實現(xiàn)管理功能,。客戶端在業(yè)務(wù)邏輯的實現(xiàn)上主要由以下幾個類構(gòu)成:WebService操作數(shù)據(jù)庫類DBOperation,、Android連接WebService類HttpConnSoap,、XML數(shù)據(jù)解析類XMLParser類以及相關(guān)的界面類UserLogin、CourseView等,。

  本移動客戶端的基本架構(gòu)如圖1所示,。

001.jpg

2 系統(tǒng)主要模塊的實現(xiàn)

  2.1 服務(wù)器端接口ResourceWebservice

  一般的C/S架構(gòu)程序在數(shù)據(jù)庫連接上都采用直接連接,對于移動客戶端的開發(fā)帶來的問題是數(shù)據(jù)流量大,、安全性不好等問題,。本系統(tǒng)在數(shù)據(jù)庫連接及操作上通過自定義的服務(wù)器端接口程序ResourceWebservice來操作教學(xué)資源庫SQLServer數(shù)據(jù)庫Resource,獲得數(shù)據(jù)并轉(zhuǎn)換成XML格式,。由于采用了WebService方式來進(jìn)行中轉(zhuǎn)操作,,Android客戶端中所有的數(shù)據(jù)庫操作都必須在ResourceWebService中寫成相應(yīng)的接口函數(shù),ResourceWebService中獲得指定資源學(xué)習(xí)內(nèi)容的接口函數(shù)示例如下:

  [WebMethod(Description="獲取指定資源學(xué)習(xí)內(nèi)容")]

  public string[]selectStudyInfo(int courseid,,int contentid)

  {

  return dbOperation.selectStudyInfo(courseid,,contentid).ToArray();

  }

  這里DBOperation是一個操作數(shù)據(jù)庫的類,,所有對教學(xué)資源庫的數(shù)據(jù)庫操作都寫在這個類中,,其中包括在線學(xué)習(xí)模塊的查詢接口,、師生互動的更新接口等,使用時實例化DBOperation類,,然后即可直接調(diào)用,。

   2.2 Android調(diào)用ResourceWebService

  服務(wù)器端的WebService接口函數(shù)配置好之后,在Android中就可以通過調(diào)用它們達(dá)到操作數(shù)據(jù)庫的目的,,但Android系統(tǒng)自帶的SDK中并沒有提供調(diào)用WebService的類庫,,本系統(tǒng)在開發(fā)過程中使用了適合手機(jī)客戶端的KSOAP2,并設(shè)計了較為通用的getWebService方法,,將調(diào)用得到的返回數(shù)據(jù)先存放在數(shù)據(jù)流中,,然后進(jìn)行XML解析。getWebService方法設(shè)計如下:

  public InputStream getWebService(String methodName,,ArrayList<String> ParamList,,ArrayList<String> ParValueList);

  其中methodName是調(diào)用的接口函數(shù)名稱,,ParamList是調(diào)用的參數(shù)列表,,ParValueList是參數(shù)值的列表。以調(diào)用“獲取指定資源學(xué)習(xí)內(nèi)容”接口為例:

  String methodName="selectStudyInfo",;

  ParamList.add("courseid"),;ParamList.add("contentid");

  ParValueList.add("010"),;ParValueList.add("005"),;

  InputStream inputStream=ResourceWebService.getWebService(methodName,ParamList,,ParValueList),;

  2.3 XML數(shù)據(jù)解析類XMLParser

  當(dāng)?shù)玫椒祷財?shù)據(jù)的數(shù)據(jù)流后,需要進(jìn)行XML格式數(shù)據(jù)的解析,,本系統(tǒng)使用Android自帶的PULL解析器,,解析速度快,簡單易用,,非常適合手機(jī),、平板電腦等內(nèi)存有限的小型移動設(shè)備。XMLParser類的解析過程為設(shè)定開始元素和結(jié)束元素,,當(dāng)某個元素開始時,,調(diào)用parser.nextText()方法從數(shù)據(jù)流中提取所有數(shù)據(jù),當(dāng)解釋到一個文檔結(jié)束時,,自動生成EndDocument事件,。主要代碼如下:

  public ArrayList<StudyInfo>paraseStudyInfo(InputStream inputStream){

  XmlPullParser parser=Xml.newPullParser();

  int eventType = parser.getEventType();

  while(eventType!=XmlPullParser.END_DOCUMENT)

  {……

  eventType=parser.next(),;

  }

  }

  2.4 消息推送模塊

  該模塊使用了一個開源項目androiddpn,,通過XMPP協(xié)議實現(xiàn)了客戶端與服務(wù)器端的長久連接,將客戶端源代碼包androidpn-client-0.5.0.zip導(dǎo)入到移動客戶端項目后,,設(shè)置raw/androidpn.properties文件,,配置客戶端的apiKey、xmppHost,、xmppPort這三個參數(shù)就可以接收來自服務(wù)器端的推送消息,。在服務(wù)器端,只需運行服務(wù)器端源代碼包androidpn-server-0.5.0-bin.zip中的run.bat,,就可以直接搭建好消息推送服務(wù),。

  當(dāng)資源庫管理者更新了新的資源,如課程教師更新了課程內(nèi)容后,,可以通過瀏覽器打開Android Push Notification Admin Consle頁面,,將更新消息手動推送到設(shè)定了該課程的用戶手機(jī)上,消息會直接顯示在用戶屏幕上,,也可以通過“我的通知”模塊進(jìn)行查看,。

  2.5 視頻點播模塊

  視頻資源是教學(xué)資源庫建設(shè)的重點,用戶通過遠(yuǎn)程視頻點播可以再現(xiàn)教師課程教學(xué)的重點,,教學(xué)資源庫中所有的視頻資源均采用流媒體格式存儲在服務(wù)器端,,本系統(tǒng)移動客戶端未開發(fā)專用的視頻播放器,而是通過流媒體文件的URL地址調(diào)用本地應(yīng)用來進(jìn)行視頻資源的點播,。其主要代碼如下:

  Intent svideo=new Intent(),;

  svideo.setAction(Intent.ACTION_VIEW),;

  svideo.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP),;

  Uri uri=Uri.parse(url);//這里url表示流媒體文件在服務(wù)器端的地址

  svideo.setDataAndType(uri,,"video/*"),;

  startActivity(svideo);

3 系統(tǒng)的運行環(huán)境及運行實例展示

  教學(xué)資源庫服務(wù)器端配置為.NET4.0+IIS7.0+SQLServer2005,,移動客戶端Android運行環(huán)境要求在2.3.3版本及以上,,客戶端和服務(wù)器端通過WebService中轉(zhuǎn)連接。本系統(tǒng)在Android模擬器及Android真機(jī)中信U793,、聯(lián)想A850,、華為C8816等一般配置機(jī)型上均可以流暢運行,能隨時隨地通過移動終端獲取教學(xué)資源庫中的各類信息,,進(jìn)行課程內(nèi)容在線學(xué)習(xí),、師生互動、視頻點播、用戶交流等操作,,運行效果如圖2所示,。

002.jpg

4 結(jié)論

  移動設(shè)備的普及使得移動應(yīng)用的開發(fā)成為一種趨勢,本文設(shè)計并實現(xiàn)了基于Android平臺的教學(xué)資源庫移動客戶端系統(tǒng),,并作為江蘇省職業(yè)技術(shù)教育學(xué)會研究課題“Web2.0平臺下軟件技術(shù)專業(yè)教學(xué)資源信息化的實踐研究”的移動端研究內(nèi)容已在學(xué)生中進(jìn)行了初步試用,,極大地提高了學(xué)生的學(xué)習(xí)興趣,同時也出現(xiàn)了如師生互動,、消息推送等方面的一些不足,,隨著新技術(shù)的不斷發(fā)展這些不足將得到改進(jìn),以推動移動應(yīng)用開發(fā)的不斷前進(jìn),。

  參考文獻(xiàn)

  [1] 陳文,,郭依正.深入理解Android網(wǎng)絡(luò)編程[M].北京:機(jī)械工業(yè)出版社,2013.

  [2] 余志龍.Google Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,,2011.

  [3] 初雅莉,,陳昌穩(wěn).基于Android的智慧校園手機(jī)系統(tǒng)[J].微型機(jī)與應(yīng)用,2013,,32(15):15-17.

  [4] 仲偉,,吳晉.基于XMPP協(xié)議的校園實時推送系統(tǒng)的研究[J].武漢大學(xué)學(xué)報(理學(xué)版),2012,,S1:305-308.

  [5] 鄭潔瓊,,陳澤宇.3G網(wǎng)絡(luò)下移動學(xué)習(xí)的探索與實踐[J].開發(fā)教育研究,2012(1):159-162.

  [6] 呂偉.基于Android的移動學(xué)習(xí)平臺的設(shè)計與實現(xiàn)[D].南京:南京師范大學(xué),,2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。