• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      安卓移動(dòng)應(yīng)用開(kāi)發(fā)實(shí)驗(yàn)評(píng)測(cè)系統(tǒng)研究

      2018-01-31 07:49:54唐東明
      計(jì)算機(jī)教育 2018年1期
      關(guān)鍵詞:安卓插件代碼

      唐東明

      (西南民族大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 成都 610041)

      0 引 言

      隨著手機(jī)的普及,智能手機(jī)已經(jīng)是大部分用戶首選的完成計(jì)算任務(wù)的平臺(tái)[1]。在國(guó)家提出“互聯(lián)網(wǎng)+”戰(zhàn)略后,移動(dòng)應(yīng)用開(kāi)發(fā)的需求非常大。目前各大高校和培訓(xùn)機(jī)構(gòu)已經(jīng)開(kāi)設(shè)安卓移動(dòng)應(yīng)用開(kāi)發(fā)相關(guān)的課程[2]。實(shí)驗(yàn)教學(xué)是這類應(yīng)用性強(qiáng)的課程的重要環(huán)節(jié),實(shí)驗(yàn)教學(xué)可以引導(dǎo)學(xué)生將課堂上學(xué)到的理論知識(shí)跟實(shí)際結(jié)合起來(lái),提高學(xué)生的動(dòng)手能力,增強(qiáng)學(xué)生的直觀感受,服務(wù)于往后的就業(yè)。筆者針對(duì)在安卓開(kāi)發(fā)課程實(shí)驗(yàn)教學(xué)過(guò)程中遇到的一些問(wèn)題,提出采用多種技術(shù)手段來(lái)結(jié)合移動(dòng)智能手機(jī)平臺(tái),輔助完成實(shí)驗(yàn)教學(xué)過(guò)程,讓老師有效的利用自己的時(shí)間覆蓋更多的學(xué)生,提高教學(xué)效率與質(zhì)量。

      1 安卓開(kāi)發(fā)實(shí)驗(yàn)教學(xué)現(xiàn)狀與存在的問(wèn)題

      傳統(tǒng)的實(shí)驗(yàn)教學(xué)方式是老師先演示,學(xué)生照著老師的講解和課本進(jìn)行實(shí)踐操作[3],但是這種模式在安卓的應(yīng)用開(kāi)發(fā)過(guò)程中遇到了一些難題。

      (1)安卓開(kāi)發(fā)環(huán)境采用的工具是一個(gè)綜合的、復(fù)雜的集成開(kāi)發(fā)工具,這個(gè)工具界面為全英文界面,功能非常多且模塊復(fù)雜,學(xué)生熟練掌握這個(gè)工具并不容易。

      (2)安卓應(yīng)用開(kāi)發(fā)需要先安裝集成開(kāi)發(fā)環(huán)境Android Studio(簡(jiǎn)稱AS,下同),然后配置相應(yīng)的Android SDK(開(kāi)發(fā)包),但由于安卓SDK的版本非常多,因此安裝的時(shí)候只能選擇性地安裝幾個(gè)相對(duì)重要版本的SDK,這就可能造成實(shí)驗(yàn)室安裝的版本和學(xué)生自己電腦安裝的版本不一致的情況,經(jīng)常出現(xiàn)學(xué)生自己來(lái)回在自己的電腦和實(shí)驗(yàn)室的電腦之間復(fù)制源程序但是不能編譯的情況。

      (3)一個(gè)完整的安卓應(yīng)用程序開(kāi)發(fā)不僅涉及Java程序的編寫(xiě),還涉及應(yīng)用程序界面的組織與編寫(xiě)、資源文件的準(zhǔn)備與編寫(xiě)、程序描述文件的創(chuàng)建與修改、編譯腳本的編寫(xiě)與組織等,因此一個(gè)安卓應(yīng)用程序工程結(jié)構(gòu)復(fù)雜且文件多,導(dǎo)致拷貝一個(gè)完整的安卓APP的工程都需要同時(shí)拷貝非常多的相關(guān)文件。

      (4)教師為了評(píng)判學(xué)生開(kāi)發(fā)的APP,傳統(tǒng)的方式是學(xué)生將自己開(kāi)發(fā)的完整AS工程上傳到實(shí)驗(yàn)室的FTP服務(wù)器上,教師下載并在自己的電腦上導(dǎo)入工程,查看學(xué)生的代碼并編譯,導(dǎo)入到自己的手機(jī)上運(yùn)行,整個(gè)過(guò)程非常耗時(shí)耗力,并且整個(gè)過(guò)程中經(jīng)常遇到很多問(wèn)題:學(xué)生經(jīng)常漏傳文件導(dǎo)致編譯不能通過(guò);學(xué)生將build目錄下編譯過(guò)程中產(chǎn)生的大量中間目錄和文件也上傳到服務(wù)器,造成上傳的工程非常大,教師下載需較長(zhǎng)的時(shí)間;學(xué)生自己電腦上的SDK版本和編譯器的版本可能和教師使用的版本有差異,教師還需要人工修改工程的相關(guān)配置才能正常編譯打包運(yùn)行APP。

      上述問(wèn)題的存在導(dǎo)致教師難以快速有效地驗(yàn)證學(xué)生提交的實(shí)驗(yàn)結(jié)果,也不能客觀甄別學(xué)生彼此之間的抄襲。如何利用移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢(shì)來(lái)將學(xué)生實(shí)驗(yàn)和老師更好地結(jié)合起來(lái),讓學(xué)生在任何地方都能提交自己的實(shí)驗(yàn),讓老師直接在自己的安卓手機(jī)上直接安裝運(yùn)行學(xué)生開(kāi)發(fā)的APP,批閱學(xué)生提交的作業(yè),順應(yīng)移動(dòng)學(xué)習(xí)的大潮,讓安卓開(kāi)發(fā)實(shí)驗(yàn)教學(xué)環(huán)節(jié)不受具體固定時(shí)間和地點(diǎn)的限制就成為了一個(gè)需要解決的問(wèn)題[4-5]。

      為解決上面面臨的難題,有些學(xué)校和老師開(kāi)發(fā)了自己的實(shí)驗(yàn)測(cè)評(píng)系統(tǒng),例如針對(duì)VB編程語(yǔ)言實(shí)驗(yàn)過(guò)程的評(píng)測(cè)系統(tǒng)[3];文獻(xiàn)[6]采用微信公眾號(hào)的方式和學(xué)生互動(dòng),實(shí)驗(yàn)教師可以發(fā)布實(shí)驗(yàn)內(nèi)容,并針對(duì)實(shí)驗(yàn)過(guò)程和學(xué)生在微信上進(jìn)行良性的互動(dòng);文獻(xiàn)[4]結(jié)合計(jì)算機(jī)公共基礎(chǔ)課面臨的問(wèn)題闡述了如何借助移動(dòng)學(xué)習(xí)來(lái)增強(qiáng)學(xué)生學(xué)習(xí)的積極性;傳統(tǒng)的物理和化學(xué)實(shí)驗(yàn)的教學(xué)也結(jié)合移動(dòng)智能手機(jī)來(lái)開(kāi)展教學(xué)手段的改革,利用手機(jī)錄制發(fā)布實(shí)驗(yàn)過(guò)程并進(jìn)行講解[7];生物分析實(shí)驗(yàn)的教學(xué)過(guò)程利用移動(dòng)終端讓學(xué)生在課上利用手機(jī)直觀地觀看老師的實(shí)驗(yàn)演示,提高學(xué)生實(shí)驗(yàn)的成功率[8-9]。

      2 系統(tǒng)實(shí)現(xiàn)介紹

      2.1 總體介紹

      系統(tǒng)的運(yùn)行流程總體分為以下幾個(gè)部分:①學(xué)生在AS中完成APP的開(kāi)發(fā),在這個(gè)階段,學(xué)生在集成開(kāi)發(fā)環(huán)境中完成程序的設(shè)計(jì)實(shí)現(xiàn)、資源的組織和調(diào)試修改,最終完成開(kāi)發(fā)階段的工作;②完成開(kāi)發(fā)后學(xué)生調(diào)用提供的插件,輸入學(xué)生個(gè)人的一些基本信息,如學(xué)號(hào)、作業(yè)APP的名稱等信息,接下來(lái)調(diào)用我們提供的插件對(duì)整個(gè)APP工程進(jìn)行編譯、簽名打包成一個(gè)發(fā)布版的APK,同時(shí)自動(dòng)提交工程的核心代碼和生成的APK到云端;③云端收到學(xué)生提交的作業(yè)后自動(dòng)將收到的內(nèi)容進(jìn)行歸類整理,并對(duì)代碼進(jìn)行比對(duì)查重,生成報(bào)告,隨后云端程序發(fā)送相應(yīng)作業(yè)批改請(qǐng)求通知到教師手機(jī)端;④教師手機(jī)端接收到通知后,教師可以利用自己的碎片時(shí)間隨時(shí)審閱學(xué)生提交的軟件和相應(yīng)的代碼,批閱完成后在手機(jī)端完成作業(yè)成績(jī)?cè)u(píng)定。

      2.2 安卓綜合開(kāi)發(fā)平臺(tái)的改造

      AS是一個(gè)綜合的開(kāi)發(fā)工具,功能強(qiáng)大并且工具組件非常多,對(duì)初學(xué)者來(lái)說(shuō)要完成編寫(xiě)、編譯、打包、發(fā)布一個(gè)APP非常不容易。在以前的教學(xué)過(guò)程中筆者發(fā)現(xiàn)很多同學(xué)卡在了參數(shù)配置、編譯腳本配置、工具使用上,不能在規(guī)定的時(shí)間完成并演示自己的成果。由于在實(shí)驗(yàn)室進(jìn)行的實(shí)驗(yàn)課時(shí)并不多,當(dāng)教師要檢查學(xué)生的成果時(shí),學(xué)生出現(xiàn)各種配置問(wèn)題,不能打包部署到手機(jī)真機(jī)上進(jìn)行演示,浪費(fèi)了老師和同學(xué)大量的時(shí)間。上交作業(yè)的時(shí)候很多同學(xué)不加選擇地將整個(gè)工程目錄下的所有文件都提交到實(shí)驗(yàn)室的FTP上,而AS的工程目錄下包含各種編譯時(shí)產(chǎn)生的中間文件,教師下載要很長(zhǎng)的時(shí)間。

      研究AS的體系結(jié)構(gòu)后發(fā)現(xiàn)AS可以采用插件式體系結(jié)構(gòu)來(lái)擴(kuò)展自己的功能,并且插件運(yùn)行過(guò)程中可以利用AS原有的眾多功能模塊,是一種非常靈活的組件式結(jié)構(gòu)。學(xué)生在AS中完成App的設(shè)計(jì)、編碼并調(diào)試運(yùn)行成功后,需要提交成果物到云端。為了簡(jiǎn)化提交過(guò)程,系統(tǒng)采用插件技術(shù)編寫(xiě)了一個(gè)運(yùn)行于AS中的插件。在AS中安裝開(kāi)發(fā)的插件后,可以在AS軟件運(yùn)行界面的build菜單項(xiàng)中找到一個(gè)名為“提交作業(yè)”的菜單項(xiàng),點(diǎn)擊菜單項(xiàng)后彈出對(duì)話框,見(jiàn)圖1,在對(duì)話框中輸入提交作業(yè)的一些基本信息后即可正式提交作業(yè)到云端。在提交過(guò)程中插件將會(huì)自動(dòng)掃描需要上傳的文件并進(jìn)行上傳。

      圖1 學(xué)生實(shí)驗(yàn)綜合開(kāi)發(fā)環(huán)境插件之作業(yè)提交界面

      2.3 云端服務(wù)實(shí)現(xiàn)

      考慮到本系統(tǒng)的應(yīng)用場(chǎng)景我們將服務(wù)端部署在阿里云上,學(xué)生上傳作業(yè)時(shí)系統(tǒng)會(huì)同時(shí)上傳本次作業(yè)相關(guān)的源代碼。一個(gè)完整的安卓工程包含很多的文件,因此在上傳的時(shí)候系統(tǒng)只上傳工程中的主要文件:Java源代碼目錄下的所有文件、Layout目錄下的文件。工程文件上傳后,服務(wù)端后臺(tái)即開(kāi)始進(jìn)行查重檢測(cè),查重過(guò)程按照以下原則進(jìn)行:①同類型文件比對(duì),即Java文件和Java文件進(jìn)行比較;②被比對(duì)的文件范圍限定為同實(shí)驗(yàn)號(hào)的其他同學(xué)上傳的同類型的文件,這樣可以減少比對(duì)工作量。代碼查重的目的就是檢測(cè)是否抄襲,實(shí)質(zhì)上是對(duì)代碼文件的相似度進(jìn)行度量,給出一個(gè)相似度的數(shù)值表示[10]。查重比對(duì)的結(jié)果記錄在數(shù)據(jù)庫(kù)表中,假設(shè)學(xué)生A已經(jīng)上傳了實(shí)驗(yàn)2的工程代碼文件ex2_A1.java文件,現(xiàn)在學(xué)生B上傳了文件ex2_B1.java,那么比對(duì)系統(tǒng)將把ex2_B1.java和ex2_A1.java文件進(jìn)行比較,如計(jì)算結(jié)果顯示這兩個(gè)文件相似度高于某個(gè)設(shè)定的閾值δ,那么將會(huì)在數(shù)據(jù)庫(kù)表中增加一條記錄。

      常見(jiàn)的文本比對(duì)算法主要采用分詞技術(shù)并結(jié)合詞頻統(tǒng)計(jì)來(lái)計(jì)算文本之間的相似度,例如經(jīng)典的TF-IDF算法,TF(Term Frequency)指一篇文檔中單詞出現(xiàn)的頻率,IDF(Inverse Document Frequency)表示語(yǔ)料庫(kù)中出現(xiàn)某個(gè)詞的文檔數(shù),TF=詞在文檔中出現(xiàn)的次數(shù)/文檔中所有詞的個(gè)數(shù),IDF=log(語(yǔ)料庫(kù)的文檔總數(shù)/語(yǔ)料庫(kù)中出現(xiàn)某單詞的不同文檔個(gè)數(shù)),最終計(jì)算每個(gè)文本tfidf 向量,文件之間的相似度通過(guò)計(jì)算兩個(gè)向量的歐式距離、Jaccard系數(shù)等來(lái)度量。但是,程序代碼文件較為特殊,首先代碼文件有一定的結(jié)構(gòu)性,其次代碼沒(méi)有普通文本文件那樣規(guī)范[11]。目前主流的代碼剽竊檢測(cè)算法主要基于字符串比對(duì)的方式,如Plague、JPlag、SIM、MOSS等[10]。目前也有學(xué)者研究基于指紋技術(shù)檢測(cè)代碼相似度[12]。本系統(tǒng)采用文獻(xiàn)[13]提出的檢測(cè)獨(dú)立于語(yǔ)言的相似代碼塊的方式來(lái)評(píng)價(jià)兩份文件的相似度,相似代碼塊越多說(shuō)明代碼的相似度越高。找出可能有抄襲嫌疑的代碼文件后需要評(píng)閱老師最終審閱才能確定,為了審閱兩份文件的異同點(diǎn),本系統(tǒng)結(jié)合開(kāi)源的CodeMergely(http://www.mergely.com/)系統(tǒng)利用APP中嵌入網(wǎng)頁(yè)的方式提供直觀的源代碼比較工具,圖2的界面中對(duì)比了兩個(gè)相似的代碼文件,從圖中可以看出兩份文件的差異點(diǎn)用不同的標(biāo)記標(biāo)示,教師可以清晰地閱讀。

      2.4 教師用手機(jī)APP實(shí)現(xiàn)

      以前實(shí)驗(yàn)教學(xué)時(shí)教師通?,F(xiàn)場(chǎng)檢查核對(duì)學(xué)生實(shí)驗(yàn)結(jié)果,如果只是簡(jiǎn)單地編寫(xiě)幾個(gè)函數(shù),教師可以很容易就評(píng)判出實(shí)驗(yàn)完成的好壞,評(píng)判完后直接將成績(jī)記錄在紙上。安卓實(shí)驗(yàn)課上老師檢查很難一目即知結(jié)果,因?yàn)榘沧抗こ探M織復(fù)雜、代碼文件多、資源文件多、配置多。在有限的實(shí)驗(yàn)教學(xué)學(xué)時(shí)里老師很難完整地檢查這么多的學(xué)生成果物。由于本身這門(mén)課程就是教授安卓手機(jī)應(yīng)用開(kāi)發(fā),并且實(shí)驗(yàn)的成果必須在真實(shí)的安卓手機(jī)上運(yùn)行通過(guò),基于此筆者設(shè)計(jì)了一個(gè)供教師使用的安卓手機(jī)APP軟件。

      圖2 代碼比對(duì)

      教師用手機(jī)APP最主要的功能就是提供一個(gè)教師可以移動(dòng)批改作業(yè)的辦公平臺(tái),教師可以方便地下載安裝運(yùn)行學(xué)生完成的實(shí)驗(yàn),查看學(xué)生實(shí)驗(yàn)編寫(xiě)的代碼和相應(yīng)的資源文件等,還可以輔助判斷學(xué)生相互抄襲的問(wèn)題。本系統(tǒng)采用混合模式來(lái)開(kāi)發(fā),主要功能模塊包括:登錄模塊、用戶基本信息模塊、作業(yè)批改模塊、代碼查重結(jié)果展示模塊。登錄模塊主要實(shí)現(xiàn)教師用戶的認(rèn)證;用戶基本信息模塊用于教師設(shè)定一些自己的基本信息;作業(yè)批改模塊是教師主要工作的界面,在此模塊中教師可以預(yù)覽哪些同學(xué)已經(jīng)提交了作業(yè)并選擇運(yùn)行同學(xué)提交的APP,最后給出相應(yīng)的評(píng)價(jià);代碼查重結(jié)果展示模塊負(fù)責(zé)展示某個(gè)學(xué)生提交的代碼查重結(jié)果,教師可以有針對(duì)性地選擇查看。

      3 結(jié) 語(yǔ)

      安卓課程的實(shí)驗(yàn)課具有時(shí)間長(zhǎng)、完整性強(qiáng)、工程代碼資源文件多而復(fù)雜等特性,這樣就造成教師在實(shí)驗(yàn)課上很難有充足的時(shí)間去檢查學(xué)生實(shí)驗(yàn)成果物APP的正確性、完整性、非抄襲性等。通過(guò)改造安卓綜合開(kāi)發(fā)平臺(tái)并開(kāi)發(fā)教師移動(dòng)使用的APP,讓學(xué)生能方便地提交實(shí)驗(yàn)成果,讓教師能夠在真機(jī)上方便地運(yùn)行評(píng)閱學(xué)生實(shí)驗(yàn)成果,并能夠查看學(xué)生程序的源代碼,發(fā)現(xiàn)程序代碼雷同之處。系統(tǒng)有效解決了安卓實(shí)驗(yàn)教學(xué)中的一些問(wèn)題,從而讓教師可以在有限的時(shí)間內(nèi)覆蓋更多的學(xué)生。未來(lái)將持續(xù)改進(jìn)、增加更多的教師和學(xué)生互動(dòng)模塊,方便師生,提高教學(xué)質(zhì)量。

      [1]劉歡, 盧蓓蓉, 馬晨輝.淺析高校校園移動(dòng)應(yīng)用開(kāi)發(fā)[J]. 武漢大學(xué)學(xué)報(bào)(理學(xué)版), 2012(增刊1): 171-174.

      [2]廖龍龍, 路紅.《移動(dòng)應(yīng)用開(kāi)發(fā)》課程建設(shè)研究[J]. 現(xiàn)代教育技術(shù), 2011(12): 58-61.

      [3]劉必雄. 基于“Visual Basic程序設(shè)計(jì)實(shí)驗(yàn)測(cè)評(píng)系統(tǒng)”的教學(xué)改革與實(shí)踐[J]. 河北農(nóng)業(yè)大學(xué)學(xué)報(bào)(農(nóng)林教育版), 2015(5): 68-71.

      [4]紀(jì)良浩, 李琳皓, 段小林. 移動(dòng)學(xué)習(xí)與開(kāi)放自主相結(jié)合的個(gè)性化實(shí)驗(yàn)教學(xué)模式的改革與實(shí)踐[J]. 教育教學(xué)論壇, 2016(31): 79-80.

      [5]張楠. 移動(dòng)學(xué)習(xí)環(huán)境下高校實(shí)驗(yàn)教學(xué)模式的創(chuàng)新和實(shí)踐[J]. 實(shí)驗(yàn)室研究與探索, 2014(10): 225-228.

      [6]沈瑤, 應(yīng)柏青, 賀富堂. 微信公眾平臺(tái)在電路實(shí)驗(yàn)教學(xué)改革中的應(yīng)用[J]. 實(shí)驗(yàn)科學(xué)與技術(shù), 2015(4): 1-5.

      [7]張玲. 智能手機(jī)輔助物理化學(xué)實(shí)驗(yàn)教學(xué)改革的研究與實(shí)踐[J]. 高教學(xué)刊, 2015(18): 234-235.

      [8]王欣之, 文紅梅. 智能移動(dòng)終端在儀器分析實(shí)驗(yàn)教學(xué)中的應(yīng)用[J]. 藥學(xué)教育, 2017(1): 54-56.

      [9]胡慧, 鄭立華, 高萬(wàn)林.基于 MOOC 的編程語(yǔ)言自動(dòng)評(píng)測(cè)[J]. 現(xiàn)代教育技術(shù), 2016, 26(9): 80-85.

      [10]鄧愛(ài)萍. 程序代碼相似度度量算法研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2008(17): 4636-4639.

      [11]全上克, 楊新鋒. 程序代碼相似度檢測(cè)方法的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微型電腦應(yīng)用, 2013(10): 38-41.

      [12]黃柳柳, 黃河燕, 史樹(shù)敏.面向代碼相似度檢測(cè)的指紋選取方法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2010(27): 169-171.

      [13]Ducasse S, Rieger M,Demeyer S.A language independent approach for detecting duplicated code[EB/OL]. [2017-08-01]. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=792593.

      猜你喜歡
      安卓插件代碼
      自編插件完善App Inventor與樂(lè)高機(jī)器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      文物表情包
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      一種基于安卓系統(tǒng)的手機(jī)側(cè)抓包分析方法
      MapWindowGIS插件機(jī)制及應(yīng)用
      基于Revit MEP的插件制作探討
      安卓L未至安卓M來(lái)了!安卓首泄漏M系統(tǒng)
      汝城县| 苗栗县| 高要市| 扎兰屯市| 鄂尔多斯市| 阿坝| 嵊泗县| 文水县| 夏邑县| 祁阳县| 永州市| 达尔| 溆浦县| 阜南县| 奉化市| 满城县| 永泰县| 平舆县| 迁西县| 天气| 阳信县| 虎林市| 镇雄县| 巴马| 德阳市| 玛沁县| 苏尼特右旗| 德惠市| 遂宁市| 丰镇市| 松溪县| 灵山县| 略阳县| 塔河县| 驻马店市| 景宁| 宝鸡市| 望谟县| 理塘县| 黄梅县| 广水市|