汪靜+許欣+王新年
摘 要:教育信息化促使校園建設(shè)不斷完善,信息移動化正逐漸走進(jìn)校園。為了提高高校信息化水平,方便重要活動信息與相關(guān)事項(xiàng)的通知,在深入進(jìn)行需求分析的基礎(chǔ)上,將Bmob云平臺的消息推送機(jī)制與環(huán)信聊天的SDK整合。以中南民族大學(xué)為例,研究了校園移動平臺客戶端的設(shè)計(jì)與實(shí)現(xiàn)過程。該款A(yù)ndroid校園APP基于Java語言開發(fā)完成,可實(shí)現(xiàn)短信、語音和文件發(fā)送,以及聊天、定位、消息回執(zhí)等功能,并且已在設(shè)備上通過測試。
關(guān)鍵詞:Bmob云平臺;環(huán)信;Android;校園APP;消息推送
DOIDOI:10.11907/rjdk.162354
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A文章編號:1672-7800(2016)012-0084-03
0 引言
隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,移動終端的普及是必然趨勢。如今手機(jī)的智能化程度越來越高,傳輸速度不斷加快,手機(jī)的很多功能早已突破傳統(tǒng)的功能應(yīng)用。近年來,由于高校擴(kuò)招,學(xué)院師生數(shù)量急劇膨脹。在大學(xué)生這一特殊群體中,Android智能機(jī)的使用率較高,因此基于Android手機(jī)的校園移動平臺層出不窮[1]。在現(xiàn)今信息爆炸的時(shí)代,校園信息量日趨龐大,種類繁多的信息反而會讓師生忽略重要事項(xiàng)的通知,增加了通知人員的工作量?;贐mob云平臺[2-3]的消息推送系統(tǒng)采用了基于Bmob云平臺的消息推送機(jī)制,并整合了部分環(huán)信聊天SDK的功能。聊天功能主要由環(huán)信SDK實(shí)現(xiàn),相關(guān)數(shù)據(jù)存儲在Bmob服務(wù)器上,并采用Bmob提供的短信發(fā)送功能,給在一定時(shí)間內(nèi)仍沒有閱讀通知的人員發(fā)送短信通知,保證重要事項(xiàng)通知到位。通知人員可隨時(shí)掌握通知的送達(dá)率,從而提高工作效率。
1 系統(tǒng)設(shè)計(jì)與分析
利用手機(jī)實(shí)現(xiàn)校園重要事項(xiàng)通知到位,是系統(tǒng)設(shè)計(jì)的出發(fā)點(diǎn)。因此,基于該目的設(shè)計(jì)系統(tǒng)功能,以實(shí)時(shí)掌握校園里相關(guān)人員收到通知的進(jìn)展。手機(jī)與服務(wù)器之間采用安全且流量較少的通訊方式。
1.1 軟件架構(gòu)
系統(tǒng)采用C/S結(jié)構(gòu),數(shù)據(jù)主要存儲在服務(wù)器端。服務(wù)器端采用“Bmob+環(huán)信”的方式提供Web Service,Android手機(jī)端使用SQLite[6]緩存數(shù)據(jù),與JavaAPI之間實(shí)現(xiàn)數(shù)據(jù)的上傳和下載[7-8],手機(jī)的UI框架采用環(huán)信SDK的EaseUI實(shí)現(xiàn),其基本軟件架構(gòu)如圖1所示。1.2 設(shè)計(jì)概述
本系統(tǒng)采用面向?qū)ο蟮脑O(shè)計(jì)方法進(jìn)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)的基本模塊分工如圖2所示,其中,包c(diǎn)om.zhongnan.push包含了項(xiàng)目中的基本配置,包括Model數(shù)據(jù)中心和應(yīng)用程序主入口,以及程序輔助類PushHelper;包c(diǎn)om.zhongnan.push.adapter包含了項(xiàng)目中用到的所有適配器;包c(diǎn)om.zhongnan.push.db包含了項(xiàng)目基本的數(shù)據(jù)庫操作接口封裝;包c(diǎn)om.zhongnan.push.domain包含了網(wǎng)絡(luò)消息體的封裝;包c(diǎn)om.zhongnan.push.parse包含了項(xiàng)目基本的數(shù)據(jù)解析操作;包c(diǎn)om.zhongnan.push.receiver包含了項(xiàng)目的廣播接收器;包c(diǎn)om.zhongnan.push.runtimepermission包含了項(xiàng)目中的好友權(quán)限管理;包c(diǎn)om.zhongnan.push.task包含了圖片異步下載的接口封裝;包c(diǎn)om.zhongnan.push.ui包含了項(xiàng)目的所有界面(Activity);包c(diǎn)om.zhongnan.push.utils包含了項(xiàng)目的工具類以及Bmob服務(wù)器的操作接口,包括短信、數(shù)據(jù)庫操作接口的封裝;包c(diǎn)om.zhongnan.push.video.util包含了音視頻處理接口的封裝;包c(diǎn)om.zhongnan.push.widget包含了項(xiàng)目中Activity用到的各種UI Widget。
系統(tǒng)的基本UI框架采用環(huán)信SDK的EaseUI加以實(shí)現(xiàn)。借助于環(huán)信的SDK實(shí)現(xiàn)系統(tǒng)的聊天功能,系統(tǒng)會在注冊過程中將用戶的基本信息存儲于Bmob服務(wù)器,以便注冊校驗(yàn)檢測;用戶的聊天記錄信息會在Bmob服務(wù)器中存儲相應(yīng)的通知信息ID與群聊ID,以便系統(tǒng)進(jìn)行短信通知。
1.3 功能設(shè)計(jì)
對用戶的常用需求進(jìn)行調(diào)研,設(shè)計(jì)相關(guān)軟件功能。系統(tǒng)主要包含登錄注冊、聊天、發(fā)布通知等功能。
1.3.1 登錄注冊
用戶登錄時(shí),如果沒有賬號則需在注冊界面注冊,注冊的用戶名以用戶的手機(jī)號為準(zhǔn)。在獲取手機(jī)校驗(yàn)碼后,最后客戶端在環(huán)信的服務(wù)器上完成注冊。具體的登錄流程如圖3所示。
1.3.2 通知發(fā)布
用戶選擇發(fā)布通知后,可進(jìn)入發(fā)布通知界面編輯通知內(nèi)容,然后選擇是否在現(xiàn)有群聊中發(fā)送通知。然后,用戶點(diǎn)擊通知消息進(jìn)入未讀人員列表,向未讀人員發(fā)送短信。每當(dāng)群成員讀取通知后,將該成員標(biāo)示為已讀對象。具體的發(fā)布通知流程如圖4所示。
2 功能實(shí)現(xiàn)
2.1 登錄界面
進(jìn)入登錄頁面后,用戶輸入用戶名和密碼即可登錄,密碼校驗(yàn)成功則進(jìn)入客戶端主界面;如果沒有賬號則進(jìn)入注冊界面。
2.2 注冊界面
用戶注冊要求輸入手機(jī)號,并獲取驗(yàn)證碼。此時(shí)客戶端向Bmob服務(wù)器獲取驗(yàn)證碼并發(fā)送至手機(jī),用戶輸入驗(yàn)證碼,同時(shí)客戶端會在請求驗(yàn)證碼之前向Bmob服務(wù)器查詢該手機(jī)號是否已經(jīng)注冊。如果已注冊,客戶端會提示用戶該號碼已經(jīng)注冊;如果沒有注冊,用戶輸入驗(yàn)證碼后,輸入密碼并選擇注冊的身份角色,通過客戶端校驗(yàn)后,客戶端會在環(huán)信的服務(wù)器上完成賬號信息注冊。
2.3 主界面
主界面默認(rèn)選項(xiàng)為會話列表界面。用戶可切換至通訊錄和設(shè)置界面,所有的會話展示在會話列表界面,當(dāng)用戶點(diǎn)擊會話時(shí)進(jìn)入聊天界面。根據(jù)角色不同,界面和功能也有所差異,若登錄的角色是教師,則主界面右上角有加號可用于發(fā)布通知。用戶輸入通知內(nèi)容,然后選擇發(fā)布對象,客戶端會根據(jù)用戶選擇是否在現(xiàn)有群聊中發(fā)布通知,決定是否建立新群聊或添加新成員入群,然后發(fā)送通知。
2.4 發(fā)布通知界面
用戶選擇發(fā)布通知后,客戶端向Bmob服務(wù)器存儲當(dāng)前的群聊ID與通知消息ID,將群主設(shè)置為已讀人員。用戶點(diǎn)擊通知消息會進(jìn)入未讀人員列表,可在列表中自主選擇需要發(fā)送短信的群成員對象,并發(fā)送短信。未讀人員會收到來自Bmob服務(wù)器發(fā)送到指定主機(jī)的短信通知,在登錄軟件查看通知信息后,會同時(shí)向Bmob服務(wù)器的已讀人員表中添加該成員,表示該成員為已讀對象,直至未讀人員列表為空,以確保每一位通知對象均已收到通知。
2.5 聊天界面
除發(fā)布通知功能外,聊天界面也具備其它基本功能,例如發(fā)送文件、表情、照片、語音、地理位置等,以方便用戶傳遞信息,增加用戶之間的交流。
2.6 通訊錄界面
在通訊錄界面,用戶可查看好友申請,進(jìn)行好友請求的接受和拒絕。同時(shí)用戶可選擇進(jìn)入群聊列表界面,也可選擇好友建立新的群聊。
2.7 設(shè)置界面
用戶可設(shè)置系統(tǒng)的基本功能,修改用戶資料,目前僅支持用戶頭像和昵稱的修改,還可設(shè)置基本的消息接收提示,例如選擇聲音或震動,是否使用揚(yáng)聲器播放語音,以及退出群組時(shí)是否清除聊天數(shù)據(jù)等。目前所有聊天信息存儲于本地的客戶端數(shù)據(jù)庫中。
3 結(jié)語
本文借助Android系統(tǒng)設(shè)計(jì)完成了一個(gè)基于Bmob云平臺的消息推送校園APP,通知者可給在一段時(shí)間內(nèi)仍未查看通知的未讀人員手動發(fā)送短信,以保證重要事項(xiàng)通知到位,從而減輕傳達(dá)人員的工作量,提高工作效率。系統(tǒng)設(shè)計(jì)的底層相對抽象,對類的封裝比較徹底,相關(guān)功能直接在此基礎(chǔ)上進(jìn)行拓展。然而,系統(tǒng)的穩(wěn)定性仍存在一定問題,由于系統(tǒng)的服務(wù)器都依賴于Bmob和環(huán)信服務(wù)器[9-10],而相關(guān)服務(wù)器目前尚不太穩(wěn)定,可能存在用戶無法登錄的情況,這也是后期需要進(jìn)一步優(yōu)化與改進(jìn)的方面。
參考文獻(xiàn):
[1] 劉宗平.淺析數(shù)字化校園建設(shè)中的移動校園平臺建設(shè)[J].科技創(chuàng)新與應(yīng)用,2013(14):83-83.
[2] 韓基龍.試談Android移動云應(yīng)用的優(yōu)勢和發(fā)展趨勢[J].電腦編程技巧與維護(hù),2014(6):58-59.
[3] 周冉,高玉竹.Bmob云平臺在Android App開發(fā)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2015,34(1):26-28.
[4] 倪紅軍.基于Android平臺的消息推送研究與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2014,33(5):96-100.
[5] 王曉萍,孟坤.基于可信第三方實(shí)現(xiàn)多云平臺的交互和選擇[J].計(jì)算機(jī)與現(xiàn)代化,2014(1):104-108.
[6] 劉昌平,范明玨,王光衛(wèi),等.Android 手機(jī)的輕量級訪問控制[J]. 計(jì)算機(jī)應(yīng)用研究,2010,27(7):2611-2613,2618.
[7] CHAUDHURI A. Language-based security on Android[C].The Workshop on Programming Languages & Analysis for Security,2009:1-7.
[8] 張國防,白曉波,孫超.基于Android的APP開發(fā)平臺的搭建[J].通訊世界,2015(12):68-69.
[9] CORRAL L, SILLITTI A, SUCCI G. Mobile multiplatform development: an experiment for performance analysis[J]. Procedia Computer Science, 2012, 10(1):736-743.
[10] 劉歡,張?jiān)鲂?,馬晨輝.華東師范大學(xué):混合開發(fā)移動應(yīng)用[J].中國教育網(wǎng)絡(luò),2013(7):63-65.
(責(zé)任編輯:孫 娟)