孫欣欣
摘要:針對(duì)當(dāng)前移動(dòng)應(yīng)用開發(fā)實(shí)驗(yàn)課程存在的問(wèn)題,對(duì)該課程的實(shí)驗(yàn)教學(xué)進(jìn)行改革。通過(guò)加強(qiáng)實(shí)驗(yàn)室硬件設(shè)備和軟件環(huán)境,重新設(shè)計(jì)實(shí)驗(yàn)教學(xué)內(nèi)容,以項(xiàng)目組形式組織自主學(xué)習(xí)等方式,增加學(xué)生的學(xué)習(xí)興趣,讓學(xué)生掌握更加系統(tǒng)的移動(dòng)應(yīng)用開發(fā)技術(shù),提高教學(xué)效率。
關(guān)鍵詞:移動(dòng)應(yīng)用開發(fā);實(shí)驗(yàn)教學(xué);教學(xué)改革
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)10-0133-02
1概述
隨著Android移動(dòng)終端的普及和使用,移動(dòng)應(yīng)用開發(fā)崗位對(duì)人才的需求量越來(lái)越大,基于Android的移動(dòng)應(yīng)用開發(fā)課程的重要性也日漸凸現(xiàn)。這門課程對(duì)于學(xué)生的實(shí)踐動(dòng)手能力要求較高,因此,如何利用實(shí)驗(yàn)課程有限的時(shí)間,讓學(xué)生高效熟練地掌握系統(tǒng)的移動(dòng)應(yīng)用開發(fā)技術(shù),提高綜合開發(fā)能力和解決問(wèn)題的能力,是本門課程的重要目標(biāo)。
本文分析了當(dāng)前移動(dòng)應(yīng)用開發(fā)實(shí)驗(yàn)課程存在的問(wèn)題,之后針對(duì)這些問(wèn)題提出相應(yīng)的改革思路。
2移動(dòng)應(yīng)用開發(fā)實(shí)驗(yàn)教學(xué)問(wèn)題分析
2.1硬件設(shè)備和軟件環(huán)境落后
Android移動(dòng)應(yīng)用開發(fā)對(duì)于硬件設(shè)備的要求較高。移動(dòng)應(yīng)用開發(fā)依托于Android Studio集成環(huán)境,需要搭配8GB以上內(nèi)存的PC終端,才能比較流暢地開發(fā)運(yùn)行移動(dòng)應(yīng)用程序,而高校內(nèi)實(shí)驗(yàn)室硬件設(shè)備更新?lián)Q代較慢,硬件條件上無(wú)法滿足開發(fā)需求。另外,大部分實(shí)驗(yàn)教學(xué)是在手機(jī)模擬器上運(yùn)行和查看結(jié)果,模擬器與真機(jī)在實(shí)際開發(fā)中仍存在一定差異,導(dǎo)致部分實(shí)驗(yàn)內(nèi)容無(wú)法在模擬器上運(yùn)行查看結(jié)果,比如涉及需要傳感器的應(yīng)用(GPS、相機(jī)、加速度傳感器等),且有些實(shí)驗(yàn)結(jié)果在模擬器上運(yùn)行正常,但移植到真機(jī)上會(huì)出現(xiàn)錯(cuò)誤。
Android移動(dòng)應(yīng)用開發(fā)有以下特點(diǎn):開發(fā)工具更新?lián)Q代迅速;Android系統(tǒng)及相關(guān)API更新迭代迅速;第三方框架技術(shù)更新迭代迅速。而高校課堂教學(xué)內(nèi)容的更新通常無(wú)法跟上移動(dòng)應(yīng)用開發(fā)軟件環(huán)境的更新速度,導(dǎo)致學(xué)生掌握的技術(shù)較為陳舊,無(wú)法滿足企業(yè)項(xiàng)目開發(fā)需求。
2.2實(shí)驗(yàn)內(nèi)容與實(shí)際項(xiàng)目開發(fā)脫節(jié)
受實(shí)驗(yàn)課程的課時(shí)時(shí)間限制,每個(gè)小實(shí)驗(yàn)只針對(duì)單一An-droid知識(shí)點(diǎn)進(jìn)行設(shè)計(jì),內(nèi)容簡(jiǎn)單,且相互之間并無(wú)聯(lián)系,與實(shí)際項(xiàng)目開發(fā)過(guò)程和內(nèi)容脫節(jié),學(xué)生在完成實(shí)驗(yàn)內(nèi)容之后,只是掌握了某個(gè)簡(jiǎn)單的知識(shí)點(diǎn),對(duì)于如何系統(tǒng)地完成一個(gè)項(xiàng)目開發(fā)、開發(fā)技術(shù)的綜合運(yùn)用都缺乏了解和掌握。當(dāng)面對(duì)較為完整復(fù)雜的項(xiàng)目需求時(shí),仍不知從何人手。
2.3學(xué)生缺乏學(xué)習(xí)興趣和解決問(wèn)題的能力
大部分學(xué)生都至少持有一臺(tái)Android移動(dòng)設(shè)備,因此對(duì)于常用設(shè)備上的移動(dòng)應(yīng)用開發(fā)都有比較高的興趣,然而課程的實(shí)驗(yàn)內(nèi)容場(chǎng)景設(shè)置過(guò)于簡(jiǎn)單,與常用App的使用場(chǎng)景沒(méi)有關(guān)聯(lián),無(wú)法滿足學(xué)生對(duì)于課程學(xué)習(xí)的期待值,導(dǎo)致學(xué)生缺乏學(xué)習(xí)興趣。
大部分學(xué)生能完成基礎(chǔ)功能的開發(fā),但是當(dāng)開發(fā)過(guò)程中出現(xiàn)預(yù)期之外的bug時(shí),通常不知道如何下手解決這些問(wèn)題,而對(duì)于實(shí)際項(xiàng)目開發(fā),解決問(wèn)題的能力至關(guān)重要,因此如何提高學(xué)生解決問(wèn)題的能力應(yīng)當(dāng)作為本課程的重要目標(biāo)之一。
3加強(qiáng)實(shí)驗(yàn)室硬件設(shè)備和軟件環(huán)境
針對(duì)目前本課程實(shí)驗(yàn)室軟硬件環(huán)境落后的問(wèn)題,需要對(duì)軟硬件平臺(tái)進(jìn)行及時(shí)更新?lián)Q代。
3.1加強(qiáng)硬件平臺(tái)建設(shè)
為保證Android Studio集成環(huán)境的運(yùn)行效率,需要將實(shí)驗(yàn)室PC機(jī)搭配8GB內(nèi)存,可以通過(guò)加載內(nèi)存條或者更換新PC機(jī)的方式實(shí)現(xiàn)。為保證運(yùn)行結(jié)果的準(zhǔn)確性,除搭載模擬器進(jìn)行實(shí)驗(yàn)結(jié)果驗(yàn)證之外,還需要配備幾臺(tái)Android真機(jī),需涉及不同品牌、不同系統(tǒng)版本,方便學(xué)生更直觀地了解不同品牌、系統(tǒng)版本對(duì)于應(yīng)用程序的兼容性,同時(shí)方便設(shè)計(jì)需要用到硬件傳感器的實(shí)驗(yàn)內(nèi)容。
3.2軟件環(huán)境更新
Android Studio集成開發(fā)環(huán)境每隔一段時(shí)間會(huì)發(fā)布新的版本,每個(gè)新版本會(huì)提供新的功能,以及修復(fù)舊版本存在的bug,而且新的Android Studio工具可能存在不兼容舊版本代碼的問(wèn)題。為更高效地開發(fā)Android應(yīng)用程序,及時(shí)跟上企業(yè)項(xiàng)目開發(fā)需求,需要及時(shí)更新Android Studio開發(fā)環(huán)境到新的版本。Android系統(tǒng)每年至少會(huì)發(fā)布一個(gè)正式版本,其中開發(fā)所用的API也會(huì)隨之更新,實(shí)驗(yàn)課程內(nèi)容需要更新到較新版本的API,以方便學(xué)生掌握最新的開發(fā)知識(shí)和技術(shù)。
4重新設(shè)計(jì)實(shí)驗(yàn)內(nèi)容
當(dāng)前實(shí)驗(yàn)內(nèi)容設(shè)計(jì)較簡(jiǎn)單,與實(shí)際項(xiàng)目開發(fā)脫節(jié),且使用場(chǎng)景與常用APP沒(méi)有關(guān)聯(lián),很難激發(fā)學(xué)生的學(xué)習(xí)興趣,同時(shí),學(xué)生在碰到實(shí)際問(wèn)題時(shí),通常不知道如何解決。針對(duì)以上問(wèn)題,擬從以下方面對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行重新設(shè)計(jì)。
4.1以項(xiàng)目驅(qū)動(dòng)方式組織實(shí)驗(yàn)內(nèi)容
Android移動(dòng)應(yīng)用開發(fā)實(shí)驗(yàn)課程包含的主要知識(shí)點(diǎn)有:開發(fā)環(huán)境配置,靜態(tài)界面開發(fā)與事件處理,動(dòng)態(tài)界面開發(fā)與事件處理,Activity的創(chuàng)建、啟動(dòng)和通信,數(shù)據(jù)存儲(chǔ)與訪問(wèn),網(wǎng)絡(luò)編程。以往的實(shí)驗(yàn)內(nèi)容設(shè)計(jì)分別針對(duì)以上知識(shí)點(diǎn)設(shè)計(jì)一個(gè)單獨(dú)的實(shí)驗(yàn)項(xiàng)目,實(shí)驗(yàn)?zāi)康膯我唬鱾€(gè)實(shí)驗(yàn)項(xiàng)目之間沒(méi)有關(guān)聯(lián)性,學(xué)生完成實(shí)驗(yàn)之后,只對(duì)某個(gè)知識(shí)點(diǎn)有印象,卻不清楚如何將所有知識(shí)點(diǎn)融合在一個(gè)項(xiàng)目中完成綜合系統(tǒng)開發(fā)。
針對(duì)此問(wèn)題,重新對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)行設(shè)計(jì)。除去第一個(gè)實(shí)驗(yàn)項(xiàng)目,配置開發(fā)環(huán)境之外,選擇一個(gè)綜合性項(xiàng)目,將該項(xiàng)目根據(jù)知識(shí)點(diǎn)進(jìn)行任務(wù)分解,每一個(gè)子任務(wù)主要針對(duì)以上列出的某個(gè)知識(shí)點(diǎn),每次實(shí)驗(yàn)課完成一項(xiàng)子任務(wù),而且是在上一次實(shí)驗(yàn)課已完成內(nèi)容的基礎(chǔ)上添加代碼。這種項(xiàng)目驅(qū)動(dòng)的組織方式,一方面,可以讓學(xué)生在實(shí)驗(yàn)過(guò)程中了解一個(gè)實(shí)際的綜合項(xiàng)目開發(fā)是如何實(shí)現(xiàn)的,另一方面,項(xiàng)目越復(fù)雜,可能出現(xiàn)的bug越多,學(xué)生可以在這個(gè)過(guò)程中提高自己解決問(wèn)題的能力。
4.2選擇實(shí)際使用場(chǎng)景作為實(shí)驗(yàn)項(xiàng)目
為了提高學(xué)生的學(xué)習(xí)興趣,可以選擇常用App作為項(xiàng)目?jī)?nèi)容,比如支付寶、微信、天氣預(yù)報(bào)等。以
App雖然包含了本課程所有知識(shí)點(diǎn),但功能過(guò)于復(fù)雜,任務(wù)分解的難度太大,而且時(shí)間有限,學(xué)生沒(méi)辦法完成所有功能開發(fā)。因此,需要針對(duì)本課程知識(shí)點(diǎn),對(duì)選定App的功能進(jìn)行裁剪,最終保留的功能既能針對(duì)所有知識(shí)點(diǎn)進(jìn)行練習(xí),又要保證工作量和難度適中。
以支付寶為例,設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目如表1所示。
4.3增加糾錯(cuò)項(xiàng)目
在項(xiàng)目開發(fā)過(guò)程中,分析和解決問(wèn)題的能力至關(guān)重要,為培養(yǎng)此項(xiàng)能力,需要通過(guò)課程實(shí)驗(yàn),讓學(xué)生掌握l(shuí)ogcat工具的使用方法、debug工具的使用方法、常用技術(shù)社區(qū)(github、stack-overflow、極簡(jiǎn)、CSDN等)的查閱使用方法。而以上工具和方法的掌握需要通過(guò)練習(xí)解決一定數(shù)量的bug來(lái)實(shí)現(xiàn)。由于實(shí)驗(yàn)內(nèi)容有限,學(xué)生在實(shí)驗(yàn)過(guò)程中,碰到的bug類型和數(shù)量都不足,因此,當(dāng)實(shí)際項(xiàng)目開發(fā)碰到問(wèn)題時(shí),通常不知道從何人手。
通過(guò)添加一部分糾錯(cuò)項(xiàng)目,可以一定程度上解決上述問(wèn)題。即每個(gè)實(shí)驗(yàn)項(xiàng)目中,都發(fā)給學(xué)生一份包含典型bug的代碼,讓學(xué)生在運(yùn)行過(guò)程中查看logcat分析bug類型,通過(guò)debug工具定位bug位置,再查閱技術(shù)社區(qū)尋找解決思路,修改并運(yùn)行成功后,方可通過(guò)答辯。以實(shí)驗(yàn)六為例,可以將bug設(shè)置為“把連接網(wǎng)絡(luò)通信的代碼放到主線程中”,考查學(xué)生解決ANR問(wèn)題的能力。
5以項(xiàng)目組形式組織自主學(xué)習(xí)內(nèi)容
受實(shí)驗(yàn)課程的課時(shí)限制,能完成的實(shí)驗(yàn)內(nèi)容有限,可以在課外布置自主學(xué)習(xí)內(nèi)容,三名左右學(xué)生一組,選定一個(gè)常用App作為項(xiàng)目?jī)?nèi)容,課下共同完成一個(gè)Web+Android綜合項(xiàng)目開發(fā)。設(shè)置項(xiàng)目組組長(zhǎng),進(jìn)行任務(wù)分解,階段性提交項(xiàng)目進(jìn)展報(bào)告,最終進(jìn)行答辯驗(yàn)收。這種組織方式,學(xué)生可以選擇自己感興趣的項(xiàng)目作為實(shí)驗(yàn)內(nèi)容,更能激發(fā)學(xué)生的學(xué)習(xí)興趣,以項(xiàng)目組形式共同完成一個(gè)應(yīng)用開發(fā),可以鍛煉學(xué)生團(tuán)隊(duì)合作的能力。
6結(jié)束語(yǔ)
移動(dòng)應(yīng)用開發(fā)課程的實(shí)驗(yàn)教學(xué)在軟硬件建設(shè)、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)、學(xué)生能力培養(yǎng)等方面仍存在很多問(wèn)題。針對(duì)這些問(wèn)題,本文從幾個(gè)方面對(duì)該課程進(jìn)行了改革探索,包括加強(qiáng)硬件和軟件環(huán)境建設(shè),重新設(shè)計(jì)實(shí)驗(yàn)內(nèi)容,以項(xiàng)目組形式組織自主學(xué)習(xí)內(nèi)容。提高了學(xué)生的學(xué)習(xí)興趣,增強(qiáng)了學(xué)生綜合項(xiàng)目開發(fā)能力和解決問(wèn)題的能力,提高了教學(xué)質(zhì)量和教學(xué)效率。