摘要:隨著移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,人們生活和學(xué)習(xí)的方式逐漸改變。為了探索提高教學(xué)成效的新路徑,對教育技術(shù)進(jìn)行創(chuàng)新,設(shè)計(jì)了基于Android的移動(dòng)學(xué)習(xí)平臺,分析教學(xué)功能需求、系統(tǒng)性能需求和系統(tǒng)關(guān)系人的使用需求,確定系統(tǒng)的物理框架和邏輯架構(gòu),彌補(bǔ)當(dāng)前移動(dòng)學(xué)習(xí)在教育技術(shù)支持方面的不足。
關(guān)鍵詞:移動(dòng)學(xué)習(xí);教育技術(shù);軟件設(shè)計(jì);Android
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)06-0026-04
Design on Mobile Learning System with Android
LING Yue
(Wuxi City College of Vocational Technology, Wuxi 214000, China)
Abstract: With the rapid development of mobile Internet, people's life and the way of learning are gradually changed. In order to explore new way to improve teaching result, to innovate the education technology, the mobile learning support system is designed. The design is based on the Android platform, analyzes the teaching requirements and system functional requirements, system performance participants use requirements, determines the physical framework and logical architecture of system, and makes up the insufficiency of the mobile learning in the education technology.
Key words: mobile learning; education technology; software design; android
信息技術(shù)正以前所未有的速度進(jìn)入到社會的各個(gè)領(lǐng)域,對教育觀念、教育手段、教育內(nèi)容、學(xué)習(xí)方式乃至教育模式等方面產(chǎn)生了重要影響。由于移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,目前在學(xué)生中迅速普及的智能手機(jī)和平板電腦,是實(shí)現(xiàn)學(xué)習(xí)活動(dòng)的理想平臺。探索新的教育技術(shù),構(gòu)建移動(dòng)學(xué)習(xí)環(huán)境,在恰當(dāng)?shù)臅r(shí)間,恰當(dāng)?shù)牡攸c(diǎn),以恰當(dāng)?shù)姆绞教峁┙o學(xué)習(xí)者恰當(dāng)?shù)男畔?,具有廣泛的應(yīng)用價(jià)值。
1 移動(dòng)學(xué)習(xí)的理論支持
移動(dòng)學(xué)習(xí)是利用移動(dòng)無線通信技術(shù)設(shè)備獲取教育信息、教育資源和教育服務(wù)的一種學(xué)習(xí)模式,既是課堂教學(xué)的補(bǔ)充,也是網(wǎng)絡(luò)學(xué)習(xí)和分布式學(xué)習(xí)的延伸,同時(shí)還能作為諸如非正式學(xué)習(xí)、混合式學(xué)習(xí)等學(xué)習(xí)模式的載體。Knowledge Planet公司的Clark Quinn在談到移動(dòng)學(xué)習(xí)時(shí)說:“移動(dòng)學(xué)習(xí)是移動(dòng)計(jì)算與數(shù)字化學(xué)習(xí)的結(jié)合,它包括隨時(shí)、隨地的學(xué)習(xí)資源,強(qiáng)大的搜索能力,豐富的交互性,對有效學(xué)習(xí)的強(qiáng)力支持和基于績效的評價(jià)?!敝С忠苿?dòng)學(xué)習(xí)的學(xué)習(xí)理論十分廣泛,包括非正式學(xué)習(xí)、情境認(rèn)知與學(xué)習(xí),混合學(xué)習(xí)等。一方面,這些新型的學(xué)習(xí)理論為移動(dòng)學(xué)習(xí)實(shí)踐提供了理論基礎(chǔ),另一方面,移動(dòng)學(xué)習(xí)又為這些學(xué)習(xí)理論在實(shí)踐中的應(yīng)用提供了技術(shù)手段與方法。
2 教育技術(shù)需要?jiǎng)?chuàng)新
教育技術(shù)是為了促進(jìn)學(xué)習(xí)過程和改善教學(xué)效率,而對各種恰當(dāng)?shù)募夹g(shù)過程和技術(shù)資源進(jìn)行設(shè)計(jì)、開發(fā)、利用和管理的研究和實(shí)踐。當(dāng)前,我們在課堂上使用的教育技術(shù),主要是通過使用音頻、視頻、圖片、文字等多媒體資源來豐富我們的教學(xué)內(nèi)容,創(chuàng)設(shè)生動(dòng)的教學(xué)情境,提高學(xué)生學(xué)習(xí)的興趣,實(shí)現(xiàn)各類資源的共享,彌補(bǔ)傳統(tǒng)教學(xué)條件的不足。隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,現(xiàn)代教育技術(shù)要進(jìn)一步創(chuàng)新,把移動(dòng)互聯(lián)網(wǎng)技術(shù)與教育、教學(xué)進(jìn)行深度融合,有效地提高教學(xué)質(zhì)量。
3 系統(tǒng)設(shè)計(jì)
Android智能手機(jī)在學(xué)生群體中已廣泛普及,本研究立足于某高職院校的人才培養(yǎng)目標(biāo),結(jié)合現(xiàn)代學(xué)習(xí)理論和軟件工程思想,進(jìn)行了基于Android平臺的移動(dòng)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)。系統(tǒng)設(shè)計(jì)遵循按需開發(fā)、模塊化、易操作及最小化原則,以實(shí)現(xiàn)程序的高效和復(fù)用。系統(tǒng)用戶分為:①學(xué)生;②教學(xué)設(shè)計(jì)者(教師);③教學(xué)管理者(管理員)。
4.1 需求分析
1)功能需求,
主要是:①學(xué)生和教師可以在課堂之外、沒有桌面電腦的地方,利用手機(jī)或平板電腦進(jìn)行課程學(xué)習(xí)和課程管理;②學(xué)生和教師通過智能手機(jī)進(jìn)行的學(xué)習(xí)活動(dòng)產(chǎn)生的信息資料,要能同步保存在數(shù)據(jù)庫服務(wù)器上,實(shí)現(xiàn)數(shù)據(jù)持久化。確保用戶更換上網(wǎng)方式和操作終端后,依然能繼續(xù)訪問前期學(xué)習(xí)資源;③在服務(wù)器端存儲用戶身份信息,在客戶端進(jìn)行用戶身份驗(yàn)證。一是保障系統(tǒng)數(shù)據(jù)安全,二是根據(jù)用戶身份角色提供不同的功能權(quán)限和學(xué)習(xí)環(huán)境;④手機(jī)端的資源上傳、下載和共享功能。數(shù)據(jù)先行下載后,可在沒有無線接入的場所進(jìn)行離線閱覽和學(xué)習(xí);⑤在線閱讀、在線討論和在線測驗(yàn)的功能是移動(dòng)學(xué)習(xí)的重要組成部分,能實(shí)現(xiàn)非正式學(xué)習(xí)、微課、自主學(xué)習(xí)等學(xué)習(xí)實(shí)踐。
2)性能需求
主要是:①響應(yīng)時(shí)間需求,要求小于1s的應(yīng)答時(shí)間,以獲得良好體驗(yàn);②可靠性需求,要求服務(wù)器端數(shù)據(jù)冗余,可追溯;③并發(fā)性需求,要求滿足2000人同時(shí)在線的并發(fā)連接。
4.2 開發(fā)環(huán)境介紹
①Android:Android是基于 Linux內(nèi)核的開源手機(jī)操作系統(tǒng),由三部分組成:底層的Linux內(nèi)核、中間件以及核心應(yīng)用程序。Android的應(yīng)用程序一般使用Java語言編寫,同時(shí)也支持其他主流開發(fā)語言,如C、Perl等。
②MySQL:MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低,對于中小規(guī)模的應(yīng)用需求,MySQL提供的功能已經(jīng)足夠。MySQL社區(qū)版可以方便的獲取,性能能夠滿足大多數(shù)開發(fā)的需求。
③操作系統(tǒng)使用Linux,Web服務(wù)器使用Apache,數(shù)據(jù)庫使用MySQL社區(qū)版,腳本解釋器使用PHP。以上四個(gè)軟件組合被稱為LAMP stack,它們是免費(fèi)或開放源碼的。
④SQLite:SQLite是一個(gè)開源的輕量級關(guān)系數(shù)據(jù)庫,是一個(gè)完整的數(shù)據(jù)庫系統(tǒng)。SQLite的實(shí)現(xiàn)基于SQL-92標(biāo)準(zhǔn),支持事務(wù)、觸發(fā)器和復(fù)雜查詢,但不進(jìn)行數(shù)據(jù)類型檢查。
⑤Eclipse:Eclipse是一個(gè)免費(fèi)的、可擴(kuò)展的開發(fā)平臺,核心非常小,只包括一個(gè)框架以及一組服務(wù),通過附加的插件來構(gòu)建完善而強(qiáng)大的開發(fā)環(huán)境。
4.3 系統(tǒng)設(shè)計(jì)
4.3.1 系統(tǒng)的總體架構(gòu)
在架構(gòu)設(shè)計(jì)中,采用多層體系結(jié)構(gòu)有利于系統(tǒng)的開發(fā)、部署、維護(hù)及擴(kuò)展。本設(shè)計(jì)釆用三層架構(gòu),服務(wù)器使用LAMP組合, SQLite作為智能手機(jī)端的嵌入式數(shù)據(jù)庫,改善用戶體驗(yàn);采用MySQL作為服務(wù)器端的數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)持久化,存儲海量的學(xué)習(xí)資源、用戶數(shù)據(jù)和日志信息等。
4.3.2 系統(tǒng)的拓?fù)浣Y(jié)構(gòu)
系統(tǒng)拓?fù)淙鐖D1所示。使用基于Android智能手機(jī)和平板電腦的用戶可通過無線校園網(wǎng),或者運(yùn)營商提供的3G/4G數(shù)據(jù)服務(wù)等方式,連接校內(nèi)服務(wù)器,實(shí)現(xiàn)跨地區(qū)、跨平臺的應(yīng)用。對于不斷增加的數(shù)據(jù)流量和并發(fā)訪問,可以通過前置的網(wǎng)絡(luò)流量均衡設(shè)備結(jié)合服務(wù)器群集、SAN提高響應(yīng)速度,改善操作體驗(yàn)。
4.3.3 系統(tǒng)的邏輯結(jié)構(gòu)
邏輯結(jié)構(gòu)見圖2。第一層是用戶界面層,分為臺式電腦客戶端與基于Android的移動(dòng)客戶端,用戶視圖在此層呈現(xiàn),Android通過KSOAP組件訪問應(yīng)用服務(wù)器;第二層是業(yè)務(wù)邏輯層,包括Web服務(wù)器、業(yè)務(wù)邏輯服務(wù)器,構(gòu)建了主要的在線學(xué)習(xí)處理功能,并為遠(yuǎn)程數(shù)據(jù)訪問提供了WebService服務(wù);第三層是持久層,包括關(guān)系數(shù)據(jù)庫MySQL、文件系統(tǒng),用于系統(tǒng)的數(shù)據(jù)存儲與訪問。
4.3.4 系統(tǒng)功能設(shè)計(jì)
根據(jù)需求分析,設(shè)計(jì)功能結(jié)構(gòu)圖3所示。
4.3.5 系統(tǒng)類設(shè)計(jì)
本系統(tǒng)是MVC框架,類設(shè)計(jì)分為界面類、實(shí)體類、控制類。此處不例舉。
4.3.6 數(shù)據(jù)庫設(shè)計(jì)
系統(tǒng)需要存儲用戶信息、課程信息、試卷信息、作業(yè)信息、各類數(shù)字化資源,以及學(xué)習(xí)記錄等大量的數(shù)據(jù)。概念結(jié)構(gòu)設(shè)計(jì)的ER模型見圖4。本系統(tǒng)涉及到的實(shí)體有:用戶、學(xué)生、教師、管理員、課程、課程資源、作業(yè)、試題、試卷、資源、日志等。邏輯結(jié)構(gòu)設(shè)計(jì)定義了相關(guān)的二維表,其中作業(yè)描述表實(shí)例見表1。
4.3.7 Android的界面布局
Android系統(tǒng)中可視化控件都從android.view.View類繼承而來。在系統(tǒng)設(shè)計(jì)中使用2種方式創(chuàng)建View對象:一種是使用XML布局文件來配置View的各項(xiàng)屬性,而后使用相應(yīng)的方法來裝載這些View;另一種方式是直接采用Java代碼來建立View和修改View的屬性。使用XML布局文件可以方便對控件進(jìn)行布局,但在程序運(yùn)行中的控制仍需Java代碼來實(shí)現(xiàn)。本設(shè)計(jì)以第一種方法為主,第二種方法為輔,實(shí)現(xiàn)相對簡單。
4.3.8 應(yīng)用程序中的通信
用戶界面層處于系統(tǒng)邏輯架構(gòu)中的最高層,用于實(shí)現(xiàn)系統(tǒng)的View與用戶交互。界面層的實(shí)現(xiàn)主要通過Android的基礎(chǔ)類Activity進(jìn)行,Activity是可視類,主要功能是加載View、響應(yīng)用戶操作、進(jìn)行數(shù)據(jù)校驗(yàn)及調(diào)用數(shù)據(jù)接口。大部分系統(tǒng)功能需要兩個(gè)以上的Activity相互配合才能完成,界面導(dǎo)航也要求在不同功能模塊之間跳轉(zhuǎn)。Activity類之間不能直接交互,Android 提供了Intent機(jī)制來實(shí)現(xiàn)Activity之間的通信。
Android的java.sql包提供了通過JDBC直接連接遠(yuǎn)程數(shù)據(jù)庫的方法。但是在面向?qū)ο蟮脑O(shè)計(jì)中,提倡“松耦合、緊內(nèi)聚”的解決方案,直接連接遠(yuǎn)程數(shù)據(jù)庫不是好辦法。
本系統(tǒng)后臺使用MySQL 數(shù)據(jù)庫,在移動(dòng)終端按需使用SQLite進(jìn)行本地暫存,以實(shí)現(xiàn)離線操作。Android 移動(dòng)終端通過調(diào)用WebService實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)交互,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程存儲和增、刪、改、查功能,最后將所需數(shù)據(jù)返回給Android 移動(dòng)終端。 WebService基于SOAP協(xié)議,本身可以實(shí)現(xiàn)跨平臺的應(yīng)用。
SQLite是非常輕量的數(shù)據(jù)庫,android.database.sqlite.SQLiteDatabase是Android SDK中數(shù)據(jù)庫操作的核心類,一般還會使用更便捷的抽象類SQLiteOpenHelper進(jìn)行數(shù)據(jù)庫操作。
數(shù)據(jù)庫操作的例程如下:
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBService extends SQLiteOpenHelper
{
private final static int DATABASE_VERSION = 1;
private final static String DATABASE_NAME = "m_learning.db";
@Override
public void onCreate(SQLiteDatabase db)
{
String sql = "CREATE TABLE [users] ("
+ "[id] AUTOINC,"
+ "[name] VARCHAR(20) NOT NULL ON CONFLICT FAIL,"
+……;
db.execSQL(sql);
}
public DBService(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
String sql = "drop table if exists [t_contacts]";
db.execSQL(sql);
sql = "CREATE TABLE [users ("
+ "[id] AUTOINC,"
+ "[name] VARCHAR(20) NOT NULL ON CONFLICT FAIL,"
+……;
db.execSQL(sql);
}
// 執(zhí)行insert、update、delete等SQL語句
public void execSQL(String sql, Object[] args)
{
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(sql, args);
}
// 執(zhí)行select語句
public Cursor query(String sql, String[] args)
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(sql, args);
return cursor;
}
}
以上例程實(shí)現(xiàn)了SQLiteOpenHelper的2個(gè)抽象方法,并提供了execSQL和query方法實(shí)現(xiàn)了數(shù)據(jù)庫的增、刪、改、查操作。
對于遠(yuǎn)程數(shù)據(jù)處理,使用第三方的類庫KSOAP進(jìn)行遠(yuǎn)程WebService調(diào)用,在Android系統(tǒng)的客戶端安裝KSOAP包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar,可以實(shí)現(xiàn)對業(yè)務(wù)邏輯和數(shù)據(jù)庫的遠(yuǎn)程訪問。
5 結(jié)束語
移動(dòng)學(xué)習(xí)是未來學(xué)習(xí)活動(dòng)重要組成部分。在技術(shù)層面,Android作為開放系統(tǒng),提供了豐富的可視和非可視控件、良好的用戶接口、強(qiáng)大的多任務(wù)管理功能和豐富的數(shù)據(jù)處理方法;在市場層面,Android具備完整的產(chǎn)業(yè)鏈,有免費(fèi)的開發(fā)平臺和發(fā)布環(huán)境,基于Android的手機(jī)普及并且相對低價(jià)。
本研究通過安裝Android開發(fā)插件的Eclipse IDE進(jìn)行系統(tǒng)開發(fā),應(yīng)用敏捷開發(fā)方法論提倡的小版本交付進(jìn)行快速迭代,為教學(xué)工作提供有效易用的工具,實(shí)現(xiàn)了學(xué)生跨地點(diǎn)、跨時(shí)間、自定步調(diào)的自主選課、自主學(xué)習(xí)及在線考試?!靶g(shù)者,道之用也”,想要真正發(fā)揮移動(dòng)學(xué)習(xí)的效用,要求教師在充分了解學(xué)生的能力起點(diǎn)和理解水平基礎(chǔ)上,關(guān)注現(xiàn)代教育技術(shù)應(yīng)用的有效性,以學(xué)習(xí)平臺為依托,以活動(dòng)為中心,鼓勵(lì)學(xué)生自己發(fā)現(xiàn)并解決問題,自己摸索學(xué)習(xí)方法,形成自主學(xué)習(xí)的能力,真正使學(xué)生成為學(xué)習(xí)主體,達(dá)到促進(jìn)學(xué)習(xí)的目的。
參考文獻(xiàn):
[1] Shawn Van Every, Android多媒體開發(fā)高級編程: 為智能手機(jī)和平板電腦開發(fā)圖形、音樂、視頻和富媒體應(yīng)用[M]. 巢文涵,譯.北京: 清華大學(xué)出版社, 2012.
[2] 辛自強(qiáng). 知識建構(gòu)研究: 從主義到實(shí)證[M]. 北京: 教育科學(xué)出版社, 2006.
[3] 梁振輝. 高職院校學(xué)生在線學(xué)習(xí)特點(diǎn)及其影響因素研究[J]. 中國職業(yè)技術(shù)教育, 2015(26): 5-14.
[4] 凌越. 高職院校應(yīng)用混合式教學(xué)的實(shí)踐探索[J]. 中國教育信息化, 2014(3): 41-43.
[5] Heather Staker,Michael B Horn.Classifying K-12 Blended Learning[M]. San Mateo: Innosight Institute, 2012.