手持裝置應用軟體的開發課程教學研究論文
手持裝置應用軟體的開發課程教學研究論文
1前言
Android是Google於2007年11月推出的基於Linux核心的開源手機作業系統,是HTC、Motorola、華為等企業多款智慧手機的作業系統平臺。市場調研公司Canalys於2011年5月4日釋出的一季度全球智慧手機市場統計報告顯示,Android系統機型繼續領跑智慧機市場,份額達到35%[1]。
手持裝置應用軟體開發課程是長沙學院軟體工程專業嵌入式系統方向的限選課,以及其他專業方向的選修課。在過去幾年,該課程的教學內容是基於J2ME軟體開發,教學沒有針對具體的硬體或系統平臺,實驗課沒有配備特定硬體裝置,軟體僅在模擬器上執行,不適合進行與硬體相關的程式設計。從2010年開始,Google開始與高校合作,幫助中國高校建立起智慧手機移動應用開發課程體系,培養移動應用開發人才。在此戰略的推動下,長沙學院已經於2011年上學年將該課程的教學內容更改為基於Android平臺的智慧手機軟體開發技術。
2教學方法的實施
2.1前期準備工作
1)師資培訓。近年來隨著嵌入式技術的迅猛發展,嵌入式系統平臺越來越豐富,如WindowsCE、Linux、Symbian、BlackBerry、Android、iPhoneOS等。通常,不同的系統平臺有不同的應用程式開發技術,Android平臺出現的時間不長,因此,目前國內熟練掌握Android平臺應用程式開發技術的教師還很少,建議選派具有嵌入式系統和Java程式設計基礎的教師參加培訓和課程研討會,並與先期已開設類似課程的高校加強交流,課程資料還可以從http://www.google.com/intl/zh-CN/corporate/university/courses.html處下載。
2)軟體、硬體試驗平臺的配備。①開發環境:IDE——Eclipse3.3,3.4,3.5,3.6(helios);Eclipseplug-in——ADT1.0或者http://dl-ssl.google.com/android/eclipse/;AndroidSDK;JDK5orJDK6(單獨的JRE不可以,必須要有JDK)。②AndroidSDK所支援的作業系統:WindowsXP(32-bit)orVista(32-or64-bit);MacOSX10.4.8orlater(x86only);Linux(testedonLinuxUbuntuDapperDrake);③智慧手機:華為E8500;MotoMilestone。
2.2前期教學內容的組織
本課程的學習可以分為兩個階段:基礎知識學習階段和軟體開發的專案教學法實施階段。在學習基於Android平臺的智慧手機軟體開發技術之前,必須讓學生對Android平臺有宏觀上的認知。
1)Android的系統架構。Android是一個開放的軟體系統,為使用者提供豐富的移動裝置開發功能,從下至上包括4個層次:如圖1所示Android的系統架構。
第一層是Linux核心層,包括Linux作業系統及驅動,依賴於Linux2.6核心。
第二層是核心的擴充套件類庫,如SQLite、WebKit、OpenGL等,它們可以透過Java本地呼叫JNI(JavaNativeInterface)的介面函式實現和上層之間的通訊。該層由Android的Java虛擬機器Dalvik和基礎的Java庫為Java執行環境提供Java程式語言核心庫的大多數功能。
第三層是包含所有開發所用的SDK類庫和某些未公開介面類庫的框架層,是整個Android平臺核心機制的體現。
第四層是應用層。系統部分應用和第三方開發的應用都位於該層,兩者不盡相同,其中系統應用會用一些隱藏的類,而第三方應用是基於SDK基礎上開發。一般Android開發是在SDK基礎上用Java編寫應用程式,但本機開發程式包NDK提供應用層穿越Java框架層直接和底層包含JNI介面的C/C++庫直接通訊的方法。
2)Java語言。Android所支援的Java語言是J2SE的子集,而J2ME的功能相對較弱。如果J2ME工程師想轉行做Android,那麼他要付出的代價比J2SE或J2EE工程師要大得多。最理想的情況是,該課程開設時學生已經具備J2EE的相關知識。
3)Android平臺具有的特點:與硬體互動方便,像攝像頭、GPS等,對其操作都較簡單;具有自己的'執行時和虛擬機器,以及優秀的記憶體管理能力;提供豐富的介面控制元件供開發者使用,允許視覺化開發;提供輕量級的程序間通訊機制;支援無介面的後臺服務類應用程式;支援高效、快速的資料存取。
4)Android應用程式的組成。嵌入式系統是各種資源受限的系統,應用程式的構成方式與基於PC機的應用程式有很大的不同。Android應用程式主要由4部分組成:活動(Activity),一個活動就是手機螢幕的一屏;意圖(Intent),一個意圖就是一次對將要執行的操作的抽象描述;服務(Service),一個服務就是一個沒有介面、後臺執行的程式,如音樂播放器;內容提供者(ContentProvider),是封裝在自定義API中的一組資料,可以讀取該資料和向API中寫入資料。例如,Google為聯絡人程式提供一個內容提供者,任何需要使用聯絡人資訊的應用程式都可共享其中的所有資訊,包括姓名、地址、電話號碼等。
5)獨特的程式設計風格:使用者體驗至上原則。與其他應用程式開發相比,對於智慧手機軟體,使用者體驗凌駕於技術之上,優秀的使用者體驗可以起到事半功倍的效果。對於同類軟體,在網際網路上的軟體下載排行中,下載量最大的,一定是讓使用者用著感覺最舒服的,哪怕它的功能並不比其他的產品出色。對於不同的觸控式螢幕的技術,相應的螢幕介面的設計風格也不盡相同。對於電阻式觸控式螢幕,通常會用筆尖或指甲來點選圖示,那麼介面的圖示稍小、排列緊密可以容忍;而對於電容式觸控式螢幕,使用者更習慣使用指腹而非指甲點選螢幕,這就要求介面圖示佈局不太密、圖示較大,這樣不一定好看,但是好用。
在學生具備以上基礎知識以後,再透過實施專案教學法,培養學生的智慧手機軟體開發能力。
2.3專案教學法的實施
專案教學法是由美國教育家凱茲博士和加拿大教育家查德博士在合著的《專案教學法》中共同提出的一種以學生為中心的教學方法[2],學生在教師的指導下親自處理一個專案的全過程,在這一過程中學習掌握教學內容。學生獨立組織、安排學習行為,解決在專案實施中遇到的困難,提高學習興趣,能調動學習積極性。心理學研究結果表明:當感受型別是“聽”時,記憶保持率為20%;當感受型別是“看”時,記憶保持率為30%;當感受型別是“聽+看”時,記憶保持率為50%;當感受型別是“親身實踐”時,記憶保持率為90%[3]。
可選用以下幾個案例程式作為教學專案:RSS閱讀器、豆瓣網客戶端、線上音樂播放器、手機簡訊檢視軟體、個人移動地圖。專案選取的原則是既要包含基本的教學知識點,又要難度適中,能調動學生的積極性和主動性,在教學中還要注重師生共同參與。
專案教學法的教學過程分為7個步驟:明確任務、收集資訊、制定計劃、進行決策、組織實施、過程檢查、結果評估。
明確任務:教師指定教學專案,幫助學生理解任務;學生知道自己要做什麼,要學習哪方面的知識,要練習哪方面的技能。
獲取資訊:教師提供相關參考資料供學生查閱以獲取有關資訊,補充必要的知識和技能,教師答疑解惑。
制定計劃:學生明確任務後組成學習小組,小組合作學習,制定可行的工作計劃。分組要注意基礎好和基礎一般學生的合理搭配,以便學生互相學習和專案的按時完成。
做出決定:各小組制定計劃、提出方案,由全班討論,教師適時評判,確立本專案的最佳實施方案。
組織實施:將大專案分成幾個模組分別實現。專案實施時,教師在理論課上做示範,學生可以隨時提問題,教師對學生提出的問題做出解答;在實驗課上,學生根據計劃完成自己的任務,教師觀看、指導。學生按計劃實施,在實施過程中能具體地對自己所負責的專案模組所涉及的知識點進行學習。
過程檢查:學生在完成專案的過程中,自己檢查工作過程、結果,出現問題時請老師和同學幫助解決。
結果評估:學生完成專案後,對成果進行展示與自我評價。教師對學生在整個學習過程中出現的問題予以評價,對於學生在設計與實現過程中出現的問題要及時糾正。
學生親身經歷從專案規劃到生產出產品的整個過程,就能夠感受到成功的喜悅,激發自主學習的慾望,從而能以更大的熱情投入下一個專案的學習。
2.4教學效果的評價
考核方法以專案為主,體現能力培養特色。考核方式分為標準考核和加分兩種方法。標準考核透過者或免試資格獲得者即達到該課程的考核要求並獲得響應學分。標準考核為全面考核方式,總分值為100分,其中理論考試40分,專案完成情況60分。理論考試為閉卷考試,考試時間為1小時,著重考核相關理論知識;在專案開發環節,學生可根據自身在專案中擔任的角色和完成工作量的情況,獲得不同的分數。本課程鼓勵學生獨立或組隊參加校級以上學科競賽,在國內外相關競賽中的獲獎者都可以在期末總評成績中視獲獎情況酌情加分,省級以上相關競賽的獲獎者即可得到本課程的滿分成績。
3總結
教學實踐表明,實施該教學方法後,大多數學生的Android應用程式開發能力得到較大提高,緊接著還安排與該課程配合的課程設計培養環節,使學生基本具備Android應用程式開發能力。目前,國內熟悉該開發技術的人才還十分有限,企業對相關技術人才需求卻不斷增加,因此很多學生畢業後已在沿海地區從事Android應用程式開發工作,待遇較好,這樣將更加激發下一屆學生對該課程的學習熱情。同時教師經過教學實踐,教學水平也得到提高。
參考文獻
[1]曉明.Android智慧機一季度全球份額升至35%[EB/OL].
[2]肖勝陽.在計算機課程教學中開展專案教學法的研究[J].電化教育研究,2003(10):72-76
[3]劉衛珍.專案教學法[EB/OL].
[4]靳巖,姚尚朗.GoogleAndroid開發入門與實戰[M].北京:人民郵電出版社,2009