畢業(yè)設(shè)計(jì)(論文)基于安卓的聊天App的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于安卓的聊天App的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于安卓的聊天App的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于安卓的聊天App的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)基于安卓的聊天App的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、安卓聊天室安卓聊天室 appapp 的設(shè)計(jì)與實(shí)現(xiàn)的設(shè)計(jì)與實(shí)現(xiàn) 摘要摘要 07 年 google 發(fā)布 android 后,方便快捷的用戶(hù)體驗(yàn)使得移動(dòng)即時(shí)通訊成為即時(shí)通 訊市場(chǎng)的新寵。作為互聯(lián)網(wǎng)時(shí)代的新興產(chǎn)業(yè),即時(shí)通訊在整個(gè)互聯(lián)網(wǎng)市場(chǎng)中占據(jù)著越 來(lái)越重要的地位。 本系統(tǒng)是基于 android 平臺(tái)開(kāi)發(fā)的一款手機(jī)聊天客戶(hù)端應(yīng)用程序。系統(tǒng)基于環(huán)信 im 服務(wù)器,實(shí)現(xiàn)了注冊(cè)登錄,會(huì)話(huà)列表的獲取,好友列表的獲取,文本信息的即時(shí)通 訊等功能。本系統(tǒng)主要使用輕量型嵌入式數(shù)據(jù)庫(kù) sqlite 來(lái)存儲(chǔ)數(shù)據(jù),運(yùn)用 x-utils 框架 實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。 本文在分析了當(dāng)前環(huán)境下聊天 app 的發(fā)展前景后,進(jìn)行了

2、系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),并 對(duì)系統(tǒng)進(jìn)行了完整的測(cè)試。系統(tǒng)具有界面友好,操作簡(jiǎn)單,方便實(shí)用的特點(diǎn)。 關(guān)鍵詞: android;即時(shí)通訊;環(huán)信;聊天 app; design and implementation of android chat room abstract after 2007 google released android,because the convenient user experience,mobile im become the new darling of the instant messaging marketas an emerging industry in the

3、age of the internet,instant messaging occupy an increasingly important position in the internet market this system is based ring letter im server,implements registration and login,session to obtain the list,get a list of friends,chat text messages and other functionsthe system main use of lightweigh

4、t embedded database sqlite to store data,the use of x-utils framework to achieve operation of the database after analyzing the prospects for development in the current environment to chat app,we carried out the design and implementation of the system,and the system has been fully tested keywords:and

5、roid;instant messaging;ring letter; 引引 言言.1 第第 1 章章 緒論緒論.2 1.1 課題背景.2 1.2 即時(shí)通訊市場(chǎng)發(fā)展現(xiàn)狀.2 1.2.1 即時(shí)通訊市場(chǎng)狀況.2 1.2.2 即時(shí)通訊市場(chǎng)細(xì)分.3 1.2.3 即時(shí)通訊的前景.3 1.3 本文主要工作.4 1.4 論文的組織結(jié)構(gòu).4 第第 2 章章 android 的架構(gòu)分析的架構(gòu)分析 .5 2.1 android特征.5 2.2 android的架構(gòu).6 2.3 android的工作機(jī)制.7 2.3.1 activity.7 2.3.2 service .8 2.3.3 content provid

6、er.9 2.3.4 broadcast receiver.9 2.4 android和其它手機(jī)操作系統(tǒng)的比較.9 2.5 本章小結(jié) .10 第第 3 章章 即時(shí)通訊系統(tǒng)即時(shí)通訊系統(tǒng).11 3.1 系統(tǒng)概述 .11 3.2 即時(shí)通訊簡(jiǎn)介 .11 3.2 環(huán)信簡(jiǎn)介 .12 3.3 系統(tǒng)架構(gòu) .13 3.4 網(wǎng)絡(luò)通信 .13 2.3.4 網(wǎng)絡(luò)協(xié)議.13 2.3.4 gprs和intenet的連接.16 3.5 android sdk 介紹 .16 3.6 本章小結(jié) .18 第第 4 章章 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).19 4.1 系統(tǒng)項(xiàng)目結(jié)構(gòu)設(shè)計(jì) .20 4.2 系統(tǒng)客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn) .2

7、1 4.2.1 用戶(hù)界面.21 4.2.2 數(shù)據(jù)存儲(chǔ).22 4.3 即時(shí)通訊流程描述 .24 4.3.1 判斷網(wǎng)絡(luò)是否連接.24 4.3.2 用戶(hù)的登錄和登出.24 4.3.3 會(huì)話(huà)列表的讀取.26 4.3.4 好友列表的讀取.27 4.3.5 發(fā)送和接收消息.27 4.4 本章小結(jié) .29 第第 5 章章 系統(tǒng)的部署及測(cè)試系統(tǒng)的部署及測(cè)試.30 5.1 系統(tǒng)部署.30 5.2 系統(tǒng)測(cè)試.30 5.3 本章小結(jié).32 結(jié)論與展望結(jié)論與展望.33 致致 謝謝.34 參考文獻(xiàn)參考文獻(xiàn).35 附附 錄錄.36 附錄 a 外文文獻(xiàn)及其翻譯.36 附錄 b 主要參考文獻(xiàn)的題錄及摘要.45 圖標(biāo)清單圖標(biāo)清

8、單 表 4- 1 user 表結(jié)構(gòu).22 表 4- 2 name 表結(jié)構(gòu).23 圖 2- 1 分層架構(gòu)圖.6 圖 2-2 工作流程圖.7 圖 2-3 activity 的生命周期.7 圖 2-4 android 系統(tǒng)在市場(chǎng)的占有率(20142016) .9 圖 3- 1 環(huán)信 sdk 開(kāi)發(fā)框架.16 圖 3- 2 sdk 模塊化.17 圖 4- 1 系統(tǒng)整體流程圖.19 圖 4- 2 代碼結(jié)構(gòu)圖 1.20 圖 4- 3 代碼結(jié)構(gòu)圖 2.21 圖 4- 4 用戶(hù)實(shí)體-聯(lián)系圖 .23 圖 4- 5 登錄模塊.24 圖 4- 6 登錄界面效果圖.25 圖 5-1 注冊(cè)界面.30 圖 5-2 服務(wù)器用

9、戶(hù)列表.30 圖 5-3 會(huì)話(huà)列表界面.31 圖 5-4 好友列表界面.31 圖 5- 5 jack 聊天頁(yè)面.32 圖 5- 6 tom 聊天頁(yè)面.32 引引 言言 可能誰(shuí)也不會(huì)想到,在多年前被許多人視為浪費(fèi)時(shí)間的即時(shí)通訊軟件如今已成為 了人們生活中不可或缺的東西?;ヂ?lián)網(wǎng)絡(luò)的迅速發(fā)展,4g時(shí)代的來(lái)臨,網(wǎng)絡(luò)競(jìng)爭(zhēng)的新 一輪焦點(diǎn)當(dāng)屬移動(dòng)即時(shí)通訊市場(chǎng)。 自 04 年起,許多網(wǎng)絡(luò)巨頭公司就發(fā)現(xiàn)了這一商機(jī),微軟、雅虎、網(wǎng)易、uc等一 批又一批即時(shí)通訊軟件都潮涌而出,與原本牢牢控制著國(guó)內(nèi)即時(shí)通訊市場(chǎng)的qq爭(zhēng)鋒相 對(duì),開(kāi)啟了一場(chǎng)沒(méi)有硝煙的戰(zhàn)爭(zhēng)。隨著時(shí)代的發(fā)展,qq靠著龐大的用戶(hù)群,依然占據(jù) 了大部分的市場(chǎng),

10、07 年android發(fā)布以后,移動(dòng)即時(shí)通訊成為即時(shí)通訊市場(chǎng)的新寵,方 便快捷的用戶(hù)體驗(yàn)使得即時(shí)通訊市場(chǎng)又掀起一波浪潮。據(jù)中國(guó)互聯(lián)網(wǎng)信息中心(cnni c)發(fā)布的第 37 次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告表明,移動(dòng)即時(shí)通訊在互聯(lián)網(wǎng) 使用中幾乎由這不可動(dòng)搖的地位。 個(gè)人認(rèn)為,雖然國(guó)內(nèi)即時(shí)通訊市場(chǎng)已幾乎被qq等軟件壟斷,但是在一些針對(duì)性的 即時(shí)通訊軟件開(kāi)發(fā)還存在可觀的潛在利益。所以本文所研究的方向是如何快速的為自 己企業(yè)的app集成一個(gè)即時(shí)通訊系統(tǒng)。 第第 1 章章 緒論緒論 1.1 課題背景課題背景 根據(jù)中國(guó)互聯(lián)網(wǎng)信息中心(cnnic)發(fā)布的第 37 次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì) 報(bào)告顯示,截至 2

11、015 年 12 月底,我國(guó)網(wǎng)民數(shù)量達(dá)到了 6.88 億,其中手機(jī)網(wǎng)民達(dá)到 90.1%,手機(jī)上網(wǎng)已成為網(wǎng)絡(luò)接入的一個(gè)重要組成部分。在十大互聯(lián)網(wǎng)應(yīng)用中,即時(shí)通 信、搜索引擎和網(wǎng)絡(luò)新聞三大互聯(lián)網(wǎng)基礎(chǔ)應(yīng)用占據(jù)三甲,使用率均超過(guò) 80%。其中, 即時(shí)通信使用率為 90.7%,用戶(hù)規(guī)模達(dá)到了 62408 萬(wàn)人,相比于 2014 年全年增長(zhǎng)了 36 32 萬(wàn),全年增長(zhǎng)率 6.2。其中手機(jī)即時(shí)通訊用戶(hù)規(guī)模達(dá)到了 55719 萬(wàn),由此可見(jiàn),移 動(dòng)即時(shí)通訊在互聯(lián)網(wǎng)使用中所占據(jù)的重要地位。 android是google公司在 2007 年 11 月推出的一個(gè)專(zhuān)為移動(dòng)設(shè)備設(shè)計(jì)的軟件平臺(tái), 它是一套真正意義上的開(kāi)放性

12、的移動(dòng)設(shè)備綜合平臺(tái)。android由linux和java構(gòu)成的開(kāi)源 軟件,不限制任何用戶(hù)在其基礎(chǔ)上進(jìn)行開(kāi)發(fā)。它滿(mǎn)足了手機(jī)市場(chǎng)對(duì)于開(kāi)放性平臺(tái)的迫 切要求,從而如雨后春筍一般迅速崛起。 2013 年 12 月 4 日下午,工業(yè)和信息化部正式發(fā)放 4g牌照,宣告我國(guó)通信行業(yè)進(jìn) 入 4g時(shí)代,如果說(shuō) 3g使得移動(dòng)即時(shí)通訊成為現(xiàn)實(shí),那么,第四代通訊技術(shù) 2000 倍于 撥號(hào)網(wǎng)絡(luò)的速度幾乎能夠滿(mǎn)足所有用戶(hù)的所有通信方式,包括視頻和文件,都能在極 短的時(shí)間內(nèi)傳輸完成,這可以說(shuō)是移動(dòng)即時(shí)通訊一個(gè)重要的里程碑。 1.2 即時(shí)通訊市場(chǎng)發(fā)展現(xiàn)狀即時(shí)通訊市場(chǎng)發(fā)展現(xiàn)狀 1.2.1 即時(shí)通訊市場(chǎng)狀況 目前即時(shí)通訊市場(chǎng)已經(jīng)

13、由百家爭(zhēng)鳴狀態(tài)走向了大統(tǒng)一。原來(lái)形形色色的各種即時(shí) 通訊軟件興起一時(shí),但隨著用戶(hù)群體的減少漸漸走向末路。這些現(xiàn)象是即時(shí)通訊市場(chǎng) 逐漸走向成熟的標(biāo)識(shí)。 時(shí)至當(dāng)下,要論國(guó)內(nèi)現(xiàn)有相對(duì)流行的幾款即時(shí)通訊軟件,應(yīng)該屬騰訊的qq以及微 信(wechat)為首了,這兩款在國(guó)內(nèi)市場(chǎng)占據(jù)了主導(dǎo)地位。其它小部分市場(chǎng)被更具針 對(duì)性的阿里的釘釘,移動(dòng)的飛信等等軟件所瓜分。他們的共同點(diǎn)是有強(qiáng)大的服務(wù)器作 為技術(shù)支持,當(dāng)然還有大量的第三方客戶(hù)端的推廣作為用戶(hù)群體基礎(chǔ)。 還有些老牌的即時(shí)通訊軟件,也同樣有著強(qiáng)大的服務(wù)端支持,如msn、irc、icq 、uc等等,但是因?yàn)楦簧鲜袌?chǎng)需求,用戶(hù)群沒(méi)有持續(xù)的增長(zhǎng),到現(xiàn)在已經(jīng)逐漸走

14、向 消亡,用戶(hù)群體逐漸被壓縮或者被其他軟件所取代。在與新軟件的競(jìng)爭(zhēng)過(guò)程中,缺乏 變化,或者被模仿,從而失去新穎性而逐漸走出用戶(hù)群的視野,新生代的用戶(hù)多數(shù)甚 至還沒(méi)有聽(tīng)說(shuō)過(guò)。當(dāng)然,還有更多的小規(guī)模團(tuán)隊(duì)開(kāi)發(fā)的軟件,由于缺乏有力的市場(chǎng)宣 傳,資金鏈支持,客戶(hù)服務(wù),最重要的是缺乏創(chuàng)新也無(wú)法吸引足夠的使用者,也無(wú)法 堅(jiān)持生存下去,銷(xiāo)聲匿跡是它必然的歸宿。 1.2.2 即時(shí)通訊市場(chǎng)細(xì)分 每一個(gè)用戶(hù)都會(huì)根據(jù)自己的需求和期待選擇使用不同的即時(shí)通訊軟件。即時(shí)通訊 ,顧名思義,指在最短的時(shí)間內(nèi)在用戶(hù)之間進(jìn)行信息的交互,從而獲得龐大的用戶(hù)群 ,一般來(lái)說(shuō),商家不靠這個(gè)賺錢(qián),這是一個(gè)免費(fèi)提供的業(yè)務(wù)。當(dāng)然在這個(gè)用戶(hù)群的基

15、 礎(chǔ)上,可以推出一些增值業(yè)務(wù),如qq的靚號(hào),黃鉆,會(huì)員等等,但這不在我們現(xiàn)在的 探討范圍內(nèi)。我們現(xiàn)在所討論的是按用戶(hù)對(duì)于通訊軟件基本功能需求來(lái)進(jìn)行細(xì)分。 第一、按用戶(hù)的性質(zhì)可以分為企業(yè)用戶(hù)、群體用戶(hù)、個(gè)人用戶(hù): 這三者之間的不同之處在于他們所處的環(huán)境不同,使用即時(shí)通訊軟件的目的不同, 雖然都是信息的交換,但是企業(yè)用戶(hù)多數(shù)談的是工作上的事,和企業(yè)相關(guān)的信息,而 群體之間交換的是更多的是一些公眾信息,作為一個(gè)維系群體的存在的平臺(tái),個(gè)人之 間交換的更多的是私生活,個(gè)人交際。 第二、按所發(fā)的信息類(lèi)型可分為:文字信息、文件信息、音頻信息、視頻信息: 這種分法就很容易理解了,主要按照用戶(hù)所發(fā)信息屬性來(lái)區(qū)分

16、,當(dāng)然用戶(hù)之間并 不局限于單獨(dú)的一種或者幾種。 從當(dāng)下主流的通訊軟件來(lái)看,基本都涵蓋了大多數(shù)情景,不論是 qq、微信,還是 釘釘。 第三、按信息對(duì)人的意義可以分為人機(jī)信息、機(jī)器信息: 1、人機(jī)信息:可以被人類(lèi)所直觀理解的信息,如語(yǔ)言,圖像,文字等。 2、機(jī)器信息:簡(jiǎn)單來(lái)說(shuō),指人類(lèi)無(wú)法直接理解的機(jī)器語(yǔ)言,是機(jī)器與機(jī)器之間直 接交互的信息。 1.2.3 即時(shí)通訊的前景 對(duì)于一些小型企業(yè)來(lái)說(shuō),即時(shí)通訊市場(chǎng)已經(jīng)不適宜他們生存了。他們能夠做的, 都已經(jīng)被qq、微信等主流軟件所實(shí)現(xiàn),想從他們手中奪取用戶(hù)資源,無(wú)異于水中撈月 。而且,研究表明,人類(lèi)很容易對(duì)一個(gè)長(zhǎng)期使用的事物產(chǎn)生依賴(lài),通訊軟件同樣如此 ,他們

17、將被依賴(lài)所綁定。自從qq在國(guó)內(nèi)崛起后,許多企業(yè)都想從這個(gè)大蛋糕中分得一 塊, 但多年過(guò)去,卻沒(méi)有什么結(jié)果,反而騰訊qq利用龐大的用戶(hù)群優(yōu)勢(shì),吞噬了其 它企業(yè)的市場(chǎng),如聯(lián)眾的在線(xiàn)游戲。據(jù) 2015 年 10 月 22 日騰訊全球合作伙伴大會(huì)上pp t所演示內(nèi)容,當(dāng)時(shí)的qq最新月活躍用戶(hù)量達(dá)到 8.23 億,而微信也達(dá)到了 6 億之多。 如此巨大的用戶(hù)資源堪稱(chēng)恐怖。 即時(shí)通訊軟件的重要基礎(chǔ)就是擁有龐大的用戶(hù)群,從而壟斷整個(gè)市場(chǎng),在這種情 景下,已經(jīng)形成氣候的qq、微信等很容易扼殺新興的軟件的,除非擁有更為雄厚的經(jīng) 濟(jì)實(shí)力和更加強(qiáng)大、新穎的技術(shù)實(shí)力。不過(guò),這幾乎是難以實(shí)現(xiàn)的,所以,從另一個(gè) 突破口來(lái)

18、尋找機(jī)遇是必然的。 面向個(gè)人用戶(hù),是當(dāng)下即時(shí)通訊市場(chǎng)的重要特點(diǎn),這種模式一般都不直接產(chǎn)生直 觀利潤(rùn)。但是對(duì)于一個(gè)企業(yè)來(lái)說(shuō),他們也存在巨大的需求,這將帶來(lái)很可觀的收益。 對(duì)于即時(shí)通訊的后來(lái)者來(lái)說(shuō),這無(wú)異于一個(gè)切入點(diǎn)。 撥開(kāi)眼前的迷霧,前途是光明的,闖過(guò)曲折的道路,迎接你的是康莊大道,想要 踏入即時(shí)通訊市場(chǎng),這是必然的經(jīng)歷。無(wú)論是通訊市場(chǎng)的壟斷持續(xù),還是新興技術(shù)軟 件的爭(zhēng)鋒,對(duì)用戶(hù)來(lái)說(shuō),更為強(qiáng)大,方便,切合用戶(hù)利益的軟件產(chǎn)品才能在這個(gè)市場(chǎng) 中生存地更久。 1.3 本文主要工作本文主要工作 android作為一個(gè)開(kāi)放性平臺(tái),自出現(xiàn)依賴(lài)深受廣大用戶(hù)的青睞。本文從實(shí)際應(yīng)用 出發(fā),提出了開(kāi)發(fā)基于andro

19、id系統(tǒng)的手機(jī)端即時(shí)通訊軟件系統(tǒng)。本文的主要工作包括 : 根據(jù)環(huán)信 2.0 開(kāi)發(fā)文檔,以環(huán)信的云服務(wù)器為基礎(chǔ),對(duì)該系統(tǒng)進(jìn)行了具體的設(shè)計(jì)和 實(shí)現(xiàn)。本系統(tǒng)擁有即時(shí)文本信息傳輸,管理好友列表,新消息通知,登錄注冊(cè)等功能 模塊。該系統(tǒng)可在android模擬器上運(yùn)行,并且取得了良好的運(yùn)行效果。 1.4 論文的組織結(jié)構(gòu)論文的組織結(jié)構(gòu) 本文首章分析了系統(tǒng)的研究背景,從即時(shí)通訊市場(chǎng)現(xiàn)狀、即時(shí)通訊市場(chǎng)細(xì)分,即 時(shí)通訊發(fā)展前景等方面介紹了即時(shí)通訊市場(chǎng)的發(fā)展現(xiàn)狀。 第二章,對(duì)android的架構(gòu)作了系統(tǒng)的分析,從android的特征,工作機(jī)制,并把它 與其它手機(jī)操作系統(tǒng)對(duì)比,來(lái)體現(xiàn)android的優(yōu)勢(shì)。 第三章,對(duì)

20、比當(dāng)前網(wǎng)絡(luò)流行的即時(shí)im,對(duì)環(huán)信即時(shí)通訊云進(jìn)行深入的剖析,對(duì)系 統(tǒng)的即時(shí)通訊機(jī)制進(jìn)行分析,提出解決方案。 第四章,對(duì)系統(tǒng)的界面,即時(shí)通訊模塊,本地?cái)?shù)據(jù)庫(kù)模塊和擴(kuò)展功能幾個(gè)方面進(jìn) 行了詳細(xì)的設(shè)計(jì)及實(shí)現(xiàn)。 第五章,通過(guò)注冊(cè)登錄,獲取好友列表,獲取會(huì)話(huà)列表,消息的發(fā)送和接受,添 加、刪除好友幾個(gè)方面對(duì)系統(tǒng)進(jìn)行測(cè)試。 第六章,總結(jié)本文的研究?jī)?nèi)容以及研究成果,通過(guò)對(duì)過(guò)程及結(jié)果的分析,整理, 歸納,得出自己的觀點(diǎn)及存在的問(wèn)題,并對(duì)今后發(fā)展的展望。 第第 2 章章 android 的架構(gòu)分析的架構(gòu)分析 android是一個(gè)以linux為基礎(chǔ)的半開(kāi)源操作系統(tǒng),主要用于移動(dòng)設(shè)備,由google和 開(kāi)放手持設(shè)備聯(lián)

21、盟主導(dǎo)。android 系統(tǒng)最初由安迪魯賓(andy rubin)制作,最初主 要支持手機(jī)。2005 年 8 月 17 日被google收購(gòu)。2007 年 11 月 5 日,google與 84 家硬 件制造商、軟件開(kāi)發(fā)商及電信營(yíng)運(yùn)商組成開(kāi)放手持設(shè)備聯(lián)盟(open handset alliance )來(lái)共同研發(fā)改良android系統(tǒng)并生產(chǎn)搭載android的智慧型手機(jī),并逐漸拓展到平板電 腦及其他領(lǐng)域上。隨后,google以apache免費(fèi)開(kāi)元許可證授權(quán)方式,發(fā)布了android的 源代碼。 2.1 android 特征特征 系統(tǒng)內(nèi)核:android 是運(yùn)行于 linux kernel之上,但

22、并不是gnu/linux。android 為了達(dá)到商業(yè)應(yīng)用,必須移除被gnu gpl授權(quán)證所約束的部份,例如android將驅(qū)動(dòng) 程序移到 userspace,使得linux driver與 linux kernel徹底分開(kāi),以bionic取代glibc、 以ski-a取代cairo、再以opencore取代ffmpeg等等。 硬件抽象層:android 的 hal(硬件抽像層)是能以封閉源碼形式提供硬件驅(qū)動(dòng) 模塊,為了把 android framework 與 linux kernel 隔開(kāi)。 中介軟件:操作系統(tǒng)與應(yīng)用程序的溝通橋梁。 android 使用skia 為核心圖形引擎,搭配ope

23、ngl/es。skia與linux cairo功能相當(dāng) ,但相較于linux cairo, skia 功能還只是雛形的。2005 年skia公司被google收購(gòu),200 7 年初,skia gl源碼被公開(kāi),目前skia 也是google chrome 的圖形引擎。 android的多媒體數(shù)據(jù)庫(kù)采用sqlite數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)又分為共用數(shù)據(jù)庫(kù)及私用 數(shù)據(jù)庫(kù)。用戶(hù)可通過(guò)contentresolver類(lèi)(column)取得共用數(shù)據(jù)庫(kù)。 android的中間層多以java 實(shí)現(xiàn),并且采用特殊的dalvik 虛擬機(jī)(dalvik virtual machine)。dalvik虛擬機(jī)是一種“暫存器型態(tài)

24、”(register based)的java虛擬機(jī),變量 皆存放于暫存器中,虛擬機(jī)的指令相對(duì)減少。 dalvik虛擬機(jī)可以有多個(gè)實(shí)例(instance), 每個(gè)android應(yīng)用程序都用一個(gè)自屬 的dalvik虛擬機(jī)來(lái)運(yùn)行,讓系統(tǒng)在運(yùn)行程序時(shí)可達(dá)到優(yōu)化。dalvik 虛擬機(jī)并非運(yùn)行java 字節(jié)碼(bytecode),而是運(yùn)行一種稱(chēng)為.dex格式的文件。 安全權(quán)限機(jī)制:android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。系統(tǒng)更多的安全功能通 過(guò)權(quán)限機(jī)制提供。android安全架構(gòu)的核心設(shè)計(jì)思想是,在默認(rèn)設(shè)置下,所有應(yīng)用都沒(méi) 有權(quán)限對(duì)其他應(yīng)用、系統(tǒng)或用戶(hù)進(jìn)行較大影響的操作。安裝應(yīng)用時(shí),在檢查程序簽名 提

25、及的權(quán)限,且經(jīng)過(guò)用戶(hù)確認(rèn)后,軟件包安裝器會(huì)給予應(yīng)用權(quán)限。 2.2 android 的架構(gòu)的架構(gòu) android的系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想,如圖 1 所示。從上層到底層共包括四層,分別是 應(yīng)用程序?qū)?,?yīng)用程序框架層,系統(tǒng)庫(kù)和運(yùn)行時(shí),linux內(nèi)核。 圖 2- 1 分層架構(gòu)圖 應(yīng)用程序?qū)樱涸谶@層中,系統(tǒng)提供了一些基礎(chǔ)的核心應(yīng)用包,如短信、聯(lián)系人管 理、電子郵件、日歷、系統(tǒng)設(shè)置、瀏覽器等。同事,開(kāi)發(fā)者可以利用java語(yǔ)言編寫(xiě)屬于 自己的應(yīng)用程序,這些程序與核心應(yīng)用程序是平等的。 應(yīng)用程序框架層:該層作為應(yīng)用程序開(kāi)發(fā)的基礎(chǔ),在絕大多數(shù)情況下,開(kāi)發(fā)人員 都在與她打交道。應(yīng)用程序框架層包括活動(dòng)管理器、

26、窗口管理器、內(nèi)容提供者、視圖 系統(tǒng)、包管理器、電話(huà)管理器、資源管理器、位置管理器、通知管理器和xmpp服務(wù)十 個(gè)部分。在android平臺(tái)上,開(kāi)發(fā)人員可以完全訪(fǎng)問(wèn)核心應(yīng)用程序所使用的api框架。 并且,任何一個(gè)應(yīng)用程序都可以發(fā)布自身的功能模塊,而其他應(yīng)用程序則可以使用這 些已發(fā)布的功能模塊?;谶@樣的重用機(jī)制,用戶(hù)就可以方便地替換平臺(tái)本身的各種 應(yīng)用程序組件。 系統(tǒng)庫(kù)和android運(yùn)行時(shí):系統(tǒng)庫(kù)包括九個(gè)子系統(tǒng),分別是圖層管理、媒體庫(kù)、sq -lite、openglestate、freetype、webkit、sgl、ssl和libc。android運(yùn)行時(shí)包括核心 庫(kù)和dalvik虛擬機(jī),前者

27、既兼容了大多數(shù)java語(yǔ)言所需要調(diào)用的功能函數(shù),又包括了an dr-oid的核心庫(kù),比如android.os、android.media等等。后者是一種基于寄 存器的java虛擬機(jī),dalvik虛擬機(jī)主要是完成對(duì)生命周期的管理、堆棧的管理、線(xiàn)程的 管理、安全和異常的管理以及垃圾回收等重要功能。 linux內(nèi)核:目前市場(chǎng)上廣泛流行的android版本中,以linux3.8 為服務(wù)核心的andr -oid 5.0 系統(tǒng)大幅度提高了ram的讀取速度和多任務(wù)處理能力,擁有良好的用戶(hù)體驗(yàn) 。 2.3 android 的工作機(jī)制的工作機(jī)制 一個(gè)android程序由四大組件組成,它們分別是“activity

28、” , “service” , “content p-rovider”和“broadcast receiver” 。但并不是每一個(gè)應(yīng)用程序都包含這四個(gè)組件,在 應(yīng)用程序中使用這些組件時(shí),必須先在androidmainfest.xml中進(jìn)行配置。android的應(yīng) 用構(gòu)成和工作流程圖如下: 圖 2-2 工作流程圖 2.3.1 activity activity是用戶(hù)接口程序,幾乎所有的activity都要和用戶(hù)打交道,原則上它會(huì)提供 給用戶(hù)一個(gè)交互式的接口功能。activity自身是沒(méi)有界面的,所以它會(huì)創(chuàng)建一個(gè)窗口, 通過(guò)setcontentview(view)接口來(lái)加載ui界面。activit

29、y可以全屏顯示,也可以通過(guò) 更改主題使得其窗口化。activity一共有七大生命周期: 圖 2-3 activity 的生命周期 (1)activity生命周期 由圖 2-3 可知,一個(gè)activity正常啟動(dòng)過(guò)程中,調(diào)用的方法為oncreate() - onstart() - onresum();在activity被kill的時(shí)候調(diào)用的方法為onpause() - onstop() - ondesto- ry();這是一個(gè)完整的生命周期。 oncreate():在此方法中創(chuàng)建界面,做一些初始化操作。 onstart():變成“用戶(hù)可見(jiàn)不可交互”狀態(tài)。 onresume():變成“和用戶(hù)可交互

30、”狀態(tài)。 onpause():變成“用戶(hù)可見(jiàn)不可交互”狀態(tài)。 onstop():不可見(jiàn),被下一個(gè)activity所覆蓋。 ondestory():activity被kill前調(diào)用的最后一個(gè)方法。 (2)activity之間的通信 在android中一個(gè)進(jìn)程中可能會(huì)運(yùn)行多個(gè)不同的activity實(shí)例,也可能在不同的進(jìn)程 中運(yùn)行不同的activity實(shí)例,所以,我們需要一些特別的機(jī)制來(lái)實(shí)現(xiàn)多個(gè)activity之間傳 遞消息,為此引入了intent機(jī)制。 intent負(fù)責(zé)對(duì)操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附加數(shù)據(jù)進(jìn)行描述,android則根據(jù)此int -ent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 intent傳

31、遞給調(diào)用的組件,并完成組件的調(diào)用。 因此,intent在這里起著一個(gè)媒體中介的作用,專(zhuān)門(mén)提供組件互相調(diào)用的相關(guān)信息,實(shí) 現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。 在應(yīng)用中,我們可以以?xún)煞N形式來(lái)使用它: 直接intent:指定了component屬性的intent(調(diào)用setcomponent(componentname)或 者setclass(context, class)來(lái)指定) 。通過(guò)指定具體的組件類(lèi),通知應(yīng)用啟動(dòng)對(duì)應(yīng)的組件 。 間接intent:沒(méi)有指定comonent屬性的intent。這些intent需要包含足夠的信息,這樣系統(tǒng)才能根 據(jù)這些信息,在在所有的可用組件中,確定滿(mǎn)足此intent的

32、組件。 2.3.2 service android 中 service 是運(yùn)行在后臺(tái)的東西,級(jí)別與 activity 差不多。既然說(shuō) service 是 運(yùn)行在后臺(tái)的服務(wù),那么它就是不可見(jiàn)的,沒(méi)有界面的東西。你可以啟動(dòng)一個(gè)服務(wù) ser -vice 來(lái)播放音樂(lè),或者記錄你地理信息位置的改變,或者啟動(dòng)一個(gè)服務(wù)來(lái)運(yùn)行并一直 監(jiān)聽(tīng)某種動(dòng)作。 service 和其他組件一樣,都是運(yùn)行在主線(xiàn)程中,因此不能用它來(lái)做耗時(shí)的請(qǐng)求或 者動(dòng)作。你可以在服務(wù)中開(kāi)一個(gè)線(xiàn)程,在線(xiàn)程中做耗時(shí)動(dòng)作。 服務(wù)一般分為兩種: 本地服務(wù):local service 用于應(yīng)用程序內(nèi)部。在 service 可以調(diào)用 context.st

33、artser -vice()啟動(dòng),調(diào)用 context.stopservice()結(jié)束。在內(nèi)部可以調(diào)用 service.stopself() 或 ser vi-ce.stopselfresult()來(lái)自己停止。無(wú)論調(diào)用了多少次 startservice(),都只需調(diào)用一次 st op-service()來(lái)停止。 遠(yuǎn)程服務(wù): remote service 用于 android 系統(tǒng)內(nèi)部的應(yīng)用程序之間??梢远x接 口并把接口暴露出來(lái),以便其他應(yīng)用進(jìn)行操作??蛻?hù)端建立到服務(wù)對(duì)象的連接,并通 過(guò)那個(gè)連接來(lái)調(diào)用服務(wù)。調(diào)用 context.bindservice()方法建立連接,并啟動(dòng),以調(diào)用 co nt

34、ext.unbindservice()關(guān)閉連接。多個(gè)客戶(hù)端可以綁定至同一個(gè)服務(wù)。如果服務(wù)此時(shí)還沒(méi) 有加載,bindservice()會(huì)先加載它。 2.3.3 content provider 當(dāng)應(yīng)用繼承contentprovider類(lèi),并重寫(xiě)該類(lèi)用于提供數(shù)據(jù)和存儲(chǔ)數(shù)據(jù)的方法,就可 以向其他應(yīng)用共享其數(shù)據(jù)。雖然使用其他方法也可以對(duì)外共享數(shù)據(jù),但數(shù)據(jù)訪(fǎng)問(wèn)方式 會(huì)因數(shù)據(jù)存儲(chǔ)的方式而不同,如:采用文件方式對(duì)外共享數(shù)據(jù),需要進(jìn)行文件操作讀 寫(xiě)數(shù)據(jù);采用sharedpreferences共享數(shù)據(jù),需要使用sharedpreferences api讀寫(xiě)數(shù)據(jù)。而 使用c-ontentprovider共享數(shù)據(jù)的

35、好處是統(tǒng)一了數(shù)據(jù)訪(fǎng)問(wèn)方式。 2.3.4 broadcast receiver 廣播接收器是一個(gè)專(zhuān)注于接收廣播通知信息,并做出對(duì)應(yīng)處理的組件。很多廣播 是源自于系統(tǒng)代碼的比如,通知時(shí)區(qū)改變、電池電量低、拍攝了一張照片或者用戶(hù) 改變了語(yǔ)言選項(xiàng)。應(yīng)用程序也可以進(jìn)行廣播比如說(shuō),通知其它應(yīng)用程序一些數(shù)據(jù)下 載完成并處于可用狀態(tài)。一般流程可分為一下三步: 注冊(cè)廣播事件:注冊(cè)方式有兩種,一種是靜態(tài)注冊(cè),就是在androidmanifest.xml文 件中定義,注冊(cè)的廣播接收器必須要繼承broadcastreceiver;另一種是動(dòng)態(tài)注冊(cè),是在 程序中使用context.registerreceiver注冊(cè),

36、注冊(cè)的廣播接收器相當(dāng)于一個(gè)匿名類(lèi)。兩種 方式都需要intentfilter。 發(fā)送廣播事件:通過(guò)context.sendbroadcast來(lái)發(fā)送,由intent來(lái)傳遞注冊(cè)時(shí)用到的ac -tion。 接收廣播事件:當(dāng)發(fā)送的廣播被接收器監(jiān)聽(tīng)到后,會(huì)調(diào)用它的onreceive()方法, 并將包含消息的intent對(duì)象傳給它。onreceive中代碼的執(zhí)行時(shí)間不要超過(guò) 5s,否則an-d roid會(huì)彈出超時(shí)dialog。 2.4 android 和其它手機(jī)操作系統(tǒng)的比較和其它手機(jī)操作系統(tǒng)的比較 圖 2-4 android 系統(tǒng)在市場(chǎng)的占有率(20142016) 由圖 2-4 不難看出,android系

37、統(tǒng)的全球市場(chǎng)戰(zhàn)友率已占據(jù)榜首,并且仍在逐年遞 增。至于原因,我想大家來(lái)看一下各系統(tǒng)的對(duì)照表就明白了。 表 2- 1 手機(jī)操作系統(tǒng)對(duì)照表 從表中,我們可以發(fā)現(xiàn)android在各項(xiàng)指標(biāo)中都有良好的表現(xiàn),特別是開(kāi)放性和對(duì) 第三方的支持性上尤為優(yōu)異,這是它占領(lǐng)大多數(shù)市場(chǎng)的必要條件。就目前來(lái)說(shuō),andro i-d在用戶(hù)體驗(yàn)性上可能還不如ios,但隨著android 5.0 的發(fā)布,android系統(tǒng)的流暢性 大大提高,而且 5.0 的應(yīng)用圖標(biāo)更趨向于ios的扁平化應(yīng)用,隨著android的發(fā)展,用戶(hù) 體驗(yàn)性就不再成為android的弱勢(shì)所在。 2.5 本章小結(jié)本章小結(jié) 本章對(duì)android的構(gòu)造、特征、

38、工作機(jī)制做了詳細(xì)的介紹,通過(guò)對(duì)各個(gè)手機(jī)操作系 統(tǒng)的比較分析,確立android操作系統(tǒng)的優(yōu)勢(shì),說(shuō)明本問(wèn)研究的必要性。 第第 3 章章 即時(shí)通訊系統(tǒng)即時(shí)通訊系統(tǒng) 本章介紹了即時(shí)通訊系統(tǒng)的總體框架和相關(guān)解決方案。以環(huán)信即時(shí)通訊云為基礎(chǔ) ,實(shí)現(xiàn)客戶(hù)端與客戶(hù)端之間的即時(shí)通信。 3.1 系統(tǒng)概述系統(tǒng)概述 本文中所實(shí)現(xiàn)的是在android平臺(tái)上開(kāi)發(fā)的即時(shí)通訊系統(tǒng),它能夠在用戶(hù)之間快捷 的傳遞消息?,F(xiàn)今很多流行的通訊軟件,在聊天基礎(chǔ)上開(kāi)發(fā)了很多增值業(yè)務(wù),這在很 大程度上滿(mǎn)足了個(gè)人用戶(hù)的需求。但是,這對(duì)企業(yè)用戶(hù)來(lái)說(shuō)過(guò)于繁瑣。本系統(tǒng)可以直 接運(yùn)用于各個(gè)app,使得app擁有即時(shí)通訊功能。如果在企業(yè)app中加入聊

39、天功能,就 可使得工作和生活完美分離。 3.2 即時(shí)通訊簡(jiǎn)介即時(shí)通訊簡(jiǎn)介 即時(shí)通訊軟件是通過(guò)即時(shí)通訊技術(shù)來(lái)實(shí)現(xiàn)在線(xiàn)聊天、交流的軟件。目前有 2 種架 構(gòu)形式,1、一種是c/s架構(gòu),采用客戶(hù)端/服務(wù)器形式,用戶(hù)使用過(guò)程中需要下載安裝 客戶(hù)端軟件,典型的代表有:qq、百度hi 、skype 、gtalk、新浪uc、msn等;2、 采用b/s架構(gòu),即瀏覽器/服務(wù)端形式,這種形式的即時(shí)通訊軟件,直接借助互聯(lián)網(wǎng)為媒 介、客戶(hù)端無(wú)需安裝任何軟件,既可以體驗(yàn)服務(wù)器端進(jìn)行溝通對(duì)話(huà),一般運(yùn)用在電子 商務(wù)網(wǎng)站的服務(wù)商,典型的代表有websitelive 、53kf、live800 等。 即時(shí)通訊(instant

40、messaging):透過(guò)即時(shí)通訊功能,你可以知道你的親友是否正 在線(xiàn)上,及與他們即時(shí)通訊。即時(shí)通訊比傳送電子郵件所需時(shí)間更短,而且比撥電話(huà) 更方便,無(wú)疑是網(wǎng)絡(luò)年代最方便的通訊方式。 即時(shí)通訊(instant messaging,簡(jiǎn)稱(chēng) im)是一個(gè)終端服務(wù),允許兩人或多人使用網(wǎng)路即時(shí)的傳遞文字訊息、檔案、語(yǔ)音與 視頻交流。 多任務(wù)作業(yè) 異步性 長(zhǎng)短溝通 媒介轉(zhuǎn)換迅速 交互性 不受時(shí)空限制 即時(shí)通訊是一個(gè)終端連往一個(gè)即時(shí)通訊網(wǎng)路的服務(wù)。即時(shí)通訊不同於 e-mail 在于 它的交談是即時(shí)的。大部分的即時(shí)通訊服務(wù)提供了 presence awareness 的特性顯示 聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在線(xiàn)上與

41、能否與聯(lián)絡(luò)人交談。 在早期的即時(shí)通訊程式中,使用者輸入的每一個(gè)字元都會(huì)即時(shí)顯示在雙方的螢?zāi)唬?且每一個(gè)字元的刪除與修改都會(huì)即時(shí)的反應(yīng)在螢?zāi)簧?。這種模式比起使用 e-mail 更像 是電話(huà)交談。在現(xiàn)在的即時(shí)通訊程式中,交談中的另一方通常只會(huì)在本地端按下送出 鍵(enter 或是 ctrl+enter)后才會(huì)看到訊息。 在網(wǎng)際網(wǎng)路上受歡迎的即時(shí)通訊服務(wù)包含了 msn messenger、aol instant messenger、yahoo! messenger、net messenger service、jabber、ucstar、icq 與 qq、gocom。 這些服務(wù)有賴(lài)於許多想法更久的(與

42、普遍)的線(xiàn)上聊天媒介,如 internet relay chat 一樣知名。 1970 年代早期,一種更早的即時(shí)通訊形式是柏拉圖系統(tǒng)(plato system)。之后在 1980 年代,unix/linux 的交談即時(shí)訊息被廣泛的使用于工程師與學(xué)術(shù)界,1990 年代 即時(shí)通訊更跨越了網(wǎng)際網(wǎng)路交流。1996 年 11 月,icq 是首個(gè)廣泛被非 unix/linux 使 用者用於網(wǎng)際網(wǎng)路的即時(shí)通訊軟體。在 icq 的介紹之后,同時(shí)在許多地方有一定數(shù)量 的即時(shí)通訊方式發(fā)展,且各式的即時(shí)通訊程式有獨(dú)立的協(xié)定,無(wú)法彼此互通。這引導(dǎo) 使用者同時(shí)執(zhí)行兩個(gè)以上的即時(shí)通訊軟體,或者他們可以使用支援多協(xié)定的終端

43、軟體, 如 gaim、trillian 或 jabber。 近年來(lái),許多即時(shí)通訊服務(wù)開(kāi)始提供視訊會(huì)議的功能,網(wǎng)絡(luò)電話(huà)(voip),與網(wǎng)路會(huì) 議服務(wù)開(kāi)始整合為兼有影像會(huì)議與即時(shí)訊息的功能。于是,這些媒體的分別變的越來(lái) 越模糊。 最早的即時(shí)通訊軟體是 icq,icq 是英文中 i seek you 的諧音,意思是我找你。四 名以色列青年于 1996 年 7 月成立 mirabilis 公司,并在 11 月份發(fā)布了最初的 icq 版本, 在六個(gè)月內(nèi)有 85 萬(wàn)用戶(hù)注冊(cè)使用。 早期的 icq 很不穩(wěn)定,盡管如此,還是受到大眾的歡迎,雅虎也推出 yahoo! pager,美國(guó)在線(xiàn)也將具有即時(shí)通訊功能的

44、aol 包裝在 netscape communicator,而后 微軟更將 windows messenger 內(nèi)建於 microsoft windows xp 作業(yè)系統(tǒng)中。 騰訊公司推出的騰訊 qq 也迅速成為中國(guó)最大的即時(shí)消息軟件。 即時(shí)消息軟件也 面臨著互聯(lián)互通、免費(fèi)或收費(fèi)問(wèn)題的困擾。 instantmessaging(即時(shí)通訊、實(shí)時(shí)傳訊)的縮寫(xiě)是 im,這是一種可以讓使用者在 網(wǎng)絡(luò)上建立某種私人聊天室(chatroom)的實(shí)時(shí)通訊服務(wù)。大部分的即時(shí)通訊服務(wù)提供 了狀態(tài)信息的特性顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在線(xiàn)及能否與聯(lián)絡(luò)人交談。目前在 互聯(lián)網(wǎng)上受歡迎的即時(shí)通訊軟件包括百度 hi、ucst

45、ar、qq、msn messenger、aol instant messenger、yahoo! messenger、net messenger service、jabber、icq 等。 通常 im 服務(wù)會(huì)在使用者通話(huà)清單(類(lèi)似電話(huà)簿)上的某人連上 im 時(shí)發(fā)出訊息通 知使用者,使用者便可據(jù)此與此人透過(guò)互聯(lián)網(wǎng)開(kāi)始進(jìn)行實(shí)時(shí)的通訊。除了文字外,在 頻寬充足的前提下,大部分 im 服務(wù)事實(shí)上也提供視訊通訊的能力。實(shí)時(shí)傳訊與電子郵 件最大的不同在于不用等候,不需要每隔兩分鐘就按一次“傳送與接收” ,只要兩個(gè)人 都同時(shí)在線(xiàn),就能像多媒體電話(huà)一樣,傳送文字、檔案、聲音、影像給對(duì)方,只要有 網(wǎng)絡(luò),無(wú)論對(duì)方

46、在天涯海角,或是雙方隔得多遠(yuǎn)都沒(méi)有距離。 互聯(lián)網(wǎng)的歷史總顯得具有不可思議的戲劇性:1996 年,4 位以色列人發(fā)明了 im 的 鼻祖icq“壞小子” ,那時(shí)它只是一個(gè)主要搞網(wǎng)上尋呼的“小玩意” ;1998 年,騰 訊研發(fā)團(tuán)隊(duì)為 qq 用戶(hù)突破 100 人而“興奮不已” ;2000 年前后,業(yè)內(nèi)傳馬化騰打算把 qq 作價(jià) 100 萬(wàn)賣(mài)給深圳電信,但深圳電信卻不要。到 2005 年騰訊卻成為中國(guó)收入前 三名的互聯(lián)網(wǎng)公司,而與騰訊一樣做即時(shí)通訊的朗瑪 uc,依靠市場(chǎng)份額和用戶(hù)數(shù)排名 第二的優(yōu)勢(shì),被新浪收購(gòu)后換來(lái)了 3600 萬(wàn)美元的現(xiàn)金和股票。 3.2 環(huán)信簡(jiǎn)介環(huán)信簡(jiǎn)介 環(huán)信是移動(dòng)即時(shí)通訊能力的云計(jì)

47、算paas(platform as a service, 平臺(tái)即服務(wù)) 平臺(tái) 服務(wù)商(簡(jiǎn)稱(chēng)環(huán)信)。環(huán)信將基于移動(dòng)互聯(lián)網(wǎng)的即時(shí)通訊能力,通過(guò)云端開(kāi)放的 rest ap i 和客戶(hù)端 sdk 包的方式提供給開(kāi)發(fā)者和企業(yè)。全面支持android、ios、web等多種 平臺(tái),在流量、電量、長(zhǎng)連接、語(yǔ)音、位置、安全等能力做了極致的優(yōu)化,讓移動(dòng)開(kāi) 發(fā)者擺脫繁重的移動(dòng)im通訊底層開(kāi)發(fā),最大限度地縮短產(chǎn)品開(kāi)發(fā)周期,最短的時(shí)間內(nèi) 讓app擁有移動(dòng)im能力。 3.3 系統(tǒng)架構(gòu)系統(tǒng)架構(gòu) 本系統(tǒng)采用c/s架構(gòu), 擁有服務(wù)器端和客戶(hù)端。 客戶(hù)端:在android品臺(tái)上開(kāi)發(fā),通過(guò)gprs或無(wú)線(xiàn)網(wǎng)絡(luò)與internet網(wǎng)絡(luò)建

48、立連接, 通過(guò)環(huán)信服務(wù)器實(shí)現(xiàn)與android客戶(hù)端或pc機(jī)客戶(hù)端之間的即時(shí)通訊??蛻?hù)端負(fù)責(zé)初始 化通信過(guò)程,由客戶(hù)端發(fā)起創(chuàng)建連接請(qǐng)求。 客戶(hù)端可分為五個(gè)模塊進(jìn)行設(shè)計(jì)開(kāi)發(fā): 1. 登陸、注冊(cè)模塊:實(shí)現(xiàn)用戶(hù)注冊(cè)賬號(hào),登陸功能。拓展:實(shí)現(xiàn)自動(dòng)登陸,掉線(xiàn) 自動(dòng)重連。 2. 會(huì)話(huà)界面:顯示當(dāng)前會(huì)話(huà)列表,管理會(huì)話(huà)列表,實(shí)現(xiàn)會(huì)話(huà)的創(chuàng)建,刪除。 3. 好友管理界面:顯示當(dāng)前好友,管理好友列表,實(shí)現(xiàn)好友的添加,刪除。查看 好友信息,修改備注。 4. 設(shè)置界面:根據(jù)個(gè)人的喜好對(duì)于系統(tǒng)設(shè)置進(jìn)行修改,包括新消息提醒,聊天設(shè) 置及退出登陸按鈕。 5. 通訊模塊:負(fù)責(zé)用戶(hù)之間的數(shù)據(jù)交互,實(shí)現(xiàn)即時(shí)通訊。 服務(wù)器端:采用環(huán)信

49、云作為服務(wù)器,允許多個(gè)客戶(hù)端同時(shí)登錄并且連接到一個(gè)服 務(wù)器上。服務(wù)器對(duì)每個(gè)客戶(hù)端進(jìn)行驗(yàn)證,為通過(guò)驗(yàn)證的客戶(hù)端創(chuàng)建會(huì)話(huà),客戶(hù)端與服 務(wù)器之間的通訊就在該會(huì)話(huà)下進(jìn)行。 3.4 網(wǎng)絡(luò)通信網(wǎng)絡(luò)通信 2.3.4 網(wǎng)絡(luò)協(xié)議 tcp/ip是“transmission control protocol/internet protocol”的簡(jiǎn)寫(xiě),中文譯名為傳輸 控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議)協(xié)議, tcp/ip(傳輸控制協(xié)議/網(wǎng)間協(xié)議)是一種網(wǎng)絡(luò)通信 協(xié)議,它規(guī)范了網(wǎng)絡(luò)上的所有通信設(shè)備,尤其是一個(gè)主機(jī)與另一個(gè)主機(jī)之間的數(shù)據(jù)往 來(lái)格式以及傳送方式。tcp/ip是internet的基礎(chǔ)協(xié)議,也是一種電腦數(shù)據(jù)打包和尋 址

50、的標(biāo)準(zhǔn)方法。在數(shù)據(jù)傳送中,可以形象地理解為有兩個(gè)信封,tcp和ip就像是信封, 要傳遞的信息被劃分成若干段,每一段塞入一個(gè)tcp信封,并在該信封面上記錄有分 段號(hào)的信息,再將tcp信封塞入ip大信封,發(fā)送上網(wǎng)。在接受端,一個(gè)tcp軟件包收集 信封,抽出數(shù)據(jù),按發(fā)送前的順序還原,并加以校驗(yàn),若發(fā)現(xiàn)差錯(cuò),tcp將會(huì)要求重 發(fā)。因此,tcp/ip在internet中幾乎可以無(wú)差錯(cuò)地傳送數(shù)據(jù)。 對(duì)普通用戶(hù)來(lái)說(shuō),并 不需要了解網(wǎng)絡(luò)協(xié)議的整個(gè)結(jié)構(gòu),僅需了解ip的地址格式,即可與世界各地進(jìn)行網(wǎng)絡(luò) 通信。 大致可分為四層,每一層負(fù)責(zé)不同的功能: 1 鏈路層,有時(shí)也稱(chēng)作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中

51、的設(shè)備驅(qū) 動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介) 的物理接口細(xì)節(jié)。 2網(wǎng)絡(luò)層,有時(shí)也稱(chēng)作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的選路。 在 tcp/ip 協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括 ip 協(xié)議(網(wǎng)際協(xié)議) ,icmp 協(xié)議(internet 互聯(lián) 網(wǎng)控制報(bào)文協(xié)議) ,以及 igmp 協(xié)議(internet 組治理協(xié)議) 。 3傳輸層,主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。在 tcp/ip 協(xié)議族 中,有兩個(gè)互不相同的傳輸協(xié)議: tcp(傳輸控制協(xié)議)和 udp(用戶(hù)數(shù)據(jù)報(bào)協(xié)議) 。 tcp 為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序

52、交給它 的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認(rèn)接收到的分組,設(shè)置發(fā)送最后確認(rèn)分 組的超時(shí)時(shí)鐘等。由于運(yùn)輸層提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略 所有這些細(xì)節(jié)。 而另一方面, udp 則為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù)。它只是把稱(chēng)作數(shù)據(jù)包的 分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。任何必需的 可靠性必須由應(yīng)用層來(lái)提供。 這兩種傳輸層協(xié)議分別在不同的應(yīng)用程序中有不同的用途,這一點(diǎn)將在后面看到。 4 應(yīng)用層負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的 tcp/ip 實(shí)現(xiàn)都會(huì)提供 下面這些通用的應(yīng)用程序: telnet 遠(yuǎn)程登錄。 ftp 文件傳輸協(xié)議。 smtp

53、簡(jiǎn)單郵件傳送協(xié)議。 snmp 簡(jiǎn)單網(wǎng)絡(luò)治理協(xié)議。 另外還有許多其他應(yīng)用,在后面章節(jié)中將介紹其中的一部分。 假設(shè)在一個(gè)局域網(wǎng)( lan)如以太網(wǎng)中有兩臺(tái)主機(jī),二者都運(yùn)行 ftp 協(xié)議。 這里,我們列舉了一個(gè) ftp 客戶(hù)程序和另一個(gè) ftp 服務(wù)器程序。大多數(shù)的網(wǎng)絡(luò)應(yīng) 用程序都被設(shè)計(jì)成客戶(hù)服務(wù)器模式。服務(wù)器為客戶(hù)提供某種服務(wù),在本例中就是訪(fǎng) 問(wèn)服務(wù)器所在主機(jī)上的文件。在遠(yuǎn)程登錄應(yīng)用程序 telnet 中,為客戶(hù)提供的服務(wù)是登 錄到服務(wù)器主機(jī)上。 在同一層上,雙方都有對(duì)應(yīng)的一個(gè)或多個(gè)協(xié)議進(jìn)行通信。例如,某個(gè)協(xié)議答應(yīng) tcp 層進(jìn)行通信,而另一個(gè)協(xié)議則答應(yīng)兩個(gè) ip 層進(jìn)行通信。 我們注重到應(yīng)用程序

54、通常是一個(gè)用戶(hù)進(jìn)程,而下三層則一般在(操作系統(tǒng))內(nèi)核 中執(zhí)行。盡管這不是必需的,但通常都是這樣處理的,例如 u n i x 操作系統(tǒng)。 頂層與下三層之間還有另一個(gè)要害的不同之處。應(yīng)用層關(guān)心的是應(yīng)用程序的細(xì)節(jié), 而不是數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸活動(dòng)。下三層對(duì)應(yīng)用程序一無(wú)所知,但它們要處理所有的 通信細(xì)節(jié)。 了四種不同層次上的協(xié)議。ftp 是一種應(yīng)用層協(xié)議, tcp 是一種運(yùn)輸層協(xié)議,ip 是一種網(wǎng)絡(luò)層協(xié)議,而以太網(wǎng)協(xié)議則應(yīng)用于鏈路層上。tcp/ip 協(xié)議族是一組不同的協(xié) 議組合在一起構(gòu)成的協(xié)議族。盡管通常稱(chēng)該協(xié)議族為 tcp/ip,但 tcp 和 ip 只是其中 的兩種協(xié)議而已(該協(xié)議族的另一個(gè)名字是

55、internet 協(xié)議族(internet protocol suite)) 。 網(wǎng)絡(luò)接口層和應(yīng)用層的目的是很顯然的前者處理有關(guān)通信媒介的細(xì)節(jié)(以太網(wǎng)、 令牌環(huán)網(wǎng)等) ,而后者處理某個(gè)特定的用戶(hù)應(yīng)用程序( ftp、telnet 等) 。但是,從表 面上看,網(wǎng)絡(luò)層和運(yùn)輸層之間的區(qū)別不那么明顯。為什么要把它們劃分成兩個(gè)不同的 層次呢?為了理解這一點(diǎn),我們必須把視野從單個(gè)網(wǎng)絡(luò)擴(kuò)展到一組網(wǎng)絡(luò)。 在 80 年代,網(wǎng)絡(luò)不斷增長(zhǎng)的原因之一是大家都意識(shí)到只有一臺(tái)孤立的計(jì)算機(jī)構(gòu)成 的“孤島”沒(méi)有太大意義,于是就把這些孤立的系統(tǒng)組在一起形成網(wǎng)絡(luò)。隨著這樣的發(fā) 展,到了 90 年代,我們又逐漸熟悉到這種由單個(gè)網(wǎng)絡(luò)構(gòu)

56、成的新的更大的“島嶼”同樣沒(méi) 有太大的意義。于是,人們又把多個(gè)網(wǎng)絡(luò)連在一起形成一個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò),或稱(chēng)作互連 網(wǎng)( internet )。一個(gè)互連網(wǎng)就是一組通過(guò)相同協(xié)議族互連在一起的網(wǎng)絡(luò)。 構(gòu)造互連網(wǎng)最簡(jiǎn)單的方法是把兩個(gè)或多個(gè)網(wǎng)絡(luò)通過(guò)路由器進(jìn)行連接。它是一種非 凡的用于網(wǎng)絡(luò)互連的硬件盒。路由器的好處是為不同類(lèi)型的物理網(wǎng)絡(luò)提供連接:以太 網(wǎng)、令牌環(huán)網(wǎng)、點(diǎn)對(duì)點(diǎn)的鏈接和 fddi(光纖分布式數(shù)據(jù)接口)等等。 這些盒子也稱(chēng)作 ip 路由器(ip router) ,但我們這里使用路由器( router )這個(gè)術(shù)語(yǔ)。 從歷史上說(shuō),這些盒子稱(chēng)作網(wǎng)關(guān)(gateway) ,在很多 tcp/ip 文獻(xiàn)中都使用這個(gè)術(shù)語(yǔ)

57、。 現(xiàn)在網(wǎng)關(guān)這個(gè)術(shù)語(yǔ)只用來(lái)表示應(yīng)用層網(wǎng)關(guān):一個(gè)連接兩種不同協(xié)議族的進(jìn)程(例如, tcp/ip 和 ibm 的 sna) ,它為某個(gè)特定的應(yīng)用程序服務(wù)(經(jīng)常是電子郵件或文件傳輸) 。 互連網(wǎng):一個(gè)以太網(wǎng)和一個(gè)令牌環(huán)網(wǎng),通過(guò)一個(gè)路由器互相連接。盡管這里是兩 臺(tái)主機(jī)通過(guò)路由器進(jìn)行通信,實(shí)際上以太網(wǎng)中的任何主機(jī)都可以與令牌環(huán)網(wǎng)中的任何 主機(jī)進(jìn)行通信。 我們可以劃分出端系統(tǒng)( end system ) (兩邊的兩臺(tái)主機(jī))和中間系統(tǒng) (intermediate system) (中間的路由器) 。應(yīng)用層和運(yùn)輸層使用端到端(end-to-end)協(xié) 議。在圖中,只有端系統(tǒng)需要這兩層協(xié)議。但是,網(wǎng)絡(luò)層提供的卻

58、是逐跳(hop-by- hop)協(xié)議,兩個(gè)端系統(tǒng)和每個(gè)中間系統(tǒng)都要使用它。 在 tcp/ip 協(xié)議族中,網(wǎng)絡(luò)層 ip 提供的是一種不可靠的服務(wù)。也就是說(shuō),它只是 盡可能快地把分組從源結(jié)點(diǎn)送到目的結(jié)點(diǎn),但是并不提供任何可靠性保證。而另一方 面, tcp 在不可靠的 ip 層上提供了一個(gè)可靠的運(yùn)輸層。為了提供這種可靠的服務(wù), tcp 采用了超時(shí)重傳、發(fā)送和接收端到端的確認(rèn)分組等機(jī)制。由此可見(jiàn),運(yùn)輸層和網(wǎng) 絡(luò)層分別負(fù)責(zé)不同的功能。 從定義上看,一個(gè)路由器具有兩個(gè)或多個(gè)網(wǎng)絡(luò)接口層(因?yàn)樗B接了兩個(gè)或多個(gè) 網(wǎng)絡(luò)) 。任何具有多個(gè)接口的系統(tǒng),英文都稱(chēng)作是多接口的( multihomed )。一個(gè)主機(jī)也 可

59、以有多個(gè)接口,但一般不稱(chēng)作路由器, 除非它的功能只是單純地把分組從一個(gè)接口傳 送到另一個(gè)接口。同樣,路由器并不一定指那種在互聯(lián)網(wǎng)中用來(lái)轉(zhuǎn)發(fā)分組的非凡硬件 盒。大多數(shù)的 tcp/ip 實(shí)現(xiàn)也答應(yīng)一個(gè)多接口主機(jī)來(lái)?yè)?dān)當(dāng)路由器的功能,但是主機(jī)為此 必須進(jìn)行非凡的配置。在這種情況下,我們既可以稱(chēng)該系統(tǒng)為主機(jī)(當(dāng)它運(yùn)行某一應(yīng) 用程序時(shí),如 ftp 或 telnet) ,也可以稱(chēng)之為路由器(當(dāng)它把分組從一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另 一個(gè)網(wǎng)絡(luò)時(shí)) 。在不同的場(chǎng)合下使用不同的術(shù)語(yǔ)。 互聯(lián)網(wǎng)的目的之一是在應(yīng)用程序中隱藏所有的物理細(xì)節(jié)。雖然這一點(diǎn)在圖 1 - 3 由 兩個(gè)網(wǎng)絡(luò)組成的互聯(lián)網(wǎng)中并不很明顯,但是應(yīng)用層不能關(guān)心(也不關(guān)

60、心)一臺(tái)主機(jī)是 在以太網(wǎng)上,而另一臺(tái)主機(jī)是在令牌環(huán)網(wǎng)上,它們通過(guò)路由器進(jìn)行互連。隨著增加不 同類(lèi)型的物理網(wǎng)絡(luò),可能會(huì)有 20 個(gè)路由器,但應(yīng)用層仍然是一樣的。物理細(xì)節(jié)的隱藏 使得互聯(lián)網(wǎng)功能非常強(qiáng)大,也非常有用。 連接網(wǎng)絡(luò)的另一個(gè)途徑是使用網(wǎng)橋。網(wǎng)橋是在鏈路層上對(duì)網(wǎng)絡(luò)進(jìn)行互連,而路由 器則是在網(wǎng)絡(luò)層上對(duì)網(wǎng)絡(luò)進(jìn)行互連。網(wǎng)橋使得多個(gè)局域網(wǎng)(lan)組合在一起,這樣 對(duì)上層來(lái)說(shuō)就似乎是一個(gè)局域網(wǎng)。 tcp/ip 傾向于使用路由器而不是網(wǎng)橋來(lái)連接網(wǎng)絡(luò),因此我們將著重介紹路由器。 文獻(xiàn)perlman 1992的第 1 2 章對(duì)路由器和網(wǎng)橋進(jìn)行了比較 2.3.4 gprs 和 intenet 的連接 在移動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論