(2021年整理)基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
(2021年整理)基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
(2021年整理)基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
(2021年整理)基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
(2021年整理)基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 基于 Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)編輯整理:尊敬的讀者朋友們:文中內(nèi)容進(jìn)行仔細(xì)校對(duì),但是難免會(huì)有疏漏的地方,但是任然希望(基于 Android 平臺(tái)的學(xué)生社和反饋,這將是我們進(jìn)步的源泉,前進(jìn)的動(dòng)力。本文可編輯可修改,如果覺(jué)得對(duì)您有幫助請(qǐng)收藏以便隨時(shí)查閱,最后祝您生活愉快 業(yè)績(jī)進(jìn)步,以下為基于 Android 平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的全部?jī)?nèi)容?;茨蠋煼秾W(xué)院本科畢業(yè)論文(設(shè)計(jì))誠(chéng)信承諾書(shū)1。本人鄭重承諾:所呈交的畢業(yè)論文(設(shè)計(jì)),題目基于Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是本人在指導(dǎo)2.畢業(yè)論文(設(shè)計(jì))所使用的相關(guān)資料、數(shù)據(jù)、觀點(diǎn)等均真實(shí)可3。 畢業(yè)論文

2、(設(shè)計(jì))中無(wú)抄襲、剽竊或不正當(dāng)引用他人學(xué)術(shù)觀點(diǎn)、思想和學(xué)術(shù)成果,偽造、篡改數(shù)據(jù)的情況;4。本人已被告知并清楚:學(xué)院對(duì)畢業(yè)論文(設(shè)計(jì))中的抄襲、剽竊、弄虛作假等違反學(xué)術(shù)規(guī)范的行為將嚴(yán)肅處理,并可能導(dǎo)致畢業(yè)論文(設(shè)計(jì))成績(jī)不合格,無(wú)法正常畢業(yè)、取消學(xué)士學(xué)位資格或注銷并追回已發(fā)放的畢業(yè)證書(shū)、學(xué)士學(xué)位證書(shū)等嚴(yán)重后果;5.若在省教育廳、學(xué)院組織的畢業(yè)論文(設(shè)計(jì))檢查、評(píng)比中,學(xué)院按有關(guān)規(guī)定給予的處理,并承擔(dān)相應(yīng)責(zé)任。學(xué)生(簽名):日期: 年 月 日目 錄1學(xué)生社交網(wǎng)絡(luò)系統(tǒng)的概述.11。1 項(xiàng)目背景. 11。2 項(xiàng)目開(kāi)發(fā)目的和意義.21.3本文主要工作內(nèi)容.22學(xué)生社交網(wǎng)絡(luò)系統(tǒng)需求分析與總體設(shè)計(jì).32。1

3、社交系統(tǒng)需求分析.32。1.1功能模塊.32.1.2社交系統(tǒng)非功能性的需求.42。2 社交平臺(tái)總體設(shè)計(jì).52.2.1系統(tǒng)功能模型方案.52。2.2 前臺(tái)客戶端與后臺(tái)服務(wù)器架構(gòu)體系.52。2.3 系統(tǒng)總體功能結(jié)構(gòu)設(shè)計(jì).63學(xué)生社交網(wǎng)絡(luò)系統(tǒng)的詳細(xì)設(shè)計(jì).63.1社交系統(tǒng)類圖詳細(xì)的設(shè)計(jì).73。3 社交系統(tǒng)后臺(tái)實(shí)現(xiàn)部分功能.153.3.1 Memcached緩存.153。3。2 Openfire和 Connection manager.154學(xué)生社交網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)與測(cè)試.164.1系統(tǒng)開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具.164.1。1開(kāi)發(fā)語(yǔ)言.164.1。2開(kāi)發(fā)工具.164。1.3開(kāi)發(fā)環(huán)境.174.2系統(tǒng)數(shù)據(jù)獲得與更新界

4、面的實(shí)現(xiàn).174.2.1 Json數(shù)據(jù)格式的封裝和解析.174。2.2 異步刷新UI界面.184.3登錄模塊的實(shí)現(xiàn)與測(cè)試.184。4 好友模塊的實(shí)現(xiàn)與測(cè)試.21 4。5 即時(shí)通訊模塊的實(shí)現(xiàn)與測(cè)試. 244。6 狀態(tài)發(fā)布模塊的實(shí)現(xiàn)與測(cè)試. 274.6。1 發(fā)布動(dòng)態(tài)的功能測(cè)試. 284。6.2 點(diǎn)贊、評(píng)論的功能測(cè)試. 294。6。3 下拉刷新的功能測(cè)試. 304.6。4 獲取消息推送的功能測(cè)試. 314.6。5 點(diǎn)擊顯示大圖的功能測(cè)試. 315結(jié)論 . 32參考文獻(xiàn):. 33致謝. 35基于 Android平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(淮南師范學(xué)院計(jì)算機(jī)學(xué)院)摘 要:隨著移動(dòng)網(wǎng)絡(luò)技術(shù)的推進(jìn),風(fēng)

5、靡全球的社交網(wǎng)絡(luò)也開(kāi)始向移動(dòng)化和簡(jiǎn)潔化發(fā)展。該文探討Android與社交網(wǎng)絡(luò)系統(tǒng)的結(jié)合,采用JSP技術(shù)Android技術(shù)以及MySQL數(shù)據(jù)庫(kù)管理,實(shí)現(xiàn)移動(dòng)客戶端對(duì)社交網(wǎng)絡(luò)進(jìn)行個(gè)人信息登錄模塊、狀態(tài)發(fā)布模塊、通訊功能模塊、好友管理模塊四大功能.系統(tǒng)以用戶為中心,以簡(jiǎn)化、方便用戶操作為目標(biāo)。它可以拉近人們之間的距離,方便地表達(dá)的感情,加強(qiáng)好友之間的交流,及時(shí)發(fā)布信息,還可以很方便的與附近本論文的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)采用了Android開(kāi)源系統(tǒng)技術(shù),利用Java語(yǔ)言和 Eclipse編輯工具學(xué)生社交系統(tǒng)進(jìn)行編寫(xiě)。同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過(guò)程、部分界面圖及主要功能運(yùn)行流程圖,本文還對(duì)高度過(guò)程中遇到的問(wèn)題和

6、解決方法進(jìn)行了詳細(xì)的討論.關(guān)鍵詞:Android平臺(tái),學(xué)生社交,網(wǎng)絡(luò)系統(tǒng)ThestudentsocialnetworksystembasedonAndroidplatformdesign and implementationStudent: TaoShaoHua (guide teacher: Chen Guanghong)(Schoolof computer Science Huainan Normal University)Abstract:Along with the advancement of mobile network globalsocial network also bega

7、n to move and clean development.Androidand the combination of the social network system are dealt with inthis paper, using the JSP the Android technology and0MySQL database management, realize the mobile client personalinformation on social network login module, control module,communication function

8、 module, friends by state four functionmodule。Systemtotheuserasthecenter, tosimplify, convenientuseroperationasthecanreducethedistancebetweenpeople,is convenient to express strengthen the communicationbetween friends, timely release information, also can easily makefriends with people around, finall

9、y help individuals to expandconnections,enrichtheirownsocialnetworksystemofthispaperusedtheAndroidopensourcesystemtechnology,usingthe Java language and Eclipse editor tool to write student socialsystem。At the same time gives a detailed system design partoftheinterfacediagramandmainfunctionoperationf

10、lowchart,thearticlealso,andproblemsencounteredintheprocessofhighlymethod is discussed in Keywords:Android the student social, network system11。1 項(xiàng)目背景目,目的在于滿足學(xué)生的切實(shí)需求,為方便學(xué)生的社交生活提出的。在國(guó)內(nèi)外有關(guān)于學(xué)生社交平臺(tái)的項(xiàng)目開(kāi)發(fā)和運(yùn)營(yíng)已經(jīng)漸漸規(guī)?;?,有相對(duì)成熟的開(kāi)發(fā)機(jī)制。我們有經(jīng)常使用的社交軟件包括騰訊QQ、微信、陌陌等,但在關(guān)于校園內(nèi)部學(xué)生的社交平臺(tái)還是相對(duì)較少,缺乏一些只是對(duì)于學(xué)生之間各方面信息的溝1通交流的軟件項(xiàng)目開(kāi)發(fā)。所以

11、我希望在Android端開(kāi)發(fā)一個(gè)學(xué)生社交網(wǎng)絡(luò)系統(tǒng)來(lái)推動(dòng)學(xué)生之間的交流??偟膩?lái)說(shuō)是做一個(gè)加入聊天社交等多方面功能的安卓平臺(tái)的學(xué)生社交網(wǎng)絡(luò)系統(tǒng)。1。2 項(xiàng)目開(kāi)發(fā)目的和意義SNS,即社交網(wǎng)絡(luò)服務(wù)(SocialNetworkingService),包括了社交軟件和社交網(wǎng)站,也指網(wǎng)絡(luò)中社交現(xiàn)有已普及的社交信息交流載體,如短信message服,總的來(lái)說(shuō),我們的項(xiàng)目開(kāi)發(fā)的意義是在于對(duì)校園學(xué)生的社交平臺(tái)開(kāi)發(fā)的初次嘗試,而且旨在真正的能夠幫助同學(xué)們,給同學(xué)提供一些聊天社交的便利,同時(shí)也加強(qiáng)了學(xué)生之間的互動(dòng)交流、溝通與了解。1.3本文主要工作內(nèi)容Android系統(tǒng)的學(xué)生社交平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),旨在為同學(xué)在生活中帶來(lái)

12、一些便利,將這個(gè)社交平臺(tái)真正的融入同學(xué)們的日常生活之中。具體來(lái)說(shuō)我要在項(xiàng)目中完成如下幾個(gè)模塊:1)個(gè)人信息登錄模塊:為第一次使用本系統(tǒng)的客戶提供注冊(cè)服務(wù),讓已經(jīng)注冊(cè)的用戶通過(guò)自己的賬號(hào)和密碼來(lái)登陸系統(tǒng).2)動(dòng)態(tài)發(fā)布模塊:在該模塊中可以發(fā)布狀態(tài)、翻閱所有已經(jīng)發(fā)布了的狀態(tài),對(duì)好友發(fā)布了的動(dòng)態(tài)進(jìn)行點(diǎn)贊評(píng)論,并且把你點(diǎn)贊評(píng)論的消息發(fā)送給對(duì)方,給對(duì)方反饋信息請(qǐng)。并且為了要提升人工智能,加入了向下拉即可刷新的功能,用戶下拉之后可以刷新好友最新的動(dòng)態(tài);除此之外,還加入放大圖片的功能,將好友動(dòng)態(tài)中的圖片點(diǎn)擊后即可將圖片放大顯示。3)通訊功能模塊:可以和自己的同學(xué)或者添加的好友進(jìn)行聊天溝通,交流信息。2刪除好友

13、、修改好友備注等功能,并且可以根據(jù)你的實(shí)際需求把好友分組,這樣可以對(duì)組內(nèi)的好友進(jìn)行添加、刪除、修改等操作。22.1社交系統(tǒng)需求分析該社交平臺(tái)目標(biāo)為學(xué)生提供社交的服務(wù)。具體來(lái)說(shuō),要在項(xiàng)目中完成以下功能模塊:社交的模塊、通訊的功能模塊。要完成以上模塊,需要在android前臺(tái)組建用戶的服務(wù)系統(tǒng),還需要在后臺(tái)組建一個(gè)服務(wù)器,在這一模塊中用戶能夠向服務(wù)器發(fā)送請(qǐng)求,并且獲得從服務(wù)器發(fā)回的數(shù)據(jù);此服務(wù)器主要是完成前臺(tái)請(qǐng)求,并且讀寫(xiě)點(diǎn)贊以及評(píng)論的推送信息。2.1.1功能模塊1、例圖如下圖1所示.圖 1 用戶登錄模塊用例圖2、動(dòng)態(tài)發(fā)布模塊:在該模塊中可以進(jìn)行動(dòng)態(tài)發(fā)布,對(duì)動(dòng)態(tài)進(jìn)行點(diǎn)贊、評(píng)論,并且針對(duì)評(píng)論也可以進(jìn)

14、行恢復(fù).在這模塊中剛點(diǎn)擊進(jìn)入頁(yè)面只顯示部分動(dòng)態(tài),只有讀到最后才可以刷新出更多之前的動(dòng)態(tài),并且在下拉的時(shí)候刷新動(dòng)態(tài)。該模塊用例圖如下圖2所示。3圖 2 社交模塊用例圖3、好友管理模塊:在社交功能中如果在交互過(guò)程中找到有相同愛(ài)好或者同學(xué),就可以添加對(duì)方為好友。每個(gè)用戶可以管理自己的好友列表,并且可以新建組的群組,將好友添加已設(shè)定的分組中,也可以對(duì)分組進(jìn)行查詢、添加、刪除等操作。該模塊用例圖如下圖2-3所示。圖 3 好友模塊用例圖2.1.2社交系統(tǒng)非功能性的需求1)性能:保證用戶登錄的安全性,以及快速追回被盜賬戶.2)代碼可讀性:擁有完整的代碼與必要注釋,以及數(shù)據(jù)存儲(chǔ)。3)良好用戶體驗(yàn):保證在And

15、roid平臺(tái)的可操作性。42。2 社交平臺(tái)總體設(shè)計(jì)2.2.1系統(tǒng)功能模型方案這個(gè)系統(tǒng)是由一個(gè) Android 手機(jī)前端界面顯示以及一個(gè) Web 服務(wù)器后端的處理組成,因此系統(tǒng)的功能的結(jié)構(gòu)功能如下圖4所示。圖4系統(tǒng)功能模型并且由此可以得到數(shù)據(jù)流向分析:1、前臺(tái)和用戶交互界面得到用戶的請(qǐng)求與操作,進(jìn)行人機(jī)的交互。2、前臺(tái)處理分析將所需數(shù)據(jù)通過(guò)Http和數(shù)據(jù)庫(kù)向后臺(tái)Web服務(wù)器進(jìn)行請(qǐng)求.3、后臺(tái) Web服務(wù)器將所得到的信息處理結(jié)果后返還給前臺(tái)。4、前臺(tái)將用戶所需信息展示給用戶.2。2.2 前臺(tái)客戶端與后臺(tái)服務(wù)器架構(gòu)體系后臺(tái)服務(wù)器端會(huì)使用 Java 來(lái)實(shí)現(xiàn) Web 服務(wù)器,具體而言項(xiàng)目在后臺(tái)上應(yīng)該會(huì)利

16、用 MVC架構(gòu)模式,采用serlvet來(lái)進(jìn)行開(kāi)發(fā)。在Model層中實(shí)現(xiàn)與數(shù)據(jù)庫(kù)信息交互的相關(guān)任務(wù),并且完成數(shù)據(jù)存取、修改的業(yè)務(wù)模塊設(shè)計(jì)。架構(gòu)模式如下圖5所5示。圖 5 后臺(tái)架構(gòu)圖2.2.3 系統(tǒng)總體功能結(jié)構(gòu)設(shè)計(jì)學(xué)生社交網(wǎng)絡(luò)系統(tǒng)總體的功能結(jié)構(gòu)圖如圖6所示。圖 6 系統(tǒng)結(jié)構(gòu)圖3本章主要介紹了學(xué)生社交平臺(tái)類圖的詳細(xì)設(shè)計(jì),介紹項(xiàng)目所涉及的數(shù)據(jù)庫(kù)源表的詳細(xì)設(shè)計(jì)以及部分文件處理平臺(tái)中主要功能的詳細(xì)設(shè)計(jì),如:好友模塊的功能、動(dòng)6態(tài)發(fā)布模塊功能、消息推送功能、即時(shí)通訊功能等的詳細(xì)設(shè)計(jì)思想。3.1社交系統(tǒng)類圖詳細(xì)的設(shè)計(jì)圖 7 系統(tǒng)類圖1)User類:User類是使用本系統(tǒng)的用戶的實(shí)體類。具體包含的屬性值如下:用

17、戶 pics 居住地 hometown、生日 birthday。User 類如圖 8所示。圖8User類2)Relationship類:Relationship類是實(shí)現(xiàn)好友關(guān)系一個(gè)是實(shí)體類。主要屬性值有用戶uid、我關(guān)注的列表concernlist、關(guān)注我的列表followlist、以及黑7名單 blacklist(具體實(shí)現(xiàn)的時(shí)候是使用的json數(shù)據(jù)格式)。Relationship類如圖9所示。圖 9 Relationship 類3)Message類:Message 類是實(shí)現(xiàn)狀態(tài)發(fā)布、點(diǎn)贊、評(píng)論功能的實(shí)體類。主要屬性值有發(fā)表狀態(tài)的用戶uid、狀態(tài) mid、發(fā)布時(shí)間time、版本序列號(hào)發(fā)布內(nèi)容

18、content 及點(diǎn)贊列表 likedlist 和評(píng)論列表 commentlist。Message 類如圖 10所示.圖 10 Message 類 評(píng)論消息 mid、評(píng)論內(nèi)容content及評(píng)論時(shí)間 time。Comment類如圖 11所示.圖 11 Comment 類 mongodb類型)是 mongodb里建立的數(shù)據(jù)庫(kù)、負(fù)責(zé)在java中操作數(shù)據(jù)庫(kù),其余的屬性是與數(shù)8據(jù)庫(kù)建立連接的用戶名、密碼和具體的數(shù)據(jù)的庫(kù)名.主要方法是實(shí)現(xiàn)數(shù)據(jù)查詢的基本的方法.DBController類如圖 12所示.圖 12 DBController 類8)MemController類:MemController類是實(shí)

19、現(xiàn)數(shù)據(jù)緩存調(diào)用和存儲(chǔ)的一個(gè)控制類。由于要與移動(dòng)端前臺(tái)進(jìn)行交互,所以為了提高網(wǎng)絡(luò)訪問(wèn)數(shù)據(jù)傳輸?shù)乃俣?使用了緩存機(jī)制。基本原理就是前臺(tái)請(qǐng)求的時(shí)候,后臺(tái)數(shù)據(jù)傳輸應(yīng)該是先現(xiàn)在緩存中尋找數(shù)據(jù),如果找不到再到后臺(tái)數(shù)據(jù)庫(kù)中查找。主要屬性有MeCached 服務(wù)客戶端 MemCachedClient 和 pool:SockIO 池化管理,為上層提供的接口類 SocketIOPool類.MemController類如圖 13所示。圖 13 MemController 類類:MemWork類是調(diào)用 MemController里基本方法實(shí)現(xiàn)對(duì)于用戶和信息數(shù)據(jù)緩存的設(shè)置和讀取的基本類.MemWorker類如圖14所示

20、.圖 14 MemWorker 類10)OpenfireConnector類:主要屬性有openfire服務(wù)器的配置路徑9openfire服務(wù)器信息 和主機(jī)名管理員賬號(hào)信息等。主要方法是建立和Openfire服務(wù)器的連接。OpenfireConnector類如圖 15所示.圖 15 OpenfireConnector 類11)TipsPusher類:TipsPusher類主要是通過(guò) Openfire服務(wù)器實(shí)現(xiàn)對(duì)消息發(fā)布、點(diǎn)贊以及評(píng)論等功能的推送以及對(duì)聊天信息的推送.TipsPusher類如圖16 所示。圖 16TipsPusher 類12)UserSimpleLogic類:UserSimple

21、Logic類是實(shí)現(xiàn)用戶登錄、注冊(cè)、用戶基本信息維護(hù)和儲(chǔ)存的用戶業(yè)務(wù)邏輯類。其中主要的方法如下:login 方法實(shí)現(xiàn)登方法實(shí)現(xiàn)注冊(cè)功能,createcreateRelationship方法為新注冊(cè)的用戶建立好友列表,createTimeline 方法為新注冊(cè)的用戶建立用戶的狀態(tài)序號(hào)列表,createUid方法創(chuàng)建標(biāo)識(shí)用戶身份唯一的 uid,最后兩個(gè)方法實(shí)現(xiàn)用戶信息的查詢和更新。UserSimpleLogic類如圖 17所示.圖 17 UserSimpleLogic 類13)RelationshipLogic類:RelationshipLogic類是實(shí)現(xiàn)好友管理和信息儲(chǔ)存。Relationship

22、Logic類如圖18所示。圖 18 RelionshipLogic 類14)Messagelogic類:Messagelogic類是實(shí)現(xiàn)動(dòng)態(tài)發(fā)布、點(diǎn)贊等各項(xiàng)動(dòng)態(tài)管理的邏輯類。前面 4 個(gè)方法分別實(shí)現(xiàn)點(diǎn)贊和取消點(diǎn)贊、評(píng)論與回復(fù)、動(dòng)態(tài)的發(fā)布的功能,接下來(lái)的兩個(gè)方法是要實(shí)現(xiàn)將新動(dòng)態(tài)加入到自己的Timeline中,最后4個(gè)方法實(shí)現(xiàn) Timeline、動(dòng)態(tài)、點(diǎn)贊信息和評(píng)論信息的讀取。Messagelogic類如圖 19所示。圖 19 Messagelogic 類15)ChatModel類:ChatModel 類是實(shí)現(xiàn)好友私信的業(yè)務(wù)邏輯類。主要包括發(fā)送消息聊天、查看聊天記錄以及接收聊天推送消息等功能.Ch

23、atModel類如圖 20所示。圖20ChatModel 類18)ChatDB 類:這個(gè)是用來(lái)在本地存儲(chǔ)聊天信息的 sqlite 數(shù)據(jù)庫(kù)類,在該類中主要是有儲(chǔ)存聊天信息的方法saveChatmsg(),讀取聊天信息的方法getChatmsg()以及得到信息的條目數(shù)方法getNewCount()。ChatDB類如圖 21所示。圖 21 ChatDB 類3。2 社交系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)由于要實(shí)現(xiàn)的是學(xué)生社交網(wǎng)絡(luò)類的項(xiàng)目,要應(yīng)對(duì) SNS 項(xiàng)目的大規(guī)模和并發(fā)性,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)難以處理這些問(wèn)題,所有這次項(xiàng)目后臺(tái)選用的數(shù)據(jù)庫(kù)是非關(guān)系型數(shù)據(jù)庫(kù),Mongodb項(xiàng)目數(shù)據(jù)庫(kù)整體的ER圖如圖 22所示。圖 22 數(shù)據(jù)

24、庫(kù) ER 圖1)User表:用于存儲(chǔ)用戶id和用戶信息,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)seq int 標(biāo)識(shí)當(dāng)前客戶端或是服務(wù)端的版本號(hào)email String 注冊(cè)使用的郵箱password String 密碼name String 在系統(tǒng)中使用的用戶名sex String 性別birthday String 生日pics String 頭像的名稱2)Relationship表:用于用戶的好友關(guān)系,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)concernlist bjsonArray 包含好友分組和具體分組中的uidlistfollowlist

25、bjsonArray 關(guān)注我的人列表3)Things表:用于存儲(chǔ)失物信息,具體如下:uid int唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào),標(biāo)識(shí)發(fā)布失物信息的用戶tids int 唯一標(biāo)識(shí)失物id,是一個(gè)自增的序號(hào)name String 失物名稱time String 發(fā)表時(shí)間pics String 失物圖片description String 相關(guān)描述4)ThingsLine表:用于Things列表id的存儲(chǔ),方便返回前臺(tái)數(shù)據(jù),具體表:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)List bjsonArray tid列表seq int 標(biāo)識(shí)當(dāng)前客戶端或是服務(wù)端的版本號(hào)5)Event表:用于存

26、儲(chǔ)用戶日程安排,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)eid String唯一標(biāo)識(shí)事件id,是一個(gè)根據(jù)uid和日期生成的序號(hào)place String 事件發(fā)生地點(diǎn)time String 事件發(fā)生時(shí)間description String 事件描述reminds int 提前提醒時(shí)間6)TimeLine表:用于存儲(chǔ)用戶發(fā)的消息列表,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)list bjsonArray 存儲(chǔ)發(fā)了的消息的mid列表等7)Message表:用于存儲(chǔ)狀態(tài)一些基本信息,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)mid int 標(biāo)識(shí)

27、消息的id,是一個(gè)自增的序號(hào)likedlist bjsonArray 贊列表time String 發(fā)表時(shí)間pics bjsonArray 發(fā)布的圖片名稱列表,圖片自動(dòng)生成8)Comment表:用于存儲(chǔ)動(dòng)態(tài)態(tài)的評(píng)論,具體如下:cid int 標(biāo)識(shí)評(píng)論的id,是一個(gè)自增的序號(hào)seq int 標(biāo)識(shí)當(dāng)前客戶端或是服務(wù)端的版本號(hào)mid int 消息的 midlist bjsonArray 評(píng)論列表9)EventLine表:用于 Event列表 id的存儲(chǔ),具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)list bjsonArray eid列表seq int 標(biāo)識(shí)當(dāng)前客戶端或是服務(wù)端的版本

28、號(hào)10)ChatMessage表:用于存儲(chǔ)聊天消息,具體如下:uid int 唯一標(biāo)識(shí)用戶id,是一個(gè)自增的序號(hào)cmid int 唯一標(biāo)識(shí)聊天id,是一個(gè)自增的序號(hào)uids int 聊天對(duì)象的uidcontent String 聊天內(nèi)容3。3 社交系統(tǒng)后臺(tái)實(shí)現(xiàn)部分功能學(xué)生社交網(wǎng)絡(luò)系統(tǒng)的后臺(tái)設(shè)計(jì)的基本思想是:等待前臺(tái)發(fā)送請(qǐng)求到服務(wù)端后臺(tái),然后服務(wù)器通過(guò)Servlet接收前臺(tái)請(qǐng)求,然后在后臺(tái)完成處理,并將響應(yīng)再次通過(guò)Servlet發(fā)送到客戶端.后臺(tái)信息處理運(yùn)用的新技術(shù)采用了Memcached緩存的使用、Openfire服務(wù)器以及Connection Manager:作為 Openfire服務(wù)器的拓

29、展架構(gòu)。所以在這里詳細(xì)介紹一下。3.3。1 Memcached緩存大家都知道,緩存數(shù)據(jù)要比直接訪問(wèn)數(shù)據(jù)庫(kù)來(lái)獲得數(shù)據(jù)要迅速。而在網(wǎng)絡(luò)數(shù)據(jù)傳輸中速度更是一個(gè)應(yīng)該講用戶體驗(yàn)放在首位。因而在這次的后臺(tái)設(shè)計(jì)中加入緩存數(shù)據(jù),提高數(shù)據(jù)讀取速度。作為分布式緩存系統(tǒng)Memcached具有如下特點(diǎn):1)協(xié)議簡(jiǎn)單,方便實(shí)用;2)降低數(shù)據(jù)庫(kù)負(fù)載,加大數(shù)據(jù)讀取率;3)不互相通信的分布式,信息彼此不可見(jiàn)性;4)基于 libevent的事件處理,快速處理反應(yīng).3.3.2 Openfire和 Connection manager由于我們要實(shí)現(xiàn)動(dòng)態(tài)發(fā)布、評(píng)論、點(diǎn)贊以及聊天等功能,因而我們要使用Openfire服務(wù)器就是來(lái)實(shí)現(xiàn)這

30、個(gè)功能的。我們?yōu)榱颂幚砀嗟牟l(fā)用戶需求的連接,引入Openfire ConnectionManager。Openfire Connection Manager是 Openfire服務(wù)器的擴(kuò)展,它可以透明的處理大規(guī)模并發(fā) XMPP 客戶端對(duì) Openfire 服務(wù)器的連接 .根據(jù) ConnectionManager 主頁(yè)介紹,每個(gè) Connection Manager 可以處理至少五千個(gè)并發(fā)用戶。Openfire 服務(wù)器可以連接一個(gè)或多個(gè) Connection Manager .每個(gè) ConnectionManager 可 以 處 理 一 個(gè) 或 多 個(gè) 支 持 XMPP 的 客 戶 端 。

31、為Openfire 配置 Connection Manager 后,支持 XMPP 的客戶端僅需要連接Connection Manager ,由Connection Manager 負(fù)責(zé)管理對(duì)來(lái)自 XMPP 客戶端對(duì)Openfire 服務(wù)器的連接。這樣就可以很好的解決并發(fā)用戶的問(wèn)題,當(dāng)并發(fā)量足夠大的時(shí)候可以通過(guò)增加Connection Manager的數(shù)量得以實(shí)現(xiàn)。4本章介紹學(xué)生社交網(wǎng)絡(luò)系統(tǒng)的相關(guān)開(kāi)發(fā)環(huán)境、完成系統(tǒng)關(guān)鍵處的難點(diǎn)實(shí)現(xiàn)及主要功能的實(shí)現(xiàn)。重要的在于最后一項(xiàng)工作,實(shí)現(xiàn)主要功能,它含有登錄、好友管理,狀態(tài)發(fā)布、即時(shí)通訊、四個(gè)內(nèi)容。下面就對(duì)這些工作逐一介紹。4。1 系統(tǒng)開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具4

32、.1.1開(kāi)發(fā)語(yǔ)言依據(jù)要開(kāi)發(fā)的平臺(tái)以及需要來(lái)定開(kāi)發(fā)的語(yǔ)言如下:1)應(yīng)用 Java語(yǔ)言開(kāi)發(fā)的eclipse開(kāi)發(fā)環(huán)境是后臺(tái)Web服務(wù)器. Android平臺(tái),及手機(jī)客戶端或其他Android Java和 Xml配合使用。3)多個(gè)數(shù)據(jù)庫(kù)語(yǔ)言以及數(shù)據(jù)庫(kù)包含的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)用于修改數(shù)、查詢和儲(chǔ)存數(shù)據(jù).4。1.2開(kāi)發(fā)工具依據(jù)需要和實(shí)現(xiàn)需要來(lái)定開(kāi)發(fā)的工具如下:1)集成開(kāi)發(fā)環(huán)境eclipse(JavaEE版)2)mongodb數(shù)據(jù)庫(kù)3)openfire消息推送和傳遞服務(wù)器軟件4)存儲(chǔ) openfire推送消息的mysql數(shù)據(jù)庫(kù)5)Tomcat服務(wù)器軟件4。1。3 開(kāi)發(fā)環(huán)境1)電腦:內(nèi)存4G,內(nèi)有Windows1

33、0操作系統(tǒng)的電腦一臺(tái)2)Web服務(wù)器:tomcat7.03)Android4。0以上版本系統(tǒng)手機(jī)4部5)推送服務(wù)器:openfire推送服務(wù)器4.2系統(tǒng)數(shù)據(jù)獲得與更新界面的實(shí)現(xiàn)4。2。1 Json數(shù)據(jù)格式的封裝和解析1)json 數(shù)據(jù)格式簡(jiǎn)介:json為輕量級(jí)的數(shù)據(jù)交換格式,其語(yǔ)法規(guī)則的書(shū)寫(xiě)格式為:名稱/值對(duì)。類似于 Map 中的鍵值對(duì),可以很方便地配合 Mongodb 進(jìn)行數(shù)據(jù)存儲(chǔ),也便于進(jìn)行數(shù)據(jù)封裝和解析。json值對(duì)的數(shù)據(jù)類型可以是我們熟悉的數(shù)據(jù)類型,如int,float,double,bool,string,也可以是對(duì)象,數(shù)組(包括 json格式的數(shù)組),甚至也可以就是一個(gè)json格式

34、。2)json 格式封裝:如下圖23所示例子的json格式,。圖 23 json 格式封裝3)json格式的解析:對(duì)于一個(gè)復(fù)雜的json格式解析,如下圖24中,存在json 包里有一個(gè)json數(shù)據(jù),而我們所需的是這個(gè)新的json數(shù)據(jù)里的名稱為concernlist的 jsonarray。圖 24 json 格式解析4.2。2 異步刷新UI界面通過(guò) json 數(shù)據(jù)格式從后臺(tái)讀取數(shù)據(jù),時(shí)常是需要更新前臺(tái)的 UI 界面的.而在Android3。0 以后 UI 界面的加載必須在 UI 線程中實(shí)現(xiàn),而對(duì)于進(jìn)行的網(wǎng)絡(luò)傳輸工作則不能夠在UI線程中傳輸,需要單獨(dú)開(kāi)線程工作,這里就用到Handler機(jī)制來(lái)處理程

35、序。我們要用 Handler 來(lái)更新 UI 界面,而網(wǎng)絡(luò)傳輸則會(huì)反饋給我們應(yīng)該怎樣更新 UI界面,這時(shí)只需要在Thread線程中處理網(wǎng)絡(luò)傳輸,Thread線程發(fā)出Handler Handler來(lái)根據(jù) Handler消息來(lái)更新UI界面。比如說(shuō)添加一個(gè)好友,添加成功后就會(huì)從后臺(tái)中返回現(xiàn)在的好友相關(guān)信息的數(shù)據(jù),然后此時(shí) Handler來(lái)根據(jù) Thread中反饋回的數(shù)據(jù)消息來(lái)加載新的好友UI界面.4.3登錄模塊的實(shí)現(xiàn)與測(cè)試應(yīng)用程序啟動(dòng)后,首先顯示的是登錄界面,在登錄界面輸入賬號(hào)和密碼,點(diǎn)擊“登錄”按鈕連接服務(wù)器進(jìn)行登錄.如果用戶還沒(méi)有注冊(cè),點(diǎn)擊“注冊(cè)進(jìn)入注冊(cè)界面,在注冊(cè)界面填寫(xiě)好注冊(cè)信息,點(diǎn)擊“注冊(cè)”

36、按鈕連接服務(wù)器進(jìn)行注冊(cè)。注冊(cè)成功或者登錄成功后,用戶可以進(jìn)入個(gè)人中心,個(gè)人中心包含了用戶可以使用的功能和服務(wù)。在個(gè)人中心界面按下手機(jī)屏幕上的“菜單”按鈕后,可彈出“搜索”和“退出”兩個(gè)選項(xiàng)菜單。具體的測(cè)試用例如下圖25所示。圖25用戶登錄測(cè)試用例圖 26,圖 27所展示的是登錄界面和注冊(cè)界面。其中在登錄界面的時(shí)候如果沒(méi)有用戶名就要可以點(diǎn)擊注冊(cè)賬號(hào),進(jìn)入注冊(cè)賬號(hào)頁(yè)面,在注冊(cè)成功的時(shí)候會(huì)將用戶名和密碼寫(xiě)入 openfire 服務(wù)器的普通用戶注冊(cè)信息;如果擁有賬號(hào)就可以輸入在注冊(cè)和登錄的時(shí)候都要檢驗(yàn)郵箱格式是否正確 ,而在登錄的時(shí)候如果用戶名和密碼正確則直接登錄成功,如果錯(cuò)誤則會(huì)提示信息在登錄成功的

37、同時(shí)也要自動(dòng)登錄 openfire服務(wù)器進(jìn)行實(shí)時(shí)接受信息和登錄驗(yàn)證,看是否有到達(dá)的推送信息。圖 26登錄界面圖27注冊(cè)界面4.4好友模塊的實(shí)現(xiàn)與測(cè)試RelationshipLogic,主要是實(shí)現(xiàn)好友的添加、刪除、查詢,好友分組的添加、修改、刪除等以及將好友加入對(duì)應(yīng)的好友分組等功能。即將前臺(tái)將數(shù)據(jù)傳遞到后臺(tái) RelationshipLogic并且返回將信息推送到前臺(tái)。由于功能相似,這里以添加好友到固定分組和查詢好友為例,在好友添加界面中首先選擇需要添加的好友的 uid,然后將其添加到指定分組,選擇分組的時(shí)候?qū)崿F(xiàn)了觸摸滑屏的人機(jī)效果,設(shè)計(jì)了一個(gè)比較好的用戶體驗(yàn).將自己和要添加的好友的 uid 和分

38、組信息封裝成一個(gè) json 包傳遞到后臺(tái),后臺(tái)接收到 json 包之后將其解析并且調(diào)用 RelationshipLogic 類中的concernUserInGroups方法處理數(shù)據(jù),然后在數(shù)據(jù)庫(kù)中加入數(shù)據(jù),上述操作完成之后返回成功標(biāo)識(shí)然后更新前臺(tái)的好友數(shù)據(jù).具體流程如下圖28所示。圖28好友添加查詢流程圖圖29測(cè)試用例-添加好友分組圖 30、圖 31為好友管理界面。其中圖30所示的圖是現(xiàn)在添加了的所有的好友信息、備注消息、分組信息。右上角的管理點(diǎn)擊進(jìn)入可以進(jìn)行好友的添加,分組管理以及將好友添加到固定分組等,點(diǎn)擊進(jìn)入好友列表后,可對(duì)好友進(jìn)行詳細(xì)信息查詢38是選擇了好友分組中一個(gè)分組并且輸入了要添

39、加用戶的uid之后添加的好友截圖,從圖中可以看出將好友添加到固定分組的例子測(cè)試成功。圖 30 展示界面:好友管理圖 31 界面為:添加好友到固定分組4.5即時(shí)通訊模塊的實(shí)現(xiàn)與測(cè)試在通訊錄界面中點(diǎn)擊任意好友即可跳轉(zhuǎn)到對(duì)該好友的私信界面,前臺(tái)的ChaModel類會(huì)負(fù)責(zé)處理私信功能。會(huì)涉及到功能有發(fā)送私信和查看聊天記錄。當(dāng)進(jìn)入到私信界面時(shí),會(huì)立即在前臺(tái)OpenfireConnector類中通過(guò)openfire服務(wù)器建立對(duì)該好友聊天的一對(duì)一的長(zhǎng)連接,直到退出私信界面前長(zhǎng)連接一直保持來(lái)處理聊天信息的接收轉(zhuǎn)發(fā),然后在主界面重新建立連接,負(fù)責(zé)接收后臺(tái)來(lái)的sendMessage方法會(huì)調(diào)用TipPusher類的

40、 sendMessage方法進(jìn)行消息的推送,同時(shí)前臺(tái)sqlite數(shù)據(jù)庫(kù)錄入聊天的雙方用戶以及聊天信息。下圖32所示為即時(shí)通訊模塊流程。圖 32 通訊聊天流程圖正確進(jìn)行即時(shí)通訊與否的測(cè)試,圖33作為測(cè)試舉例。圖33即時(shí)通訊測(cè)試用例圖 34、圖 35為即時(shí)通訊界面。聊天通訊功能的實(shí)現(xiàn)。圖34好友私信界面圖 35 發(fā)送私信4。6 狀態(tài)發(fā)布模塊的實(shí)現(xiàn)與測(cè)試狀態(tài)發(fā)布模塊是本系統(tǒng)中最為重要的模塊,他會(huì)體現(xiàn)出四種主要功能:1)首先我們可以發(fā)布新的動(dòng)態(tài);2)其次可以讀取所有動(dòng)態(tài)列表;3)然后還可以在狀態(tài)列表中選擇動(dòng)態(tài)進(jìn)行點(diǎn)贊或評(píng)論;4)最后該還提供了顯示大圖的功能;具體流程如下圖36所示:圖 36 消息評(píng)論狀

41、態(tài)顯示的流程圖4.6。1發(fā)布動(dòng)態(tài)的功能測(cè)試發(fā)布動(dòng)態(tài)的功能,圖37 測(cè)試舉例.圖37發(fā)布狀態(tài)測(cè)試用例動(dòng)態(tài)發(fā)布界面如下圖38所示。點(diǎn)發(fā)送自動(dòng)轉(zhuǎn)到主界面。圖 38 狀態(tài)發(fā)布界面4.6.2點(diǎn)贊、評(píng)論的功能測(cè)試該功能是針對(duì)自己想要對(duì)看到的動(dòng)態(tài)發(fā)表一下自己好惡或者的看法,測(cè)試用例如表39所示。表 39 點(diǎn)贊評(píng)論舉例消息評(píng)論結(jié)果如下圖 40 所示。可以在獲取的消息評(píng)論的結(jié)果中看出我們成功地進(jìn)行了評(píng)論,并且也給被評(píng)論的好友進(jìn)行了消息推送.圖 40 狀態(tài)評(píng)論結(jié)果顯示4.6。3下拉刷新的功能測(cè)試該功能是根據(jù)用戶的需求,因?yàn)橐诋?dāng)前讀取狀態(tài)的界面中直接獲取狀態(tài)列表,所以要實(shí)時(shí)刷新出一個(gè)最新的狀態(tài)列表,測(cè)試用例如表4

42、1所示。表 41 下拉刷新測(cè)試用例4.6。4獲取消息推送的功能測(cè)試該功能是要實(shí)現(xiàn)能夠獲取別人發(fā)送給你的點(diǎn)贊、評(píng)論或是即時(shí)通訊的信息,測(cè)試用例如圖42所示.圖 42 舉例獲取消息推送4。6.5點(diǎn)擊顯示大圖的功能測(cè)試點(diǎn)擊圖片,圖片變大的功能,表43舉例說(shuō)明。表 43 點(diǎn)擊 圖形變大顯示大圖如下圖44所示。成功顯示大圖。圖 44 顯示大圖5結(jié)論本系統(tǒng)從需求分析,到設(shè)計(jì)和編碼測(cè)試,總共經(jīng)歷了 5 個(gè)月的時(shí)間,期間進(jìn)行了多次的需求方面的修改。經(jīng)過(guò)學(xué)習(xí)和自己的項(xiàng)目編程,實(shí)現(xiàn)了個(gè)人信息登錄模塊、狀態(tài)發(fā)布模塊、好友管理、即時(shí)通訊這四大部分的全部預(yù)期功能。在功能方面較好完成。整個(gè)系統(tǒng)完全依據(jù) MVC 模式開(kāi)發(fā),

43、經(jīng)過(guò)對(duì)類和各種方法的設(shè)計(jì),給編程人員 整個(gè)系統(tǒng)的代碼量不算太大,大約23000行左右,但是,在實(shí)現(xiàn)系統(tǒng)的過(guò)程中,學(xué)習(xí)了諸如 等前后臺(tái)一系列新的知識(shí)與技術(shù).并且為了實(shí)現(xiàn)良好的用戶體驗(yàn),在前臺(tái)界面優(yōu)化和一些android開(kāi)發(fā)的效果上進(jìn)行了大量的編碼工作.最終系統(tǒng)做了大量的 Android 效果的實(shí)現(xiàn),比如說(shuō)分屏顯示模塊、下拉刷新、顯示大圖等等,獲得相當(dāng)不錯(cuò)的用戶體驗(yàn)。時(shí)的和用戶進(jìn)行交互.在這里我們最終使用openfire服務(wù)器作為代理服務(wù)器,在登錄系統(tǒng)的時(shí)候連接openfire及時(shí)取得消息,并且通過(guò) Handler 來(lái)及時(shí)更新前臺(tái)界面完成了消息推送. 但是,由于時(shí)間的關(guān)系和知識(shí)技術(shù)方面的原因,部分功能沒(méi)能實(shí)現(xiàn),尤其是離線消息的推送問(wèn)題.在今后開(kāi)發(fā)項(xiàng)目的時(shí)候應(yīng)該注意。參考文獻(xiàn):基于XMPP2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論