仿QQ聊天系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
仿QQ聊天系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
仿QQ聊天系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
仿QQ聊天系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
仿QQ聊天系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄緒論1一需求分析11.1軟件功能需求分析21.2 安全需求分析2二總體設(shè)計(jì)32.1 軟件結(jié)構(gòu)圖32.2 功能描述32.2.1注冊(cè)功能概要42.2.2登錄功能概要42.2.3聊天功能概要52.3 安全設(shè)計(jì)6三數(shù)據(jù)庫(kù)設(shè)計(jì)63.1概念結(jié)構(gòu)設(shè)計(jì)63.2邏輯結(jié)構(gòu)設(shè)計(jì)73.3物理結(jié)構(gòu)設(shè)計(jì)7四詳細(xì)設(shè)計(jì)84.1 用戶聊天模塊總體流程圖84.2 服務(wù)端模塊84.3 客戶端模塊9五編碼14六結(jié)論16學(xué)習(xí)體會(huì)17致謝17參考文獻(xiàn)17緒論隨著現(xiàn)代技術(shù)的不斷輸入和信息化的廣泛普及,移動(dòng)網(wǎng)絡(luò)作為一種新興事物,在近些年得到了前所未有的普及和深入,移動(dòng)網(wǎng)絡(luò)上的各種應(yīng)用層出不窮,給各個(gè)階層、各個(gè)年齡段的用戶提供了不同的個(gè)性

2、化的服務(wù)。而現(xiàn)代中小型企業(yè)的領(lǐng)導(dǎo)認(rèn)識(shí)到進(jìn)一步提高企業(yè)信息化的必要性。為使企業(yè)能在瞬息萬變的信息時(shí)代生存下去,適應(yīng)激烈的市場(chǎng)競(jìng)爭(zhēng),現(xiàn)代企業(yè)要求加強(qiáng)員工之間的交流和通信能力,尤其是領(lǐng)導(dǎo)和員工之間的共同能力,實(shí)時(shí)的交流系統(tǒng)就是在這種條件下誕生的。在這個(gè)信息化時(shí)代,手機(jī)已成為繼固話之后最為通俗的交流工具,“聊天”成了生活的必需品,這就有了系統(tǒng)下人與人之間的多樣會(huì)話方式qq聊天。傳統(tǒng)會(huì)話聊天或許是面對(duì)面閑話家?;蛟S是通過打電話進(jìn)行交流,但都存在各種不便及弊端 。而手機(jī)qq,在手機(jī)系統(tǒng)下,占用手機(jī)相對(duì)很小的空間,系統(tǒng)的記錄了qq好友的信息,不僅突破了各種條件的束縛,減輕了機(jī)主的負(fù)擔(dān),更方便了使用者的通訊交

3、流。綜上所述,本課題主要研究基于android的移動(dòng)聊天系統(tǒng),以更好的用戶體驗(yàn)性為目的開發(fā)出界面簡(jiǎn)潔,用戶易操作的移動(dòng)即時(shí)通信聊天工具。該聊天工具的主要功能:用戶注冊(cè),登錄,好友一對(duì)一聊天,添加新好友,修改個(gè)人信息等。在該即時(shí)通信工具中利用bmob實(shí)現(xiàn)android端與bmob服務(wù)端的數(shù)據(jù)操作。bmob對(duì)數(shù)據(jù)的增刪改查找做了很好地封裝,以及其批量的處理。客戶端之間通過服務(wù)器對(duì)數(shù)據(jù)的轉(zhuǎn)發(fā)實(shí)現(xiàn)相互通信。1 需求分析隨著經(jīng)濟(jì)全球化的推進(jìn)以及企業(yè)激烈的競(jìng)爭(zhēng),改善企業(yè)內(nèi)部及整個(gè)供應(yīng)鏈各環(huán)節(jié)的管理、調(diào)度資源配置,迅速適應(yīng)客戶的新需求和市場(chǎng)新機(jī)遇,是企業(yè)贏得競(jìng)爭(zhēng)勝利的決定性因素。需求分析是軟件分析中的一個(gè)重

4、要步驟。它的基本任務(wù)是要準(zhǔn)確地分析出系統(tǒng)應(yīng)用者的需要,以及系統(tǒng)目標(biāo)必須具備哪些功能。這些功能必須準(zhǔn)確地,完整地體現(xiàn)出用戶的要求。1.1軟件功能需求分析通過對(duì)用戶需求的市場(chǎng)調(diào)查的分析,確定反應(yīng)用戶需求的系統(tǒng)邏輯模型,把整個(gè)設(shè)計(jì)劃分成3個(gè)單元,分別是程序啟動(dòng)、用戶界面、后臺(tái)服務(wù)。使用android和java編程語(yǔ)言及網(wǎng)絡(luò)數(shù)據(jù)庫(kù)相結(jié)合,編寫一個(gè)基于android端的移動(dòng)聊天系統(tǒng)軟件。這個(gè)系統(tǒng)提供多個(gè)用戶及時(shí)并發(fā)通信的平臺(tái)。未注冊(cè)用戶可以注冊(cè)成系統(tǒng)成員,已注冊(cè)用戶可以通過登錄進(jìn)入聊天系統(tǒng)。在系統(tǒng)中用戶可以選擇與某一個(gè)用戶聊天,用戶可以查找好友或附近的人,可以添加好友或把好友加黑名單等。 用戶注冊(cè) :用

5、戶在注冊(cè)界面填入相關(guān)正確信息后,后臺(tái)對(duì)其進(jìn)行處理。 用戶登錄:用戶輸入自己的qq帳號(hào)及密碼后,點(diǎn)擊登錄,后臺(tái)對(duì)其進(jìn)行驗(yàn)證,以及好友的查找,登錄成功后返回該用戶的會(huì)話界面。 聊天:用戶選定聊天對(duì)象后,對(duì)其發(fā)送信息,信息將由后臺(tái)轉(zhuǎn)發(fā)給選定的聊天對(duì)象,進(jìn)行,提示,顯示。 后臺(tái)運(yùn)行 用戶可以退出主界面,將聊天軟件在后臺(tái)運(yùn)行,當(dāng)有消息傳入時(shí),消息會(huì)用廣播的形勢(shì)顯示。 后臺(tái)管理:對(duì)用戶的管理。1.2 安全需求分析由于android系統(tǒng)自身具備的開放源碼的特征,它的安全性能成為信息安全領(lǐng)域研究的一個(gè)重要課題。android的安全性能主要體現(xiàn)在兩個(gè)方面:android的系統(tǒng)安全和數(shù)據(jù)安全。android系統(tǒng)安

6、全是指智能終端本身的安全,是對(duì)操作系統(tǒng)的保護(hù),防止未授權(quán)的訪問及對(duì)授權(quán)用戶服務(wù)的拒絕或?qū)ξ词跈?quán)用戶服務(wù)的允許,包括行為檢測(cè)、記錄等措施。android的數(shù)據(jù)安全指確保存儲(chǔ)數(shù)據(jù)完整性、合法性二個(gè)方面,要求做到系統(tǒng)正確地傳輸數(shù)據(jù),授權(quán)程序順利地讀取數(shù)據(jù)。android安全中的一個(gè)重要的設(shè)計(jì)點(diǎn)是在默認(rèn)的情況下應(yīng)用沒有權(quán)限執(zhí)行對(duì)其他應(yīng)用程序、操作系統(tǒng)或用戶的有害操作,這些操作包括讀取用戶的隱私數(shù)據(jù),訪問網(wǎng)絡(luò),保持設(shè)備活動(dòng)等等,應(yīng)用程序的進(jìn)程是一個(gè)安全的黑盒子,在沒有給它權(quán)限的時(shí)候它不能干擾其他應(yīng)用程序。2 總體設(shè)計(jì)系統(tǒng)采用流行的c/s結(jié)構(gòu)模式。系統(tǒng)的分析設(shè)計(jì)采用面向?qū)ο蟮募夹g(shù),應(yīng)用visio等工具進(jìn)行

7、輔助設(shè)計(jì)。2.1 軟件結(jié)構(gòu)圖退出聯(lián)系人附近的人添加好友設(shè)置消息提醒個(gè)人資料黑名單注冊(cè)登錄會(huì)話與陌生人與好友圖2.1 軟件結(jié)構(gòu)圖 2.2 功能描述 進(jìn)入該軟件,進(jìn)入登錄界面,如果沒有賬號(hào),則可以點(diǎn)擊立即注冊(cè),進(jìn)入注冊(cè)界面進(jìn)行注冊(cè),登錄進(jìn)入主界面,顯示會(huì)話、聯(lián)系人、設(shè)置,通過選擇相應(yīng)菜單進(jìn)行相關(guān)操作。2.2.1注冊(cè)功能概要 輸入注冊(cè)需要的信息,且保證正確 參與者:用戶 執(zhí)行者:用戶 前提條件:開啟程序,進(jìn)入注冊(cè)界面用戶注冊(cè)流程圖:開始注冊(cè)成功存儲(chǔ)用戶信息用戶信息注冊(cè)填寫個(gè)人信息驗(yàn)證信息完整性驗(yàn)證信息格式 否圖2.2.1 用戶注冊(cè)流程圖2.2.2登錄功能概要 判斷輸入信息格式 服務(wù)器驗(yàn)證輸入信息 跳

8、轉(zhuǎn)進(jìn)入好友列表界面登錄流程圖:服務(wù)器驗(yàn)證登錄成功判斷qq號(hào)及密碼是否為空進(jìn)入輸入qq號(hào)及密碼 失敗 成功圖2.2.2 登錄功能流程圖2.2.3聊天功能概要 用戶點(diǎn)擊聯(lián)系人列表中的一個(gè)好友時(shí),進(jìn)入聊天界面 在輸入框輸入信息,點(diǎn)擊發(fā)送按鈕,發(fā)送信息 好友回復(fù)消息是在該聊天頁(yè)面顯示 當(dāng)有好友發(fā)消息過來時(shí),系統(tǒng)會(huì)通過toast提示 當(dāng)qq在后臺(tái)運(yùn)行時(shí)有好友發(fā)送消息過來時(shí),系統(tǒng)會(huì)通過廣播的形勢(shì)告訴用戶 用戶聊天后退出聊天界面后,聊天信息保留 用戶聊天模塊總體流程圖:接收信息,處理,轉(zhuǎn)發(fā)(根據(jù)賬號(hào))用戶b成功登錄/返回主界面點(diǎn)擊好友進(jìn)入聊天界面輸入信息用戶a成功登錄/返回主界面點(diǎn)擊好友進(jìn)入聊天界面輸入信息

9、 傳輸好友回復(fù)的消息 傳輸好友回復(fù)的消息 封裝信息進(jìn)行傳輸 封裝信息進(jìn)行傳輸圖2.2.3 用戶聊天模塊總體流程圖2.3 安全設(shè)計(jì) 通過為不同的用戶設(shè)計(jì)不同的用戶視圖,和為每一個(gè)登錄的用戶設(shè)置密碼來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全設(shè)計(jì)要求。三數(shù)據(jù)庫(kù)設(shè)計(jì)3.1概念結(jié)構(gòu)設(shè)計(jì)好友賬號(hào)消息編號(hào)聊天注冊(cè)時(shí)間性別賬號(hào)昵稱會(huì)話密碼注冊(cè)時(shí)間性別賬號(hào)昵稱會(huì)話密碼發(fā)送/接收消息時(shí)間好友頭像消息內(nèi)容圖3.1 總體e-r圖3.2邏輯結(jié)構(gòu)設(shè)計(jì)1) 用戶信息(用戶編號(hào),用戶賬號(hào),用戶密碼,性別,昵稱,頭像)2) 會(huì)話信息(消息編號(hào),好友賬號(hào),好友頭像,發(fā)送/接收消息時(shí)間,消息內(nèi)容)3.3物理結(jié)構(gòu)設(shè)計(jì)表3-1 用戶信息-users明細(xì)字段類

10、型主鍵外鍵唯一可為空用戶編號(hào)objectidstring 是否賬號(hào)usernamestring是是是否密碼passwordstring否否性別sexbool是 昵稱nickstring頭像表3-2 會(huì)話信息-bmobmsg明細(xì)字段類型主鍵外鍵唯一可為空消息編號(hào)messageidstring 是否好友賬號(hào)usernamestring是是是否好友頭像 否是發(fā)送/接收消息時(shí)間s/rtime data是是消息內(nèi)容contentstring否是4 詳細(xì)設(shè)計(jì)4.1 用戶聊天模塊總體流程圖接收信息,處理,轉(zhuǎn)發(fā)(根據(jù)賬號(hào))用戶b成功登錄/返回主界面點(diǎn)擊好友進(jìn)入聊天界面輸入信息用戶a成功登錄/返回主界面點(diǎn)擊好友

11、進(jìn)入聊天界面輸入信息 傳輸好友回復(fù)的消息 傳輸好友回復(fù)的消息封裝信息進(jìn)行傳輸 封裝信息進(jìn)行傳輸圖4.1.1 用戶聊天模塊總體流程圖4.2 服務(wù)端模塊在該即時(shí)通信工具中利用bmob實(shí)現(xiàn)android端與bmob服務(wù)端的數(shù)據(jù)操作。bmob對(duì)數(shù)據(jù)的增刪改查做了很好地封裝,以及其批量的處理。客戶端之間通過服務(wù)器對(duì)數(shù)據(jù)的轉(zhuǎn)發(fā)實(shí)現(xiàn)相互通信。服務(wù)端具體功能: 注冊(cè)信息:自動(dòng)分配10位對(duì)象標(biāo)識(shí),并保存該用戶信息,同時(shí)將信息返回給客戶端。 登錄信息:檢查登錄信息是否正確,并向客戶端返回登錄信息。如信息正確,則用戶可以成功登錄,若登錄信息不正確,則會(huì)提示是哪種登錄錯(cuò)誤 聊天信息:轉(zhuǎn)發(fā)給消息指定的用戶。 用戶間的聯(lián)

12、系:將各用戶間的關(guān)系保存在服務(wù)器端,可以在服務(wù)器端看出所以qq用戶間的關(guān)系。4.3 客戶端模塊 客戶端具體功能 登錄功能:建立與服務(wù)器的連接并登錄,能顯示登錄錯(cuò)誤信息。 界面顯示:將好友顯示在聯(lián)系人列表中,并可以通過點(diǎn)擊進(jìn)入會(huì)話界面,進(jìn)行與好友的聊天 聊天功能:當(dāng)好友發(fā)送消息時(shí)顯示在會(huì)話界面。用戶也同時(shí)可以在輸入框中輸入相應(yīng)信息點(diǎn)擊發(fā)送與好友聊天。 聊天紀(jì)錄:能保存聊天紀(jì)錄,并能察看聊天紀(jì)錄。 信息提示:系統(tǒng)彈出信息提示到來信息,并有聲音提示。 發(fā)送端提示聊天的對(duì)方。 后臺(tái)運(yùn)行:當(dāng)用戶將客戶端進(jìn)行后臺(tái)運(yùn)行時(shí),如果有消息傳輸過來,系統(tǒng)會(huì)直接通過廣播的形勢(shì)顯示消息的來源以及內(nèi)容。用戶在客戶端點(diǎn)擊應(yīng)

13、用程序圖標(biāo)后啟動(dòng)應(yīng)用如下圖:圖4.3.1 客戶端啟動(dòng)界面注冊(cè)登錄以后就進(jìn)入主界面,界面下方有會(huì)話、聯(lián)系人、設(shè)置選項(xiàng),通過選擇相應(yīng)菜單進(jìn)入相應(yīng)功能界面,聯(lián)系人界面如下圖所示:圖4.3.2 聯(lián)系人界面通過點(diǎn)擊聯(lián)系人右面的加號(hào)添加好友并進(jìn)入查找好友界面,前提是服務(wù)器端存在此用戶才能搜索成功,例如搜索456用戶,如下圖所示:圖4.3.3 查找好友界面點(diǎn)擊添加按鈕,則ymm用戶向456用戶發(fā)送好友添加申請(qǐng),如果456用戶在登錄狀態(tài)則會(huì)收到此申請(qǐng),如果同意ymm的請(qǐng)求添加好友申請(qǐng),則可以單擊同意按鈕,如下圖: 圖4.3.4 好友添加請(qǐng)求界面單擊同意按鈕,則同意ymm的好友添加請(qǐng)求,否則忽視此條好友添加申請(qǐng)

14、消息: 圖4.3.5 同意好友請(qǐng)求界面同意ymm的申請(qǐng)后,則ymm用戶就是自己的好友了,可以與ymm進(jìn)行對(duì)話圖4.3.6 與ymm聊天界面退出456賬號(hào),登錄ymm賬號(hào)查看,此時(shí)可以看到456用戶給自己發(fā)送的消息提醒條數(shù)并可查看相關(guān)聊天信息圖4.3.7 456用戶收到回話提醒及查看消息5 編碼chatactivity.java 用戶聊天代碼/* 聊天界面*/public class chatactivity extends activitybase implements onclicklistener,ixlistviewlistener, eventlistener private butt

15、on btn_chat_emo, btn_chat_send, btn_chat_add,btn_chat_keyboard, btn_speak, btn_chat_voice;xlistview mlistview;emoticonsedittext edit_user_comment;string targetid = ;bmobchatuser targetuser;private static int msgpagernum;private linearlayout layout_more, layout_emo, layout_add;private viewpager pager

16、_emo;private textview tv_picture, tv_camera, tv_location;/ 組裝聊天對(duì)象targetuser = (bmobchatuser) getintent().getserializableextra(user);targetid = targetuser.getobjectid();/bmoblog.i(聊天對(duì)象: + targetuser.getusername() + ,targetid = /+ targetid);/注冊(cè)廣播接收器initnewmessagebroadcast();initview();/* * 加載消息歷史,從數(shù)據(jù)庫(kù)

17、中讀出*/private list initmsgdata() list list = bmobdb.create(this).querymessages(targetid,msgpagernum);return list;/* 界面刷新 */private void initorrefresh() if (madapter != null) if (mymessagereceiver.mnewnum != 0) / 用于更新當(dāng)在聊天界面鎖屏期間來了消息,這時(shí)再回到聊天頁(yè)面的時(shí)候需要顯示新來的消息int news= mymessagereceiver.mnewnum;/有可能鎖屏期間,來了n條

18、消息,因此需要倒敘顯示在界面上int size = initmsgdata().size();for(int i=(news-1);i=0;i-)madapter.add(initmsgdata().get(size-(i+1);/ 添加最后一條消息到界面顯示mlistview.setselection(madapter.getcount() - 1); else madapter.notifydatasetchanged(); else madapter = new messagechatadapter(this, initmsgdata();mlistview.setadapter(mad

19、apter);public void onsuccess() showlog(發(fā)送成功);(bmobmsg) values).setstatus(bmobconfig.status_send_success);parentv.findviewbyid(r.gress_load).setvisibility(view.invisible);parentv.findviewbyid(r.id.iv_fail_resend).setvisibility(view.invisible);parentv.findviewbyid(r.id. tv_send_status).setvisibi

20、lity(view.visible);(textview) parentv.findviewbyid(r.id.tv_send_status).settext(已發(fā)送);/* 新消息廣播接收者*/private class newbroadcastreceiver extends broadcastreceiver overridepublic void onreceive(context context, intent intent) string from = intent.getstringextra(fromid);string msgid = intent.getstringextr

21、a(msgid);string msgtime = intent.getstringextra(msgtime);/ 收到這個(gè)廣播的時(shí)候,message已經(jīng)在消息表中,可直接獲取bmobmsg msg = bmobchatmanger.getinstance(chatactivity.this).getmessage(msgid, msgtime);if (!from.equals(targetid)/ 如果不是當(dāng)前正在聊天對(duì)象的消息,不處理return;/添加到當(dāng)前頁(yè)面madapter.add(msg);/ 定位mlistview.setselection(madapter.getcount() - 1);/取消當(dāng)前聊天對(duì)象的未讀標(biāo)示bmobdb.create(chatactivity.this).resetunread(targetid);/ 記得把廣播給終結(jié)掉abortbroadcast();六結(jié)論經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),實(shí)踐和教學(xué)老師的悉心指導(dǎo),該仿qq社交軟件系統(tǒng)經(jīng)過測(cè)試,達(dá)到了預(yù)期的目標(biāo),完成了一些基本的功能。本系統(tǒng)功能雖然較為簡(jiǎn)單,但還是具備一定的實(shí)用性和靈活性以及包括很多android的專業(yè)知識(shí),并可以在使用的過程中不斷的修改完善。移動(dòng)聊天軟件雖然原理不難,但依然有很多的問題需要我們一一解決,例如:如何提高用戶體驗(yàn)性,現(xiàn)在市場(chǎng)上的聊天軟件已經(jīng)很多,功能也相對(duì)完善

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論