李彬,趙連軍,劉帥
(山東理工大學(xué)計(jì)算機(jī)學(xué)院,淄博 255049)
Android平臺(tái)下移動(dòng)學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
李彬,趙連軍,劉帥
(山東理工大學(xué)計(jì)算機(jī)學(xué)院,淄博255049)
Google在2007年發(fā)布Android手機(jī)操作系統(tǒng),因其開(kāi)放源代碼,受到廣大智能手機(jī)廠(chǎng)商的歡迎,也在廣大開(kāi)發(fā)者和用戶(hù)群體中得到廣泛使用[1]。Android系統(tǒng)功能十分強(qiáng)大,而且十分高效、穩(wěn)定。
智能手機(jī)已經(jīng)在廣大青少年學(xué)生中普及開(kāi)來(lái),幾乎每個(gè)人的手中都有一部手機(jī),很多人每天都將大部分時(shí)間花在使用手機(jī)上,智能手機(jī)的廣泛使用也改變了學(xué)生的生活和學(xué)習(xí)方式[2]。隨著移動(dòng)通信與教育的有效結(jié)合,其在當(dāng)代教育領(lǐng)域中發(fā)揮的作用也將越來(lái)越大[3]。由于傳統(tǒng)的教育和學(xué)習(xí)方式已經(jīng)越來(lái)越不適應(yīng)社會(huì)的快速發(fā)展和人們對(duì)于科學(xué)文化知識(shí)的需求,越來(lái)越多的機(jī)構(gòu)和個(gè)人投入到移動(dòng)學(xué)習(xí)的研究當(dāng)中,移動(dòng)學(xué)習(xí)已經(jīng)成為了一種新型的教育方式。根據(jù)某教育咨詢(xún)公司的市場(chǎng)調(diào)查和需求分析,本文推出一款A(yù)ndroid平臺(tái)下的移動(dòng)學(xué)習(xí)軟件,希望能解決傳統(tǒng)學(xué)習(xí)模式受到各種學(xué)習(xí)資源限制的弊端,提高學(xué)生學(xué)習(xí)的積極性。
該移動(dòng)學(xué)習(xí)系統(tǒng)使用當(dāng)前最流行的Java編程語(yǔ)言實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì),編譯工具為JDK1.8。使用Android Studio 1.5.1開(kāi)發(fā)工具進(jìn)行手機(jī)客戶(hù)端的開(kāi)發(fā),使用E-clipse進(jìn)行服務(wù)器端的設(shè)計(jì),數(shù)據(jù)庫(kù)使用MySQL。本系統(tǒng)的功能結(jié)構(gòu)如圖1所示:
圖1 系統(tǒng)結(jié)構(gòu)
手機(jī)客戶(hù)端學(xué)習(xí)系統(tǒng)通過(guò)發(fā)送HTTP網(wǎng)絡(luò)連接請(qǐng)求到后臺(tái)服務(wù)器端,后臺(tái)服務(wù)器程序訪(fǎng)問(wèn)MySQL數(shù)據(jù)庫(kù),獲取需要的數(shù)據(jù)返回給客戶(hù)端??蛻?hù)端通過(guò)服務(wù)器這個(gè)媒介和數(shù)據(jù)庫(kù)進(jìn)行相互通信。
客戶(hù)端學(xué)習(xí)系統(tǒng)運(yùn)行于裝有Android系統(tǒng)的智能手機(jī)上,使用xUtils框架設(shè)計(jì),xUtils源于Afinal框架,由于對(duì)Afina進(jìn)行了大量重構(gòu),xUtil集成了更多的實(shí)用工具,功能更加強(qiáng)大,xUtilsd的DbUtils模塊支持事務(wù),默認(rèn)關(guān)閉,可通過(guò)注解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等;xUtils的ViewUtils模塊使用了Android中的IoC框架,完全注解方式就可以進(jìn)行UI綁定和事件綁定;HttpUtils模塊支持同步、異步方式請(qǐng)求,支持GET、POST、PUT、MOVE、COPY、DELETE和HEAD請(qǐng)求;BitmapUtils模塊加載bitmap的時(shí)候無(wú)需考慮bitmap加載過(guò)程中出現(xiàn)oom和Android容器快速滑動(dòng)時(shí)候出現(xiàn)的圖片錯(cuò)位現(xiàn)象,可配置線(xiàn)程加載線(xiàn)程數(shù)量,緩存大小,緩存路徑??蛻?hù)端系統(tǒng)有3個(gè)基本模塊。包括視頻播放模塊、好友聊天模塊和個(gè)人中心模塊,這3個(gè)模塊雖然不同,但在功能上相輔相成,各個(gè)模塊下面有不同子功能的劃分。其功能模塊如圖2所示:
圖2 客戶(hù)端學(xué)習(xí)系統(tǒng)功能模塊
在Android客戶(hù)端程序中,每個(gè)用戶(hù)操作界面為一個(gè)Activity,在Activity中使用各種組件來(lái)構(gòu)建界面[4]。在該軟件的設(shè)計(jì)中,為了實(shí)現(xiàn)用戶(hù)與界面的友好交互,根據(jù)界面中所需控件的不同和界面的美觀,大部分界面設(shè)計(jì)使用了相對(duì)布局(RelativeLayout),其余界面的設(shè)計(jì)分別使用了線(xiàn)性布局(LinearLayout)、幀布局(FrameLayout)和表格布局(TableLayout)等不同的布局方式,有些復(fù)雜的界面在設(shè)計(jì)時(shí)采用了不同布局的嵌套。該移動(dòng)學(xué)習(xí)軟件有3個(gè)不同的功能模塊,在代碼實(shí)現(xiàn)上,分別為頻播放模塊、好友聊天模塊和個(gè)人中心模塊設(shè)計(jì)了3個(gè)不同的Fragment模塊,即Fragment1_Video、Fragment2_Communication、Fragment3_Qz,當(dāng)用戶(hù)點(diǎn)擊不同的按鈕圖標(biāo)時(shí),無(wú)需跳轉(zhuǎn),直接在主界面上加載該功能模塊。當(dāng)用戶(hù)進(jìn)入不同模塊的子功能時(shí),程序使用Android中常用的Intent方式跳轉(zhuǎn)到目標(biāo)Activity中。各功能模塊的具體實(shí)現(xiàn)如下:
(1)視頻播放模塊
視頻播放模塊將客戶(hù)端從數(shù)據(jù)庫(kù)中獲取到的視頻展示在該模塊中,該模塊下面有視頻點(diǎn)播、視頻分類(lèi)、關(guān)鍵字搜索視頻、評(píng)論視頻等功能,所對(duì)應(yīng)的Activity分別為VideoPlayAty、VideoCardMore、SearchActivity和VideoComment等。
當(dāng)用戶(hù)登錄系統(tǒng)點(diǎn)擊進(jìn)入視頻播放模塊時(shí),會(huì)出現(xiàn)一個(gè)視頻下拉列表ListView,在該軟件的設(shè)計(jì)中,使用ListView的item重用技術(shù),在ListView未被進(jìn)行上拉下拉等操作時(shí),緩存存儲(chǔ)連續(xù)有序的item,當(dāng)前的layout已經(jīng)保存可見(jiàn)的View,當(dāng)用戶(hù)根據(jù)需要,對(duì)視頻列表滑動(dòng)時(shí),這時(shí)ListView發(fā)生變化,直接從緩存的View中獲取item提供給Adapter的getView()函數(shù),獲取相應(yīng)視頻的圖片,使用ListView的item重用技術(shù)既節(jié)省了內(nèi)存空間,又提高了瀏覽速度,增強(qiáng)了用戶(hù)體驗(yàn)度。當(dāng)用戶(hù)點(diǎn)擊相關(guān)視頻時(shí),觸發(fā)ListView的OnItem-ClickListener監(jiān)聽(tīng)事件,該事件調(diào)用程序中自定義了一個(gè)F1_VideoPlayAty.class類(lèi)對(duì)選中的視頻進(jìn)行播放(play)操作,其中的play()實(shí)現(xiàn)代碼如下:
//如果視頻沒(méi)有正在播放
//判斷是否是ListView列表中的第一個(gè)視頻
用戶(hù)也可以在搜索框vSearchContent中輸入關(guān)鍵字去搜索感興趣的視頻進(jìn)行學(xué)習(xí),實(shí)現(xiàn)代碼如下:
//如果搜索框中的字符串信息不為空
把企業(yè)之間發(fā)生的經(jīng)濟(jì)往來(lái)作為財(cái)務(wù)會(huì)計(jì)與管理會(huì)計(jì)融合的重要依據(jù),這就要求二者把與企業(yè)有關(guān)的信息搜集整理,并做好記錄,這是財(cái)務(wù)會(huì)計(jì)與管理會(huì)計(jì)要核算的內(nèi)容,也是本企業(yè)曾經(jīng)和未來(lái)的資金流動(dòng)情況。從核算內(nèi)容的角度上看,二者存在交叉點(diǎn),所使用的原始信息的來(lái)源相同。但在信息歸集的具體操作上稍有區(qū)別,同時(shí)在這個(gè)過(guò)程中也會(huì)持不同的觀點(diǎn)和看法。實(shí)踐證明,如果管理會(huì)計(jì)的信息來(lái)源建立在財(cái)務(wù)會(huì)計(jì)的數(shù)據(jù)基礎(chǔ)上,將會(huì)提升管理效率。因此,企業(yè)的決策層在作出具體決策時(shí),必須把財(cái)務(wù)會(huì)計(jì)與管理會(huì)計(jì)的相關(guān)信息融合在一起,從整體和局部分析數(shù)據(jù)信息,結(jié)合企業(yè)的實(shí)際情況作出與未來(lái)發(fā)展規(guī)劃相適應(yīng)的決策。
此外,視頻分類(lèi)功能根據(jù)不同的年級(jí)和學(xué)科對(duì)視頻進(jìn)行了分類(lèi)整理,使用戶(hù)更為方便的找到相關(guān)的學(xué)習(xí)資源,當(dāng)用戶(hù)選擇了年級(jí)和學(xué)科,并按確定鍵點(diǎn)擊后,程序會(huì)調(diào)用編寫(xiě)好的視頻搜索算法進(jìn)行查找,查找完畢后將搜索到的相關(guān)視頻顯示到手機(jī)界面,用戶(hù)可以點(diǎn)擊相關(guān)視頻進(jìn)行觀看。用戶(hù)在觀看視頻時(shí)可以對(duì)感興趣的視頻進(jìn)行點(diǎn)贊、收藏、分享、下載和發(fā)表評(píng)論等操作。
(2)好友聊天模塊
好友聊天模塊下面有添加好友、好友列表、好友消息,所對(duì)應(yīng)的Activity為AddFriendActivity、ListFriendActivity和ChatActivity。
在該功能模塊的設(shè)計(jì)中,在項(xiàng)目的libs文件夾下導(dǎo)入了添加通訊云的gotyeapi.jar工具包,快速實(shí)現(xiàn)了軟件中使用文字、圖片和發(fā)送語(yǔ)音聊天,還可調(diào)用相機(jī)拍照并發(fā)送給好友,經(jīng)過(guò)測(cè)試,系統(tǒng)的穩(wěn)定情況很好。發(fā)送語(yǔ)音聊天代碼如下:
如果用戶(hù)還沒(méi)有好友或者好友數(shù)量較少,可以通過(guò)搜索用戶(hù)名發(fā)送好友添加請(qǐng)求,若對(duì)方同意則對(duì)方的用戶(hù)名將會(huì)顯示在好友列表中,雙方可以實(shí)現(xiàn)發(fā)送消息進(jìn)行交流,用戶(hù)可以設(shè)置消息提示音、消息震動(dòng)以及設(shè)置聊天信息的銷(xiāo)毀時(shí)間。
(3)個(gè)人中心模塊
個(gè)人中心模塊下面有我的點(diǎn)贊、我的下載和空間動(dòng)態(tài)等功能,對(duì)應(yīng)的Activity為AppreciateActivity、DownloadActivity和KongjianActivity。
用戶(hù)可以查看自己點(diǎn)過(guò)贊的視頻和下載過(guò)的視頻,下載過(guò)的視頻已經(jīng)保存到用戶(hù)的手機(jī)內(nèi)存中,無(wú)需聯(lián)網(wǎng)即可進(jìn)行播放,當(dāng)用戶(hù)想觀看下載過(guò)的視頻時(shí),程序取出本地?cái)?shù)據(jù)庫(kù)中視頻的nid,調(diào)用自定義的視頻播放類(lèi)F1_VideoPlayAty.class播放視頻,具體代碼如下:
服務(wù)器端完成客戶(hù)端與數(shù)據(jù)庫(kù)的信息交互,起到中介作用。服務(wù)器管理系統(tǒng)采用Java語(yǔ)言實(shí)現(xiàn),使用了JBOSS提供的Netty框架,簡(jiǎn)化和流線(xiàn)化了網(wǎng)絡(luò)應(yīng)用的編程開(kāi)發(fā)過(guò)程,有利于系統(tǒng)的擴(kuò)展和跨平臺(tái)應(yīng)用。服務(wù)器管理系統(tǒng)的功能如圖3。
服務(wù)器的啟動(dòng)代碼:
圖3 服務(wù)器功能模塊
服務(wù)器端負(fù)責(zé)處理客戶(hù)端發(fā)送來(lái)的請(qǐng)求,客戶(hù)端利用Android集成的Apache的Http Client模塊,使用HttpURLConnection訪(fǎng)問(wèn)網(wǎng)絡(luò)。根據(jù)功能的不同,Android客戶(hù)端將不同的參數(shù)傳遞給服務(wù)器,該軟件的服務(wù)器端程序中使用的大量自定義的Handler類(lèi)來(lái)處理客戶(hù)端發(fā)送來(lái)的請(qǐng)求,服務(wù)器根據(jù)接收到的參數(shù)調(diào)用MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù),并以JSON格式返回給客戶(hù)端,Android客戶(hù)端接收到數(shù)據(jù)后會(huì)對(duì)JSON數(shù)據(jù)進(jìn)行格式解析,將解析出的數(shù)據(jù)通過(guò)客戶(hù)端的界面顯示給用戶(hù)[5]。系統(tǒng)管理者還可通過(guò)服務(wù)器端主動(dòng)向客戶(hù)端發(fā)送通知,在客戶(hù)端設(shè)計(jì)了SystemNotification類(lèi)用于接受服務(wù)器發(fā)送來(lái)的消息,并將消息內(nèi)容顯示到手機(jī)界面上。
用戶(hù)通過(guò)手機(jī)號(hào)碼注冊(cè)該移動(dòng)學(xué)習(xí)系統(tǒng),設(shè)置密碼,再次登錄時(shí)憑手機(jī)號(hào)和登錄密碼登錄系統(tǒng)。用戶(hù)進(jìn)入該系統(tǒng)后,可以查看所有功能模塊并使用相關(guān)功能進(jìn)行課程學(xué)習(xí)、好友交流和發(fā)表空間動(dòng)態(tài)。該軟件系統(tǒng)通過(guò)Android系統(tǒng)測(cè)試平臺(tái)的測(cè)試,在虛擬機(jī)和多款不同品牌的Android手機(jī)上均實(shí)現(xiàn)了穩(wěn)定流暢的運(yùn)行。系統(tǒng)運(yùn)行的效果如圖4所示:
圖4 系統(tǒng)運(yùn)行效果圖
隨著Android系統(tǒng)的崛起和智能手機(jī)軟件的不斷推陳出新,本文設(shè)計(jì)和開(kāi)發(fā)了基于Android平臺(tái)的移動(dòng)學(xué)習(xí)系統(tǒng),為眾多Android用戶(hù)提供了一個(gè)學(xué)習(xí)和交流的平臺(tái)。通過(guò)該軟件,用戶(hù)可以更好地利用零散的時(shí)間,隨時(shí)隨地學(xué)習(xí)感興趣的內(nèi)容,并且可以和好友交流信息,還可以進(jìn)入個(gè)人中心發(fā)表看法,提高了學(xué)習(xí)的積極性和效率。當(dāng)然,該移動(dòng)學(xué)習(xí)系統(tǒng)還有不足之處,由于自身理論知識(shí),在細(xì)節(jié)設(shè)計(jì)方面還有需要進(jìn)一步完善的地方,在應(yīng)用推廣的過(guò)程中,要根據(jù)用戶(hù)的需求反饋,不斷更新其功能。
[1]郭宏志.Android應(yīng)用開(kāi)發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[2]曾惠霞,黃志偉.基于Android的自主學(xué)習(xí)軟件的研究與實(shí)現(xiàn)[J].價(jià)值工程,2014(29):230-231
[3]劉承焜.促進(jìn)大學(xué)生自主學(xué)習(xí)的教學(xué)模式研究[J].中國(guó)高等教育,2011(17):58-59.
[4]勒巖,姚尚郎.Google Android開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn)[M].北京:人民郵電出版社,2006:57-135
[5]萬(wàn)明,李娟娟.基于Android的社區(qū)信息管理管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014,10(3):561-563
趙連軍,男,山東淄博人,博士,副教授,研究方向?yàn)槠髽I(yè)信息化工程技術(shù)
劉帥(1989-),男,山東濰坊人,碩士研究生,研究方向?yàn)閳D像處理
Android;Mobile Learning;Intelligent Mobile Phone
Design and Implement of Mobile Learning System Based on Android Platform
LI Bin,ZHAO Lian-jun,LIU Shuai
(School of Computer Science,Shandong University of Technology,Zibo 255049)
1007-1423(2016)22-0078-05DOI:10.3969/j.issn.1007-1423.2016.22.017
李彬(1989-),男,山東濟(jì)寧人,碩士研究生,研究方向?yàn)橛?jì)算機(jī)信息化
2016-05-31
2016-07-26
近年來(lái),隨著Android系統(tǒng)的崛起,智能手機(jī)迅速普及,已成為人們生活中的不可或缺的產(chǎn)品,基于智能手機(jī)的學(xué)習(xí)軟件需求量迅速增加。針對(duì)目前的需求現(xiàn)狀,設(shè)計(jì)一款基于Android平臺(tái)的學(xué)習(xí)和相互交流信息的軟件,該軟件實(shí)現(xiàn)了播放課程視頻、下載視頻、好友聊天、發(fā)表動(dòng)態(tài)等功能。通過(guò)該軟件,用戶(hù)可以隨時(shí)隨地利用時(shí)間進(jìn)行學(xué)習(xí)和交流。
Android;移動(dòng)學(xué)習(xí);智能手機(jī)
In recent years,with the rise of Android system,the intelligent mobile phone is popular in people,and it has become an indispensable part of people's life,the demanded quantity of learning software which is based on mobile phone devices increases rapidly.Aiming at current demand situation,designs a learning and exchanging information software which is based on Android platform,realizes the functions such as playing videos,downloading videos,communicating with friends and publishing dynamics,etc.Through the software,users can study and communicate with friends at any time.