張哲 汪毓鐸
摘? 要: 針對(duì)目前大部分通訊軟件使用公共數(shù)據(jù)庫(kù),可能會(huì)存在用戶信息泄露、通訊內(nèi)容數(shù)據(jù)泄露等安全性問題,在局域網(wǎng)基礎(chǔ)上建立私有數(shù)據(jù)庫(kù),開發(fā)基于Android的局域網(wǎng)即時(shí)通訊工具。該工具相當(dāng)于一個(gè)“簡(jiǎn)易版飛鴿傳書”,該程序可實(shí)現(xiàn)注冊(cè)、登陸,修改密碼、修改頭像、添加好友、刪除好友等功能,同時(shí)可完成在局域網(wǎng)內(nèi)收發(fā)文字信息、語(yǔ)音信息、表情信息、圖片信息和定位信息的功能。基于局域網(wǎng)即時(shí)通訊既保證了通訊的實(shí)時(shí)性,又保障了通訊的安全性。
關(guān)鍵詞: 局域網(wǎng);即時(shí)通訊;Android應(yīng)用;聊天工具
【Abstract】: In view of the security problems such as user information leakage and communication content data leakage in most communication software using public databases, a private database based on LAN is established and an Android-based local area network instant messaging tool is developed. The tool is equivalent to a "simple version of flying pigeon biography". The program can register, log in, modify password, change head image, add friends, delete friends and other functions. At the same time, it can complete the functions of sending and receiving text information, voice information, expression information, picture information and location information in the LAN. Instant messaging based on LAN not only guarantees the real-time communication, but also guarantees the security of communication.
【Key words】: LAN; Instant messaging; Android application; Chat applications
0? 引言
移動(dòng)通信集成互聯(lián)網(wǎng)的快速發(fā)展,使無(wú)線網(wǎng)絡(luò)的高速上網(wǎng)接入成為可能。用戶可以隨時(shí)隨地享受網(wǎng)絡(luò)服務(wù)。消息的實(shí)時(shí)傳遞需要使用因特網(wǎng)協(xié)議,該協(xié)議實(shí)現(xiàn)不同設(shè)備的不同用戶之間的實(shí)時(shí)通信。隨著智能設(shè)備的普及使得即時(shí)通訊服務(wù)可以更好的移植到移動(dòng)設(shè)備上。目前,開源的Android系統(tǒng)[1-2]吸引了大量的移動(dòng)終端廠商,著手研發(fā)具有自己特色的Android應(yīng)用與服務(wù)[3-13]。
目前移動(dòng)設(shè)備的通信應(yīng)用越來越廣泛,市場(chǎng)? 上存在許多方便快捷的即時(shí)通信軟件,如微信、QQ等[9-11]。李靜波利用基于負(fù)載均衡的即時(shí)通信作為一種新型的通信手段,通過計(jì)算機(jī)仿真及相關(guān)算法,
建立完美的均衡技術(shù)體系,能夠提高實(shí)時(shí)響應(yīng)能力,對(duì)于服務(wù)器出現(xiàn)的負(fù)載過重的情況予以消除[12]。吉毅等人利用Android系統(tǒng)應(yīng)用程序作為研究對(duì)象,分析中國(guó)主流聊天軟件實(shí)施過程,使用Xposed框架調(diào)整和修改心跳接口,給出針對(duì)即時(shí)通信應(yīng)用的節(jié)能應(yīng)用[13]。目前,基于數(shù)據(jù)安全角度考慮,開發(fā)設(shè)計(jì)一款移動(dòng)端基于局域網(wǎng)的即時(shí)通訊工具軟件是非常有意義和有必要的。
1? 總體設(shè)計(jì)
1.1? 系統(tǒng)整體設(shè)計(jì)
即時(shí)通訊系統(tǒng)將網(wǎng)絡(luò)作為必要條件,與其他用戶間實(shí)行實(shí)時(shí)的信息交互。因其方便快捷的顯著優(yōu)點(diǎn),具有很高的商業(yè)價(jià)值和服務(wù)市場(chǎng)。無(wú)線傳輸網(wǎng)
絡(luò)的發(fā)展使得即時(shí)通訊工具由電腦PC端轉(zhuǎn)移到智能移動(dòng)設(shè)備上,即時(shí)通訊工具的研究得到科研人員與設(shè)備廠商的青睞,成為移動(dòng)業(yè)務(wù)的新亮點(diǎn)。
基于Android的局域網(wǎng)即時(shí)通訊工具的主體功能是局域網(wǎng)內(nèi)的即時(shí)通信,系統(tǒng)總體設(shè)計(jì)分為用戶操作模塊、會(huì)話操作模塊、好友管理模塊和系統(tǒng)設(shè)置模塊四部分。系統(tǒng)功能結(jié)構(gòu)如圖1所示。
1.2? 系統(tǒng)軟件設(shè)計(jì)
1.2.1? 用戶操作模塊
用戶操作模塊主要是包含兩個(gè)功能:用戶登錄和用戶注冊(cè)。
用戶打開軟件默認(rèn)進(jìn)入登錄界面,如圖2左圖所示。在登錄模塊中用戶輸入用戶名和密碼,正確則進(jìn)入系統(tǒng);錯(cuò)誤則彈出提示消息顯示用戶名不存在或密碼錯(cuò)誤。用戶注冊(cè)模塊主要實(shí)現(xiàn)新用戶的注冊(cè),界面如圖2右圖所示。
1.2.2? 會(huì)話操作模塊
會(huì)話操作模塊主要是處理用戶間的即時(shí)通訊消息,如圖3所示,包括文本消息、語(yǔ)音消息、表情消息以及地圖消息四類。會(huì)話操作,可以是單聊,也可以是群聊。
(3)語(yǔ)音消息的發(fā)送
與文本、圖片相似,但發(fā)送語(yǔ)音時(shí)使用“DBConstant.SHOW_ORIGIN_AUDIO_TYPE”。發(fā)送時(shí)調(diào)用“AudioMessage audioMessage = AudioMessage.buildForSend(audioLen, audioSavePath, loginUser, peerEntity); ”。
(4)地圖消息的發(fā)送
地圖消息為一條文本消息加一條圖片消息。發(fā)送過程調(diào)用圖片和文本發(fā)送。
(5)接收消息
當(dāng)服務(wù)器接收到消息后,首先根據(jù)參數(shù)判斷來源與去向。根據(jù)peerEntity向消息的接收人推送消息。若消息發(fā)送成功,則服務(wù)器向消息雙方發(fā)送成功提醒。反之,則向消息發(fā)起人發(fā)送失敗提醒。
1.2.3? 好友管理模塊
(1)獲取好友列表
好友列表存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫(kù)中,也在本地有緩存列表,獲取好友列表可以通過:IMBaseDefine. UserInfo userInfo=imSearchUserRes.getUserListList(). get(0);
(2)添加好友
IMContactManager.getInstance().addFriend(loginId, peerId);
(3)刪除好友
IMContactManager.getInstance().deleteFriend (loginId, peerId);
(4)同意好友請(qǐng)求
IMContactManager.getInstance().acceptFriend (loginId, peerId);
(5)拒絕好友請(qǐng)求
IMContactManager.getInstance().refuseFriend (loginId, peerId);
1.2.4? 系統(tǒng)設(shè)置模塊
系統(tǒng)設(shè)置模塊主要功能有系統(tǒng)設(shè)置、錢包、收藏、清除圖片緩存、退出等,界面如圖4所示。
2? 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試的首要目的是確認(rèn)基于Android的局
域網(wǎng)即時(shí)通訊工具是否能夠正常運(yùn)行,確認(rèn)軟件是否完成了預(yù)先設(shè)計(jì)的各種功能。第二個(gè)目的是提供反饋信息,根據(jù)反饋信息檢查開發(fā)上是否出現(xiàn)了冗余的步驟,從而優(yōu)化和精簡(jiǎn)系統(tǒng),在系統(tǒng)的使用方面變得更加便捷。第三個(gè)目的是測(cè)試控制軟件的本身是否出現(xiàn)了開發(fā)方面的問題,出現(xiàn)了明顯的漏洞,這一方面的測(cè)試涉及到了整個(gè)開發(fā)過程,因?yàn)檐浖褂玫募夹g(shù)復(fù)雜多樣,也可能會(huì)出現(xiàn)不同模塊連接方面等問題。運(yùn)行界面如圖5所示。
3? 結(jié)束語(yǔ)
在進(jìn)行了各種具體功能的測(cè)試后,該基于Android的局域網(wǎng)即時(shí)通訊工具很好的達(dá)到了預(yù)期的要求,在局域網(wǎng)內(nèi)部搭建服務(wù)器,可以實(shí)現(xiàn)即時(shí)通信。即可滿足通信的實(shí)時(shí)性要求,又可保證通信數(shù)據(jù)的安全性,實(shí)現(xiàn)了設(shè)計(jì)中的功能,且操作簡(jiǎn)單、功能實(shí)用,但在界面美觀和功能拓展上還有待進(jìn)一步提升。該工具可用于保密性工作單位或?qū)W校等場(chǎng)所供內(nèi)部交流使用。
參考文獻(xiàn)
王勇. Android編程入門很簡(jiǎn)單[M]. 清華大學(xué)出版社, 2012.
郭霖. 第一行代碼 Android[M]. 北京: 人民郵電出版社, 2014.
張俊暉. Android即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 自動(dòng)化與儀器儀表, 2016(2): 64-66.
張曉燕. 教學(xué)搶答器APP的設(shè)計(jì)與應(yīng)用[J]. 軟件, 2018, 39(4): 103-106.
陸相任. 基于 Android 平臺(tái)開發(fā)的師生學(xué)習(xí)交流APP[J]. 軟件, 2018, 39(4): 21-23.
沈亮. 基于手機(jī)APP\GIS\OLAP的移動(dòng)運(yùn)營(yíng)商網(wǎng)格集中管理中心系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2016, 37(4): 74-83.
陸相任. 基于Android平臺(tái)開發(fā)的師生學(xué)習(xí)交流APP[J]. 軟件, 2018, 39(4): 21-23.
張曉諾. 基于Android 的智能家居環(huán)境監(jiān)測(cè)系統(tǒng)APP設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件, 2015, 36(2): 77-79.
笪林梅. 基于Android的校園多媒體即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 襄陽(yáng)職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2018(1).
徐希煒. 基于Android即時(shí)通信的創(chuàng)新實(shí)驗(yàn)室管理軟件設(shè)計(jì)[J]. 電腦編程技巧與維護(hù), 2017(6): 41-44.
羅偉. 基于Android 平臺(tái)的即時(shí)通訊系統(tǒng)的研究與實(shí)現(xiàn)[D]. 湖南: 湖南師范大學(xué), 2009.
李靜波. 基于負(fù)載均衡的Android即時(shí)通信系統(tǒng)淺析[J]. 科技經(jīng)濟(jì)導(dǎo)刊, 2018, (20).
吉毅, 賈俊鋮, 張書奎, 等. 安卓端即時(shí)通信應(yīng)用的心跳機(jī)制研究及性能優(yōu)化[J]. 計(jì)算機(jī)工程, 2018(1): 299-305.