馬 麗
(渤海大學(xué),遼寧 錦州 121013)
隨著移動通信技術(shù)與手機(jī)軟硬件技術(shù)的發(fā)展,產(chǎn)生了基于智能手機(jī)的移動學(xué)習(xí),并逐漸成為教育領(lǐng)域的應(yīng)用熱點。學(xué)習(xí)者可以利用零碎時間進(jìn)行非正式學(xué)習(xí),解決了傳統(tǒng)學(xué)習(xí)受時間和空間限制等問題,并實現(xiàn)了無障礙及時交互[1]。移動學(xué)習(xí)符合終身學(xué)習(xí)的理念,學(xué)習(xí)者可以根據(jù)自身需要選擇學(xué)習(xí)內(nèi)容,提高了學(xué)習(xí)的積極性和主動性[2]。Android操作系統(tǒng)是目前智能手機(jī)領(lǐng)域最受歡迎的操作系統(tǒng),市場占有率多年來穩(wěn)居第一位,尤其備受青年學(xué)生的青睞。Android已經(jīng)積累了相當(dāng)多的應(yīng)用,更多的應(yīng)用使得Android更加流行,從而吸引更多的開發(fā)者開發(fā)更多更好的應(yīng)用,形成一個良性循環(huán),開發(fā)基于Android的移動學(xué)習(xí)平臺具有廣闊的前景[3]。針對目前移動學(xué)習(xí)開展緩慢、移動學(xué)習(xí)資源相對匱乏、移動學(xué)習(xí)平臺功能單一和移動平臺開發(fā)周期長等現(xiàn)狀,文中以充分的系統(tǒng)調(diào)研和需求分析為基礎(chǔ),基于軟件工程思想和移動開發(fā)最新技術(shù)展開研究,為移動學(xué)習(xí)平臺開發(fā)提供解決方案,也為Android領(lǐng)域其他系統(tǒng)開發(fā)提供借鑒。
Android是一種基于Linux的移動終端操作系統(tǒng),具有開放性和免費性的特點,能促進(jìn)技術(shù)創(chuàng)新,有著極短的開發(fā)時間,有助于降低開發(fā)成本,成為全球最受歡迎的智能手機(jī)操作系統(tǒng)之一。Android繼承了Java跨平臺的優(yōu)點,任何Android應(yīng)用幾乎無需任何修改就能運行于所有的Android設(shè)備。Android利用Java跨平臺的性質(zhì),選擇使用Java進(jìn)行各項API開發(fā),在Dalvik虛擬機(jī)上搭建了一個Java的application framework,所有的應(yīng)用程序都是基于Java的application framework之上[4]。Android系統(tǒng)的應(yīng)用及框架如圖1所示。
圖1 Android框架及應(yīng)用
圖1所示的Android框架及應(yīng)用由Application Framework和Applications兩部分構(gòu)成,簡要描述如下[5-6]:
(1)Application Framework,是系統(tǒng)為應(yīng)用程序提供的各種API接口,目的是簡化組件重用??梢哉{(diào)用這些系統(tǒng)提供的API或構(gòu)建滿足自身業(yè)務(wù)需求的API。Application Framework核心組件有5個,活動管理器(Activity Manager)管理應(yīng)用的生命周期,通知管理器(Notification Manager)在狀態(tài)欄中顯示自定義的提示信息,資源管理器(Resource Manager)提供非代碼資源訪問,內(nèi)容提供器(Content Provider)使得應(yīng)用程序訪問另一個程序的數(shù)據(jù),視圖系統(tǒng)(View System)提供用于構(gòu)建應(yīng)用程序的用戶界面元素。
(2)Applications,是Application Framework提供的供開發(fā)者使用的應(yīng)用。操作系統(tǒng)代表一個完整的生態(tài)圈,沒有豐富的應(yīng)用支持,很難大規(guī)模流行開來。Android裝配一個核心Applications應(yīng)用程序集合,具體包括短信、日歷、地圖、瀏覽器、聯(lián)系人、電子郵件、媒體播放器、計算器、語音撥號、相冊、鬧鈴、時鐘、即時通訊和相機(jī)等,軟件開發(fā)時可將這些應(yīng)作為組件使用。由于Android具有開源性的特點,開發(fā)者可以對這些應(yīng)用的底層Java代碼進(jìn)行修改,使之滿足個性化的需求。
基于Android的移動學(xué)習(xí)平臺使用SSH2框架開發(fā),SSH2框架與SSH框架的區(qū)別在于SSH2框架應(yīng)用Struts2。Struts2是基于MVC設(shè)計模式的Web應(yīng)用框架,以WebWork設(shè)計思想為核心,統(tǒng)一了Struts1和WebWork兩個框架,基于OGNL強(qiáng)大的數(shù)據(jù)存取方式,采用無侵入的架構(gòu)設(shè)計,針對攔截器開發(fā),業(yè)務(wù)邏輯控制器Action由框架提供,攔截器將處理結(jié)果轉(zhuǎn)換成用戶響應(yīng),具有設(shè)計靈活和控制簡單等優(yōu)點[7]。該平臺的層次結(jié)構(gòu)如圖2所示。
圖2 平臺層次結(jié)構(gòu)設(shè)計
圖2所示的平臺層次結(jié)構(gòu)由6層構(gòu)成:用戶層,是用戶進(jìn)行移動學(xué)習(xí)或系統(tǒng)管理的各種終端設(shè)備,系統(tǒng)管理通常使用臺式機(jī),學(xué)生用戶使用最多的是智能手機(jī)和終端電腦;表現(xiàn)層,用戶和系統(tǒng)間進(jìn)行交流的橋梁,由用戶界面構(gòu)成,用戶通過表現(xiàn)層與系統(tǒng)進(jìn)行交互,接受用戶請求并返回處理結(jié)果;控制層,負(fù)責(zé)系統(tǒng)的訪問控制、數(shù)據(jù)加載和注銷,是系統(tǒng)的核心控制單元,具體工作就是將用戶請求從頁面?zhèn)鞯胶笈_代碼;邏輯層,處理與業(yè)務(wù)相關(guān)的部分,實現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯,是系統(tǒng)主要的運算和數(shù)據(jù)處理單元,包含了系統(tǒng)所需要的所有功能上的算法和計算過程;持久層,為業(yè)務(wù)層提供數(shù)據(jù)服務(wù),為系統(tǒng)進(jìn)行數(shù)據(jù)操作提供統(tǒng)一入口,具體工作就是將邏輯層的處理結(jié)果保存到可掉電式存儲設(shè)備中;數(shù)據(jù)層,存儲各類數(shù)據(jù),主要是學(xué)習(xí)資源,可以是數(shù)據(jù)庫方式,也可以是各種類型文件,該系統(tǒng)采用二者相結(jié)合的方式,具體的移動學(xué)習(xí)資源采用文件存儲,學(xué)習(xí)資源的相關(guān)信息存儲到數(shù)據(jù)庫中。
移動學(xué)習(xí)平臺設(shè)計基于以下設(shè)計理念:一是,適合于自我發(fā)起的非正式場合學(xué)習(xí),具有較強(qiáng)的親和力和交流性,學(xué)習(xí)不再僅僅是接受知識,而是能夠發(fā)現(xiàn)問題和解決問題;二是,提供豐富的學(xué)習(xí)功能,學(xué)習(xí)的內(nèi)涵和形式更加豐富,體現(xiàn)出“做中學(xué)、玩中學(xué)、游中學(xué)”的新特點,適合于利用零散時間;三是,基于Web3.0開發(fā),平臺中的信息可以直接和其他平臺進(jìn)行交互,通過信息平臺對其他學(xué)習(xí)資源進(jìn)行整合,實現(xiàn)資源存儲和訪問的均衡分配[8]?;谝陨侠砟钸M(jìn)行的總體設(shè)計如圖3所示。
圖3 移動學(xué)習(xí)平臺總體結(jié)構(gòu)
圖3所示的移動學(xué)習(xí)平臺總體結(jié)構(gòu)由四部分構(gòu)成:第一,移動學(xué)習(xí)終端環(huán)境,包括移動學(xué)習(xí)終端設(shè)備和移動學(xué)習(xí)網(wǎng)絡(luò)接入。移動學(xué)習(xí)終端設(shè)備包括智能手機(jī)和平板電腦等。移動學(xué)習(xí)網(wǎng)絡(luò)接入是指代Wifi、Wlan和Wimax這類接入網(wǎng)絡(luò)。Wlan是無線局域網(wǎng)絡(luò),相當(dāng)便利的數(shù)據(jù)傳輸系統(tǒng)。Wifi其實是Wlan的一個標(biāo)準(zhǔn),是屬于Wlan的子集。Wimax是一項新興技術(shù),可以為高速數(shù)據(jù)應(yīng)用提供更出色的移動性。該平臺推薦三種方式結(jié)合使用。第二,移動學(xué)習(xí)功能環(huán)境,提供各種功能及資源,是平臺的核心部分。通信協(xié)議與通信標(biāo)準(zhǔn)實現(xiàn)客戶端功能與學(xué)習(xí)資源的交互,移動學(xué)習(xí)客戶端主要包括資源中心、任務(wù)下達(dá)和協(xié)作學(xué)習(xí)等功能,移動學(xué)習(xí)資源包括文本、音頻、視頻和微課等類型。第三,移動學(xué)習(xí)服務(wù)環(huán)境,包括對移動學(xué)習(xí)內(nèi)容的選擇和分割。移動學(xué)習(xí)要在相對零散的時間內(nèi)完成相對獨立的學(xué)習(xí)內(nèi)容,以片段化資源代替大量的學(xué)習(xí)內(nèi)容,片段化的內(nèi)容不能隨意切割,要以元知識點為核心,通過內(nèi)容之間的某種聯(lián)系形成緊密的知識體系。第四,移動學(xué)習(xí)平臺后臺維護(hù)環(huán)境[9],是為管理員提供的維護(hù)操作功能,數(shù)據(jù)備份與恢復(fù)、用戶權(quán)限管理、系統(tǒng)配置管理和界面布局動態(tài)規(guī)劃等。
Android系統(tǒng)的開放性使用戶界面存在各種不協(xié)調(diào)因素,且缺乏統(tǒng)一規(guī)范。Android的屏幕類型有幾百種不同的尺寸,設(shè)計時要考慮兼容不同的屏幕尺寸。Application Framework提供的接口以及Java通用類庫提供的解決方案,使界面設(shè)計相對簡單。屏幕界面設(shè)計包括布局設(shè)計、信息呈現(xiàn)設(shè)計和交互設(shè)計等[10]。屏幕內(nèi)容及程序結(jié)構(gòu)如圖4所示。
圖4 屏幕內(nèi)容及程序結(jié)構(gòu)
(1)屏幕(Android.app.Activity)[11]。應(yīng)用程序?qū)崿F(xiàn)活動時需要繼承Activity類。Activity是一個最直接與用戶接觸的應(yīng)用程序組件,一個Activity就是一個單獨屏幕,用來完成與用戶之間的交互,Activity之間通過Intent進(jìn)行通信。Activity在Active/Running、Paused、Stoped和Killed等狀態(tài)轉(zhuǎn)換之間回調(diào)接口,可以重載實現(xiàn)以便執(zhí)行相關(guān)代碼。
(2)內(nèi)容(Android.view.View)。View是Android一切視圖的基礎(chǔ),Android程序中使用的視圖一般都繼承自View類。View是所有與用戶交互的組件的Widgets的基類(Buttons和textField等)。Android中View比傳統(tǒng)意義的視圖具有更廣泛的含義,包含了用戶交互和顯示,實現(xiàn)一個View時需要實現(xiàn)框架中一些所有Views公用的方法。
Android客戶端除了完成與用戶交互外,另一個重要作用就是提交數(shù)據(jù)、驗證數(shù)據(jù)和解析顯示數(shù)據(jù);服務(wù)器將客戶端頁面接收的各種不同類型數(shù)據(jù),通過服務(wù)器的Servlet子類Http Servlet對象提交給服務(wù)器端處理邏輯,完成客戶端與服務(wù)器的交互??蛻舳伺c服務(wù)器的通信流程如圖5所示[12-13]。
圖5 數(shù)據(jù)通信流程
在圖5所示的通信流程中,Http Client提供高效和功能豐富的支持HTTP協(xié)議的客戶端編程工具包,并且支持HTTP協(xié)議最新版本,不僅使客戶端發(fā)送HTTP請求變得容易,而且也方便了開發(fā)人員測試接口??蛻舳藰I(yè)務(wù)邏輯組件通過API接口管理調(diào)用指定的API Service,將VO(Value Object值對象)解析為HTTP請求參數(shù),再調(diào)用Http Client向服務(wù)器端發(fā)送HTTP請求。XML解析采用PULL方法,Android已經(jīng)將PULL技術(shù)集成到系統(tǒng)中,允許應(yīng)用程序代碼主動從解析器中獲取事件,滿足需要的條件后就不再獲取事件。API接口管理采用顯示來聲明接口是[HttpGet]或者[HttpPost],避免出現(xiàn)請求的資源不支持TPPT方法等問題[14]。業(yè)務(wù)邏輯組件使用Enterprise JavaBean的方式處理,可以將處理后的數(shù)據(jù)直接存儲,提供較好的安全性和可靠性。
移動學(xué)習(xí)是一種新型的學(xué)習(xí)方式,是在新技術(shù)孕育下產(chǎn)生的。作為教育服務(wù)的延伸,拓展了教育的范圍和方式。以移動學(xué)習(xí)相關(guān)理論及Android開發(fā)技術(shù)設(shè)計的移動學(xué)習(xí)平臺,充分考慮了學(xué)習(xí)者的需求,解決了系統(tǒng)開發(fā)關(guān)鍵性的技術(shù)問題,提供了層次結(jié)構(gòu)設(shè)計、總體結(jié)構(gòu)設(shè)計、屏幕界面設(shè)計和數(shù)據(jù)通信設(shè)計的集成化解決方案。以此設(shè)計結(jié)果為基礎(chǔ)構(gòu)建軟件開發(fā)架構(gòu)后,開發(fā)人員可以直接編寫代碼,提高了系統(tǒng)開發(fā)的質(zhì)量和效率。軟件開發(fā)時可根據(jù)系統(tǒng)需要以及學(xué)科特點,融合移動開發(fā)最新技術(shù),對系統(tǒng)功能進(jìn)行擴(kuò)展和延伸,以便開發(fā)出針對性更強(qiáng)、用戶體驗更好和技術(shù)更先進(jìn)的移動學(xué)習(xí)平臺。