倪紅軍,張學成
(南京師范大學泰州學院,江蘇 泰州 225300)
基于Android的移動學習評價系統(tǒng)的設計與實現(xiàn)
倪紅軍,張學成
(南京師范大學泰州學院,江蘇 泰州 225300)
針對目前移動學習平臺中對學習效果評價練習的欠缺,文中提出一種基于Android的移動學習評價系統(tǒng)。它不僅可以幫助學生隨時隨地檢查課程知識的掌握程度,而且老師也可以根據(jù)授課內(nèi)容隨時更新題庫和試題分析。文中介紹了系統(tǒng)開發(fā)中涉及的關鍵技術,探討了系統(tǒng)的架構、功能模塊和數(shù)據(jù)庫設計方案。利用.Net平臺下的Web Service技術實現(xiàn)了服務器端數(shù)據(jù)的導入功能,利用第三方類庫KSOAP實現(xiàn)了客戶端與服務器的數(shù)據(jù)交互,利用組件的隱藏和顯現(xiàn)實現(xiàn)了試題解析的展現(xiàn)。同時對界面進行了卡片式的設計,增強了用戶體驗。
移動學習;評價系統(tǒng);Web Service;KSOAP
隨著移動互聯(lián)技術的發(fā)展,新型的多元化學習方式應運而生,移動學習將人們分散的、不連續(xù)的、碎片狀的時間有效整合起來,以滿足人們的需要。移動學習平臺除了讓學習者學習其中的內(nèi)容外,對學習效果的評價也是必不可少的一個環(huán)節(jié)。傳統(tǒng)的評價方式大多以做紙質(zhì)練習題為主,而這種評價方式可能由于攜帶紙質(zhì)練習題的不方便性導致學習者不能充分利用碎片化的時間完成練習;也可能讓學習者完成練習后需要人工檢查錯誤而浪費時間;甚至需要印制大量的紙質(zhì)練習冊而導致物力、財力的浪費。
針對以上缺點,文中在當下流行的Android平臺環(huán)境下,結合Web Service技術設計一款移動學習評價系統(tǒng)。該系統(tǒng)以大學開設的《計算機應用基礎》課程練習為例,包含客戶端和服務器兩個部分,教師可以通過后臺向Web Service服務器導入練習題庫和標準答案,學生可以通過Android客戶端下載題庫和標準答案進行練習和評分解析。
1.1 Android
Android是Google開發(fā)的一種以Linux為基礎的開放源代碼的操作系統(tǒng),主要使用于便攜設備,現(xiàn)已從手機逐漸擴展到了平板電腦及其他領域。它包括一個操作系統(tǒng)、中間件和一些關鍵性的平臺應用[1-2]。由于它是開源系統(tǒng),它包括操作系統(tǒng)、用戶界面和應用程序的應用代碼都是免費的,可以更加方便程序員自由的使用,節(jié)約開發(fā)成本。目前發(fā)布的Android SDK提供了使用Java語言開發(fā)Android平臺應用程序的必要工具和API。
1.2 Web Service
Web Service是一種面向服務架構(Service Oriented Architecture,SOA)的技術,它能夠以一種平臺無關的方式在不同的系統(tǒng)之間進行交互。服務提供方定義由Web Service描述語言(Web Service Description Language,WSDL)描述的接口,并使用簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)消息與服務使用方進行消息交互。這些消息通過標準的Web協(xié)議(如HTTP、FTP或者SMTP)進行傳輸[3-6]。
2.1 系統(tǒng)框架設計
該系統(tǒng)采用B/S(瀏覽器/服務器)和C/S(客戶端/服務器)相結合的模式。服務器端利用Asp.Net技術為教師向Web Service服務器寫入數(shù)據(jù)提供Web訪問平臺,利用Web Service技術為客戶端提供遠程數(shù)據(jù)庫訪問功能;客戶端為Android平臺智能終端,學生利用其無線上網(wǎng)功能通過Internet訪問服務器端的Web Service接口來獲取相關數(shù)據(jù)。系統(tǒng)結構如圖1所示。
圖1 系統(tǒng)框架
2.2 系統(tǒng)功能設計
按照用戶使用的方便性和對系統(tǒng)需求的分析,移動學習評價系統(tǒng)主要包含服務器端功能模塊和客戶端功能模塊,如圖2所示。
2.2.1 服務器端功能模塊
(1)后臺管理模塊:導入題庫與答案解析信息,包括單選題、多選題、填空題和判斷題;添加、修改和刪除學生信息;查看學生練習成績。
(2)服務接口模塊:學生登錄服務接口、單選題服務接口、多選題服務接口、填空題服務接口和判斷題服務接口。
圖2 系統(tǒng)功能結構圖
2.2.2 客戶端功能模塊
(1)用戶登錄模塊:判斷客戶端用戶的合法性。如果輸入的用戶驗證信息正確,就可以通過Web Service服務器提供的服務接口下載題庫和答案解析;下載成功后,下一次運行客戶端應用程序時忽略此模塊。
(2)練習評價模塊:顯示當前可以進行練習的試卷總套數(shù),用戶選擇試卷后進行練習,練習完成后,可以進行評分和查看試題解析。
2.3 數(shù)據(jù)庫設計
根據(jù)移動學習評價系統(tǒng)中涉及的試題類型、試題數(shù)量和試題內(nèi)容,其數(shù)據(jù)量相對較少,所以文中系統(tǒng)服務器端(Web Service服務器)選用了Microsoft的桌面型關系數(shù)據(jù)庫Access[7],客戶端(Android移動智能終端)選用了內(nèi)存占用少、效率高的支持SQL語言的輕量級嵌入式數(shù)據(jù)庫SQLite[8-9]。結合功能需求和軟件性能,整個系統(tǒng)設計了用戶信息表、單選題表、多選題表、填空題表和判斷題表。用戶信息表結構如表1所示;填空題表結構與判斷題表結構類似,如表2所示;單選題表結構與多選題表結構類似,如表3所示。
表1 用戶信息表結構
表2 填空題和判斷題表結構
表3 單選題和多選題表結構
3.1 服務器端數(shù)據(jù)庫數(shù)據(jù)導入的實現(xiàn)
教師在整理練習題目時,往往習慣使用功能強大、界面友好的Excel電子表格的形式存儲數(shù)據(jù)。雖然可以直接將Excel電子表格的數(shù)據(jù)導入Access數(shù)據(jù)庫,但這種方法需要用戶導入后,還需要把數(shù)據(jù)庫文件上傳至Web Service服務器。該方式不管在操作的方便性還是在數(shù)據(jù)的安全性方面都是不可取的。所以系統(tǒng)首先使用FileUpload控件將Excel電子表格文件上傳到服務器的指定位置,然后通過查詢表的方式把指定工作表中的數(shù)據(jù)讀出放入DataSet,最后通過DataRow以行為單位讀出數(shù)據(jù)并使用SQL語句把數(shù)據(jù)插入到對應Access表中,主要實現(xiàn)代碼如下:
string name=FileUpload3.FileName;//獲取所要上傳的文件名稱
FileUpload3.SaveAs(Server.MapPath("App_Data")+"\"+name); //保存上傳的文件
OleDbConnection connE=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=……+"+name+";Extended Properties=Excel 8.0;");
connE.Open();//打開Excel文件
string strExcel=string.Format("select * from [{0}$]","Sheet1");
OleDbDataAdapter myCommand=new OleDbDataAdapter(strExcel, strEConn); //根據(jù)查詢工作表的方式讀出Sheet1工作表
DataSet ds=new DataSet();
myCommand.Fill(ds,"tempDb");//將Sheet1工作表中的數(shù)據(jù)放入dataSet
OleDbConnection connA=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=……"graduationProjectt.mdb") + ";"strAConn);
connA.Open();//打開Access數(shù)據(jù)庫
string xm=dr[i]["userName"].ToString();
……
string insertStr="insert into userInfo(username, ……) values('" +xm+"','"+……"')";
try{
for (int i=0;i DataRow[] dr=ds.Tables[0].Select(); OleDbCommand cmd=new OleDbCommand(insertStr, connA); cmd.ExecuteNonQuery(); } …… } 3.2 服務器端服務接口的實現(xiàn) 在ASP.NET中創(chuàng)建Web Service和寫一個類文件是很相似的。Web Service是一個以.asmx為擴展名的文本文件,但其中必須包含一條@WebService指令,用作聲明。每個Web Service需要唯一的命名空間,它可使客戶端應用程序區(qū)分出可能使用相同方法名稱的Web Service。Visual Studio.NET中創(chuàng)建的Web Service的默認命名空間(Namespace)是“http://tempuri.org/”[10-12]。為了讓Android客戶端獲得數(shù)據(jù)后對數(shù)據(jù)處理更方便,服務接口調(diào)用后返回的數(shù)據(jù)通過自定義JsonUtil類中DataTableJson()方法將DataSet格式的數(shù)據(jù)轉換為了Json格式。單選題的Web服務接口具體實現(xiàn)代碼如下: [WebService(Namespace="http://tempuri.org/")] [WebMethod(Description="獲得所有的單選題Json數(shù)據(jù)")] public StringGetJsonSelection(string paperNo, string questionType){ stringjson; ……//打開Access數(shù)據(jù)庫 String mysql="select * from singleOption where paperNo="+paperNo+"and questionType="+questionType; OleDbDataAdapter myadapter=new OleDbDataAdapter(mysql, myconn); DataSet DS=new DataSet(); myadapter.Fill(DS); if(DS.Tables.Count>0 && DS.Tables[0].Rows.Count>0) { JsonUtil jsonutil=new JsonUtil(); json=jsonutil.DataTableJson(DS.Tables[0]); }…… returnjson; } 3.3 客戶端與服務器端數(shù)據(jù)交互的實現(xiàn) 在Android SDK中并沒有提供調(diào)用Web Service的類庫,因此需要使用第三方類庫KSOAP來實現(xiàn)。KSOAP提供了基于Android版本的jar包,進行客戶端應用開發(fā)時把下載好的KSOAP包(ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar)復制到Android項目的libs目錄下,然后使用如下實現(xiàn)代碼即可調(diào)用Web Service服務接口獲取數(shù)據(jù),獲取數(shù)據(jù)后可以寫入客戶端的本地SQLite數(shù)據(jù)庫,以便客戶端用戶可以離線進行學習評價練習[13-14]。 public String getjsonselection(String paperNo,String questionType) { String result=null; String NAME_SPACE="http://tempuri.org/"; //命名空間 String METHOD_NAME ="GetJsonSelection";//Web Service提供的調(diào)用接口名稱 String URL="http://ie.nnutc.edu.cn/web/ProjectService.asmx";//Web Service發(fā)布的地址 String SOAP_ACTION=NAME_SPACE+METHOD_NAME; SoapObject request=new SoapObject(NAME_SPACE,METHOD_NAME); request.addProperty("paperNo",paperNo);//試卷編號 request.addProperty("questionType",questionType);//試題類型 SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapSerializationEnvelope.VER11);//設置SOAP的版本 envelope.dotNet=true;//設置是.net開發(fā)的Web Service envelope.bodyOut=request; try { HttpTransportSE hts=new HttpTransportSE(URL,2000); hts.call(SOAP_ACTION,envelope); Object obj=envelope.getResponse(); result=obj.toString(); } …… return result; } 3.4 評價練習模塊的實現(xiàn) 評價練習模塊主要是為了學生能夠隨時隨地利用碎片化的時間打開軟件進行練習。該模塊由單選題、多選題、填空題和判斷題四個題型組成。學生完成練習后,系統(tǒng)會自動給予評分,也能給出每道題的答案解析,以便讓學生根據(jù)評價內(nèi)容了解自己的學習效果。 3.4.1 用戶界面的設計 用戶界面是軟件與用戶交互的最直接的層,界面設計的好壞對用戶操作軟件的方便性有很大影響。而練習模塊中的題型較多,如果讓用戶在多個Activity之間切換不太方便,所以系統(tǒng)將FrameLayout、TabHost和TabWidget相結合進行布局設計。在一個Activity中使用TabHost實現(xiàn)卡片效果,使用setIndicator(String info, Drawable icon)方法顯示每個卡片上的顯示內(nèi)容和圖標,使用setContent(int viewId)方法切換到不同的頁面。 用戶界面如圖3所示。 圖3 評價練習界面 3.4.2 題目解析功能的實現(xiàn) 在設計評價練習界面時,使用LinearLayout布局將顯示答案和題目解析的TextView垂直排列,并將該布局的android:visibility屬性值設置為"invisible"。即剛開始運行軟件進行練習時,該布局是不可見的(隱藏答案和試題解析),當練習測試完畢單擊交卷命令按鈕后,通過setVisibility(int visibility)方法把答案和試題解析顯示出來,其效果如圖4所示。 圖4 評價練習解析 文中通過對服務器端Web Service開發(fā)技術和An-droid客戶端網(wǎng)絡訪問技術的研究,設計了一個基于Android平臺的移動學習評價系統(tǒng),并對服務器端和客戶端的功能進行了編碼實現(xiàn)。在系統(tǒng)設計和實現(xiàn)過程中,對系統(tǒng)的整體框架和功能進行了詳細的說明,采用模塊化的設計方法,使系統(tǒng)具有良好的可擴展性,實現(xiàn)了客戶端和服務器間的數(shù)據(jù)交互。最后通過真機環(huán)境運行,結果表明該系統(tǒng)具有良好的人機交互界面,老師可以通過PC端方便地上傳練習題庫,學生可以隨時登錄系統(tǒng)下載練習題并完成自己的學習效果評價,達到了系統(tǒng)開發(fā)的要求。 [1] 韓 超,梁 泉.Android系統(tǒng)原理及開發(fā)要點詳解[M].北京:電子工業(yè)出版社,2010:18-20. [2] 姚昱旻,劉衛(wèi)國.Android的架構與應用開發(fā)研究[J].計算機系統(tǒng)應用,2008(11):110-112. [3] 倪紅軍,周巧扣.Android開發(fā)工程師案例教程[M].北京:北京大學出版社,2014:266-277. [4]MITRAN.SOAPversion1.2part0:primer[EB/OL].[2007-04-27].http://www.w3c.org/TR/soap12-part0. [5]SchlingloffH.Modelingandmodelcheckingwebservices[J].ElectronicNotesinTheoreticalComputerScience,2005,126(8):3-26. [6]SeelyS.SOAP,crossplatformwebservicedevelopmentusingXML[M].UpperSaddleRiver,NJ:PrenticeHallPRT,2002. [7] 鄭小慎,盛莉莉.基于Web的海洋觀測儀器管理系統(tǒng)設計與實現(xiàn)[J].實驗技術與管理,2015,32(4):152-155. [8]ZhuFujun,TurnerM,KotsiopoulosI,etal.Dynamicdataintegrationusingwebservices[C]//ProceedingsoftheIEEEinternationalconferenceonwebservices.[s.l.]:IEEE,2004:262-269. [9] 崔再惠.Access數(shù)據(jù)庫與SQLServer數(shù)據(jù)庫主要功能的比較[J].鞍山師范學院學報,2009,11(6):51-52. [10] 彭海文.AndroidWebServices應用研究[J].電腦知識與技術,2011,7(12):2851-2852. [11] 黃錦川,金煒東.基于Android平臺Web服務的應用研究[J].鐵路計算機應用,2010,19(11):24-27. [12] 鄭世良,朱云仙,蔣文蓉,等.基于WebServices的高??蒲泄芾砥脚_的集成設計[J].實驗技術與管理,2008,25(2):104-106. [13] 閔現(xiàn)暢,黃理燦.基于Android平臺的Web服務技術研究[J].工業(yè)控制計算機,2011,24(4):92-94. [14] 范寶鋒,方 勇,湯云革,等.基于SOAP的Web服務互操作性問題分析[J].成都信息工程學院學報,2005,20(2):142-146. Design and Implementation of an Evaluation System of Mobile Learning Based on Android NI Hong-jun,ZHANG Xue-cheng (Taizhou College of Nanjing Normal University,Taizhou 225300,China) Focused on the lack of the evaluation of study effect in the mobile learning platform,an evaluation system of mobile learning based on Android is put forward,which not only helps students check the degree of knowledge course anytime and anywhere,but also makes teachers updating the questions and paper analysis according to the teaching contents anytime.The key technologies in system development is introduced in this paper,the architecture,function module and database design for the system is discussed.The function of importing data to server is achieved on the basis of Web Service for .NET,the interaction of data between the client and server is completed by components of the third party library KSOAP,and the show of the paper analysis is finished through hiding and show of component.At the same time,the card-style UI has been designed to enhance the user experience. mobile learing;evaluation system;Web Service;KSOAP 2015-11-11 2016-03-09 時間:2016-06-22 江蘇省高等學校大學生創(chuàng)新創(chuàng)業(yè)訓練計劃2014年立項項目(201413843007Y);教育部—Google2014年校企合作產(chǎn)學合作項目(PO640068) 倪紅軍(1975-),男,碩士,副教授,研究方向為管理信息系統(tǒng)、Android應用開發(fā);張學成(1994-),男,研究方向為Android的應用開發(fā)。 http://www.cnki.net/kcms/detail/61.1450.TP.20160622.0845.058.html TN929.53 A 1673-629X(2016)08-0109-04 10.3969/j.issn.1673-629X.2016.08.0234 結束語