全江濤+汪敏
隨著互聯網技術的發展,移動學習逐漸成為一種新的學習模式,智能手機則是這種模式的重要載體之一。那基于智能手機Android系統的移動學習軟件有哪些關鍵性技術呢?筆者將從以下幾個方面進行具體闡述。
● Android開發概述
1.Android系統框架
Android采用了軟件分層和模塊化架構,這個結構非常精巧而富有彈性。作為一個專門為移動設備打造的真正開放和完整的移動軟件操作系統,它由Linux內核、資源庫、應用執行環境、框架和應用軟件等部分組成(如圖1)。
(1)Linux Kernel(Linux內核)
作為一種操作系統內核,同時也作為硬件和軟件之間的抽象層,Linux Kernel可以為應用程序隱藏具體硬件細節。這種層次化結構的好處是使用下層提供的服務能為上層提供統一服務,即當本層及其以下層發生了變化后,不會影響到上層。這樣能保證在層次內有高內聚性,在層次間有低耦合性。
(2)Android Runtime(Android運行環境)
Android的應用程序和中間層都以Java實現,因此,和Java系統類似,Android運行環境也為Java應用程序的執行提供了Java運行環境,通常就是Java虛擬機。
(3)Library(資源庫)
Android包含一個系統庫的集合,基于執行效能的考慮,它們通常由C/C++語言編寫,供Android系統的各個組件使用。
(4)Application(應用程序)
作為一個“開箱即用”的操作系統,它建造了許多流行的應用程序,包括電子郵件客戶端、SMS程序、日歷、地圖、瀏覽器、聯系人、系統設置等。這些應用程序都是使用Java編程語言寫的,唯一的區別就是它們是谷歌自己開發的。更加豐富的應用程序和功能還有待開發者進一步實現。
2.Android應用程序四大組件
Android系統的四大組件包括Activity、Service、Content Provider和Broadcast Receiver,它們是整個Android程序開發中最核心的部分。無論何時,Android系統中的一個請求都應由一個特定的組件來處理,系統會確保這個組件的應用程序正常運行。
(1)Activity
Activity是四大組件之首,是Android應用的視圖層。一個Activity是一個可見的、可以與用戶進行交互的界面。一般地,應用中的一個Activity應被標記為應用啟動時第一個呈獻給用戶的額,就是所謂的“main”Activity。從某個Activity到另一個Activity是通過當前的Activity啟動另一個Activity來實現的。
(2)Service
Service,用戶是不可見的,它在系統的后臺運行,每個Service都繼承自Service類。例如,一個服務可以在后臺播放音樂,也可以連接或者綁定到一個正在運行的Service,對于音樂service來說,其接口允許用戶暫停、后退、停止和重新播放音樂。
(3)Broadcast Receiver
一個應用可以有任意多個Broadcast Receiver來對它所關心的廣播進行監聽并做出反應。Broadcast Receiver不顯示在用戶界面上,但它可以啟動一個Activity來作為接收到信息的一種反應。Notification可以通過不同的方式獲得用戶的注意,如點亮閃光燈、震動、播放一個聲音等。
(4)Content provider
Content provider是一個應用程序數據的組合,以方便其他應用訪問其中的應用程序數據。一個Content Resolver可以和任何Content provider交流,雖然其中存在進程間通信的問題,但我們不用擔心這些底層的細節,因為它們能很好地處理數據。
● 搭建和配置Android系統應用開發環境
1.下載并安裝Java SDK
首先需要安裝Java運行環境,也就是Java SDK。我們可以在Oracle的Java SE的下載頁面上找到一個可執行的安裝文件。為了避免麻煩,安裝時可以完全采用默認的配置,系統會自動進行相關的配置。安裝完成后需要校驗一下Java環境是否配置正確,這時可以在Windows下運行Java version命令。如果一切正常,系統會顯示當前安裝java的版本號。
2.下載并安裝Android SDK
有了JDK之后,就可以安裝Android SDK了。在Android開發的官方網頁(http://developer.android.com)可以下載到最新的SDK。下載完成后,我們可以將壓縮包解壓到前面規劃好的c:\develop這個文件夾中,這樣,解壓后的android-sdk-windows文件夾將成為Android SDK的根目錄(Home)。
3.下載并安裝Eclipse
Eclipse是Java中最流行的開發工具,常被廣泛應用于Java項目開發。現在,由于其對Android開發環境良好的支持和跨平臺的特性,Eclipse已經成為Android開發環境的事實標準。
下載Eclipse后,我們會得到一個壓縮文件,將其解壓到Android開發目錄中,生成一個Eclipse文件夾,然后打開此文件夾,運行其中的Eclipse.exe可執行文件。
4.配置和運行Eclipse
Eclipse是一個可以高度定制化的開發平臺,每個開發者都可以按照自己的需求打造適合自己使用的Eclipse軟件。所以我們建議在安裝Eclipse后進行一些系統設置的工作。當然,用戶也可以按照自己的需求來對Eclipse進行配置,如編輯器、快捷鍵等,這是一種個性化的配置,完全取決于開發者的喜好,這里不再贅述。
5.配置虛擬設備
運行Eclipse,點擊Window-Android SDK and AVD Manager菜單項目,在出現Android SDK and AVD Manager對話框左側,選擇Virtual Devices,對話框會列出當前已配置好的虛擬設備。點擊“new”可以增加一個虛擬設備。
6.應用測試
最后,我們可以創建一個Android應用程序來驗證開發環境是否配置完成。這個測試的主要目的是看看整個Android運行環境是否工作正常,所以這一過程不需要編寫或理解任何一行代碼,按照流程操作就可以了。雖然模擬器啟動的時間比較長,但在實際開發調試過程中我們不需要頻繁地重新啟動虛擬機,程序重新編譯部署和運行也都可以在已經打開的模擬器上執行(如圖2、圖3)。
● 客戶端設計
1.功能模塊設計
根據用戶需求,Android系統客戶端可分為五個功能模塊,分別是課程學習、學習計劃、課程測試、休閑一刻和問題解析。
(1)課程學習模塊設計
學習者可以根據自己的需要,在這個模塊中選擇適合自己的學習內容,同時既可以下載相關資料,也可以對課程的學習進度有所記錄和提醒。
(2)學習計劃模塊設計
這一模塊可以實現學習者的個性化學習,它依據學習者的特點進行設定,按照個人學習風格和速度自定步調,并能針對不同內容使學習者有不同的學習方式。
(3)課程測試模塊設計
課程測試也是Android客戶端上的重要模塊,它不僅能對學習者的學習效果有一個直觀的了解,還能監測學習者的薄弱環節,讓其強化學習。
(4)休閑一刻模塊設計
此模塊通過引入游戲來激發學習者的學習興趣,同時,它也能暫時緩解學習者的學習壓力,使其更有效地進入下一階段的學習。
(5)問題解析模塊設計
在這一模塊中,學習者如果在學習的過程中遇到問題,可以隨時隨地進行咨詢,或通過移動網絡進行搜索,以便及時解決問題。
在實現以上模塊時,有些時候Android應用有一些初始化的配置信息、應用相關的數據資源需要保存,一般使用XML文件來保存它們,這些資源被稱為原始XML資源。為了在Java程序中獲取實際的XML文檔,我們可以通過Resources的兩個方法來獲取:①XmlResourceParser getXml(int id)。獲取XML文檔,并使用一個XmlPullParser來解析該XML文檔。②InputStream openRawResource(int id)。獲取XML文檔對應的輸入流。
2.操作流程設計
我們以大學英語學習為例,具體了解一下Android系統客戶端詞匯學習的操作流程設計(如上頁圖4)。
(1)客戶端學習主頁界面
首先學習者要打開學習軟件,進入詞匯學習主頁,對所要學習的模塊進行選擇,學習者可以根據自己的學習特點和個人需求進行自由選擇。
(2)客戶端登錄界面
學習者在開始學習之前,要注冊自己的信息,只有注冊成功之后才可以進入詞匯學習模塊。
(3)學習模塊界面
在學習模塊界面,學習者可以選擇自己想學習的內容進行學習,這樣就進入到詞匯課程選擇步驟,學習者可以根據個人愛好選擇學習模塊和不同的交互方式。
(4)詞匯課程選擇界面
在詞匯課程選擇界面,學習者可以選擇語言種類,以便更好地進行詞匯學習。
(5)學習計劃界面
學習計劃模塊不僅可以幫助學生實現自定步調按照計劃進行學習,還可以實現時間提醒設置,由于詞匯學習是一種偏于記憶類的學習,且人的記憶會遵循一定的規律,只有按照合理的記憶規律進行學習,才會起到事半功倍的效果。因此,這一模塊能及時提醒學習者在合理的時間內進行有效復習。
(6)學習狀態界面
此模塊可以幫助學習者記錄哪些內容已經學過,學了多少,這樣有助于學習者更清楚地了解自己的學習進度,節省學習時間,提高學習效率。
(7)內容測試界面
此模塊針對學習者的學習效果進行測試,這樣便于學習者更及時地了解學習效果,把握學習狀況。
(8)測試結果界面
測試結果界面既可以實現對學習者進行客觀評價的功能,還可以對其尚未掌握的內容有一個更詳細的反饋。
(9)問題解析界面
在這個界面中,學習者如果在學習的過程中遇到難以解決的問題,可以進行咨詢,也可以在線查閱資料,以便在第一時間解決問題。
(10)論壇界面
此界面通過Android客戶端直接調用外部瀏覽器顯示,學習者之間可以進行交流和討論,分享學習經驗,交流學習體會。
(11)休閑一刻界面
此界面中的導入游戲軟件,能讓學習者在學習之余有更多的選擇余地,更好地調節學習氛圍,以便學習者更輕松地進行學習。
● 智能手機移動學習軟件的設計原則
為了更好地發揮智能手機移動學習的優勢,筆者通過對以上內容的分析,總結出了智能手機移動學習的幾個設計原則,具體如下。
1.適合原則
移動學習軟件的設計要明確針對的服務群體是誰,他們有什么樣的學習特點,又有什么樣的學習需求,需要為他們提供什么樣的學習內容,這些都是在設計移動學習軟件之前所要解決的問題。只有對這些方面進行徹底的了解后,才能針對不同學習者的需求設計出適合學習者學習的軟件。對于使用智能手機進行移動學習的學習者來說,學習時間的不確定性、學習地點的移動性,都會使他們的學習過程受到外界環境的干擾。因此,在智能手機移動學習軟件的設計開發過程中,一定要兼顧學習者的學習特點,堅持適合的原則進行有針對性的設計。

2.開放性原則
智能手機移動學習軟件的設計要采用開放性的思維方式,對教學媒體的使用、學習內容的組織、學習模塊的設計等都要注重開放性,使學生突破定向思維的限制,不再局限于書本上的知識。在當今知識大爆炸的時代,知識的來源非常廣泛,僅僅掌握書本上的知識是遠遠不夠的,只有通過不同的學習方式、不同的學習渠道以及更豐富的知識來源來拓寬學習內容,本著開放性的原則進行學習才會取得事半功倍的學習效果。另外,學習者可以通過采用交互學習、發現學習等多種學習方式,擴寬思路,實現開放性思維的互相碰撞,由此激發學習興趣和學習積極性,不斷提高創新能力和創新意識。
3.模塊單元短小精悍原則
在移動學習的過程中,學習者處于一個相對不是那么安靜的環境中,學習過程很容易被周圍的嘈雜因素所打斷;同時,周圍環境的光線、溫度也會給學習者的學習心理造成不同程度的影響,使他們注意力集中的時間也相對較短。因此,在智能手機移動學習軟件的開發過程中,一定要遵循短小精悍的原則,盡量開發一些較簡短的學習模塊。具體表現在:學習單元的時間一般控制在15分鐘左右,這樣學習者在學習一個單元時,所用的時間就比較短,并且注意力也比較集中。時間一長,學習者的注意力就會下降,進而影響學習效果。同時,每個學習單元之間的關聯性不要太強,即這一單元的學習不會影響下一單元的學習效果。
4.教學目標量化原則
在學習者開始學習或正在發生學習的過程中,教師的控制因素較少,學習者完全依靠自覺來進行學習。因此,每個學習單元的教學目標一定要明確、合理,遵循“量化”原則。具體表現在:多使用一些具有針對性的小練習和小測試將目標量化,突出重點和難點,讓學習者明確每個小單元所要掌握的內容是什么,應掌握到何種程度,其中需要重點掌握的又有哪些,并通過及時的測試,讓學習者更清楚地認識到對各個知識點掌握的程度,以便進行更合理、有效的學習。
5.人性化設計原則
智能手機移動學習軟件的設計要遵循學習者自身的特點,并依據他們的學習規律進行人性化的設計。具體表現在:遵循記憶規律,自行設定提醒時間,這樣能達到事半功倍的學習效果。另外,在設計的過程中,我們可以結合智能手機的特點,增加一些休閑娛樂的模塊,使學習者在學習之余能得到適當的休息,這種勞逸結合的學習方式更能體現出移動學習的有效性和趣味性。
參考文獻:
[1]Sam Ruby,Dave Thomas.Agile Web Development with Rail,Third Edition[M].America:Pragmatic Bookshelf,2009:1-2.
[2]Aleksander Dyeetal.Mobile Edueation-AGlance at The Frture[DB/OL].http://www.nettskolen.com/forskning/mobile_education.pdf.
[3]李剛.瘋狂Android講義[M].北京:電子工業出版社,2012,1.
[4]顏建華.Android開發關鍵技術之旅[M].北京:中國鐵道出版社,2012,7.
[5]薛顯亮.解析Android SDK——智能手機開發范例手冊[M].北京:中國鐵道出版社,2012,9.
[6]Keegan D.The future of learning:From eLearning to mLearning[DB/OL].http://learning.ericsson.net/Leonardo/book.Html.