freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android系統(tǒng)的即時通信系統(tǒng)研究學(xué)士學(xué)位論文-文庫吧資料

2025-07-04 00:55本頁面
  

【正文】 采用System.out.println()語句向控制臺打印輸出日志信息,而在較大的項目中,往往是使用專門的日志組件類,利用日志類在程序中輸出日志信息。在Eclipse中點擊WoLiaoClient右鍵Run AsAndroid Application,彈出Android的虛擬機,: Android虛擬機: 運行狀態(tài)顯示圖在這里需要介紹一下日志管理,日志信息的管理在軟件開發(fā)過程中扮演了十分重要的角色。在Eclipse中點擊WoLiaoServersrc,右鍵Run AsJava Application,表明服務(wù)器正常運行。本系統(tǒng)的即時通信服務(wù)器主要實現(xiàn)了以下幾個功能:a) 管理與數(shù)據(jù)庫的連接和與數(shù)據(jù)庫信息的交流;b) 響應(yīng)客戶端的各類請求。a) 用戶注冊模塊:主要功能是注冊一個新用戶,讓新用戶能夠登錄服務(wù)器并可以與 自己的好友進行即時通信;b) 用戶登錄模塊:主要功能是登錄服務(wù)器并與好友進行通信;c) 好友列表顯示模塊:主要是獲取用戶的好友列表及與好友聊天記錄,以便與好友進行通信;d) 聊天模塊(消息發(fā)送、消息接收):主要功能是給好友發(fā)送消息并能接收好友發(fā)送來的消息;e) 找朋友模塊:通過查找用戶名,查看用戶信息及添加好友;f) 設(shè)置模塊:用戶個人信息的更新及保存,退出系統(tǒng)。用戶發(fā)送請求給服務(wù)器端,服務(wù)器端接受包括認證、注冊等各種請求,請求包通過客戶端的連接發(fā)送給服務(wù)器端,經(jīng)過處理接收到的請求包、認證成功、返回用戶的好友列表及聊天信息等??蛻舳伺c好友連接和通信是通過服務(wù)器端來完成的,所有的請求必須都經(jīng)過服務(wù)器 端處理。 客戶端基本通信流程設(shè)計向用戶顯示登錄/注冊功能的窗口:(1)用戶在登錄框中輸入用戶名和密碼,使客戶端和服務(wù)器開啟一個會話,建立連接與服務(wù)器通信,一旦通過以上驗證程序客戶端將與服務(wù)器建立連接,然后開始實現(xiàn)通信;(2)用戶成功登錄后,顯示主窗口,其中將顯示用戶的好友,以及與好友之間的聊天記錄;(3)用戶登錄之后,客戶端與服務(wù)器建立TCP套接字連接,刷新客戶端界面完成用戶請求的功能,所有響應(yīng)由相應(yīng)模塊處理。 移動客戶端設(shè)計系統(tǒng)移動客戶端采用的是MVC的設(shè)計模式,主要是將視圖層、控制邏輯層以及數(shù)據(jù)模型層進行分離,實現(xiàn)客戶端程序的高內(nèi)聚,低耦合,并且有效的提高了代碼的重用性,大大降低了系統(tǒng)的維護成本。其中客戶端提供了常用的即時通信系統(tǒng)服務(wù)包括用戶注冊、用戶登錄、好友列表顯示、文本信息收發(fā)、語音圖片收發(fā)、查找好友,設(shè)置等等。當客戶端發(fā)出連接請求到服務(wù)器,服務(wù)器對每個客戶端的連接進行認證,認證通過的客戶端能進行彼此通信。客戶端:基于Android平臺進行開發(fā)的,通過服務(wù)器實現(xiàn)Android客戶端之間的即時通信,進行即時通信時由客戶端負責向服務(wù)器發(fā)起創(chuàng)建連接請求。 系統(tǒng)總體架構(gòu)設(shè)計本系統(tǒng)采用客戶端(C)/服務(wù)器(S)架構(gòu)的體系結(jié)構(gòu),具有客戶端和服務(wù)器兩部分。系統(tǒng)采用C/S 結(jié)構(gòu),客戶端是基于Android手機操作系統(tǒng)開發(fā)的即時通信軟件,該即時通信軟件采用 Java編程語言開發(fā)和MVC的設(shè)計模式,并采用自主設(shè)計的服務(wù)器和MySQL數(shù)據(jù)庫構(gòu)建。 頂層數(shù)據(jù)流圖 一層數(shù)據(jù)流圖,更詳細的描述了數(shù)據(jù)的傳輸。 系統(tǒng)功能需求本系統(tǒng)主要通過客戶端,服務(wù)器端來實現(xiàn)即時通信的基本功能。因此,本系統(tǒng)在運行上是可行的。將Eclipse軟件作為基本的開發(fā)工具,Android SDK以插件形式存在于Eclipse中。Java語言提供完善的指令控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能的系統(tǒng)提供了保障,保證了代碼的模塊化要求。 3 系統(tǒng)需求分析 可行性分析經(jīng)濟可行性:由于本系統(tǒng)的主要背景是畢業(yè)課程設(shè)計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,只在注重自身水平的提高,對自身的經(jīng)濟要求也不高,只要有一臺能運行Eclipse軟件以及Android虛擬機的電腦即可以進行本課題的開發(fā),所以不用考慮經(jīng)濟問題。 半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務(wù)從收到SYN包到確認這個報文無效的最長時間,該時間值是所有重傳請求包的最長等待時間總和。SYNACK 重傳次數(shù) 服務(wù)器發(fā)送完SYN-ACK包,如果未收到客戶確認包,服務(wù)器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數(shù)超過系統(tǒng)規(guī)定的最大重傳次數(shù),系統(tǒng)將該連接信息從半連接隊列中刪除。這些條目所標識的連接在服務(wù)器處于Syn_RECV狀態(tài),當服務(wù)器收到客戶的確認包時,刪除該條目,服務(wù)器進入ESTABLISHED狀態(tài)。第一次握手:建立連接時,客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進入SYN_SEND狀態(tài),等待服務(wù)器確認; 第二次握手:服務(wù)器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進入SYN_RECV狀態(tài); 第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進入ESTABLISHED狀態(tài),完成三次握手。主動發(fā)起連接建立的應(yīng)用進程叫做客戶(client),而被動等待連接建立的應(yīng)用進程叫做服務(wù)器(server)。(3)能夠?qū)\輸實體資源(如緩存大小、連接表中的項目等)進行分配。在連接建立過程中要解決以下三個問題:(1)要使每一方都能夠確知對方的存在。因此,運輸連接就有三個階段,即連接建立、數(shù)據(jù)傳送和連接釋放。運輸連接時用來傳送TCP報文的。 大多數(shù)用戶為了削減開銷,專有網(wǎng)絡(luò)被取消。 IP包的間接開銷很小,少于1%,這樣在成本上非常有競爭性。 專有網(wǎng)絡(luò)受到壓制。 用IP取代專有服務(wù)的需求出現(xiàn),經(jīng)常是一個用戶要求。隧道方式最初可能非常沒有效率,因為電子郵件和聊天只需要很低的帶寬。如果它工作很好,用戶將接受它。數(shù)據(jù)能夠用于任何目的,并且能夠很輕易地取代以前由專有數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)。協(xié)議的優(yōu)勢在長期的發(fā)展過程中,IP逐漸取代其他網(wǎng)絡(luò)。使用UDP的服務(wù)包括NTP(網(wǎng)絡(luò)時間協(xié)議)和DNS(DNS也使用TCP)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢——應(yīng)答的服務(wù),例如NFS。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。TCP數(shù)據(jù)包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向“上”傳送到TCP層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。 網(wǎng)絡(luò)接口層(主機網(wǎng)絡(luò)層):接收IP數(shù)據(jù)包并進行傳輸,從網(wǎng)絡(luò)上接收物理幀,抽取IP數(shù)據(jù)報轉(zhuǎn)交給下一層,對實際的網(wǎng)絡(luò)媒體的管理,定義如何使用實際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。這四層分別為: 應(yīng)用層:應(yīng)用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠程訪問協(xié)議(Telnet)等。這七層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的七層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。對數(shù)據(jù)存儲中數(shù)據(jù)的讀寫操作應(yīng)該通過適當?shù)腃ontent Provider傳遞.而不是直接訪問文件或數(shù)據(jù)庫。●通過Content Provider進行數(shù)據(jù)管理Content Provider是Android的數(shù)據(jù)存儲抽象機制。與服務(wù)一樣。服務(wù)是沒有UI的Android應(yīng)用程序?!穹?wù)(Service)和接收器(Receiver)與其他多任務(wù)計算環(huán)境一樣,Android可以在后臺運行著一些應(yīng)用程序。視圖是在一個XML文件中定義的。選擇一種布局之后.就可以用各個視圖顯示UI?!褚晥D(View)Android活動通過視圖顯示UI元素。Intent是Google在Android體系結(jié)構(gòu)中引入的一種新穎的設(shè)計元素,Intent是一種構(gòu)造,應(yīng)用程序可以通過它發(fā)出相應(yīng)的請求。如果應(yīng)用程序只需切換到新的活動,使用前一個方法;如果需要異步的調(diào)用/響應(yīng)模式,就使用后一個方法。這些活動通常與應(yīng)用程序中的屏幕形成一對一的關(guān)系。視圖類實現(xiàn)各種UI元素,如文本框、標簽、按鈕等?!窕顒?Activity)活動是最常用的Android應(yīng)用程序形式。這些都可以通過SDK附帶的文檔查詢到。Android應(yīng)用程序類型分析Android的API主要包含幾個部分:Views、Intents、Activity、Permissions、Resource Type、Services、Notifications、Content Providers以及XML支持。Linux內(nèi)核也同時作為硬件和軟件棧之間的抽象層。Dalvik虛擬機依賴于linux內(nèi)核的一些功能,比如線程機制和底層內(nèi)存管理機制。Dalvik虛擬機執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。每一個Android應(yīng)用程序都在它自己的進程中運行,都擁有一個獨立的Dalvik虛擬機實例。這些功能通過Android應(yīng)用框架展現(xiàn)給開發(fā)人員?!耖_發(fā)庫(Libraries)Android包含一套C/C++開發(fā)庫,主要包括:libc、Media Framework、WebKit、SGL、OpenGL ES、FreeType、SQLite等。216。216。216。216。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng).其中包括:216。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用,任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。所有的應(yīng)用程序都是使用Java語言編寫的。Android應(yīng)用程序框架Android平臺的架構(gòu)從上至下包含了五個部分:應(yīng)用程序(Applications)、應(yīng)用框架(Application Framework)、開發(fā)庫(Libraries)、運行時環(huán)境(Android Runtime)以及Linux內(nèi)核(Linux Kernel),: Android應(yīng)用程序框架圖●應(yīng)用程序(Application)Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包括客戶端,SMS短消息程序。多媒體方面對常見的音頻、視頻和圖片格式提供支持;基于Eclipse的完整開發(fā)環(huán)境;大量可用的類庫和應(yīng)用軟件,例如瀏覽器WebKit,數(shù)據(jù)庫SQLite;經(jīng)過Google改進和調(diào)優(yōu)的Linux Kernel;Android平臺大量應(yīng)用了開源社區(qū)的成果,并將其針對移動設(shè)備進行了一系列地優(yōu)化。Android SDK提供了在Android平臺上使用Java語言進行Android應(yīng)用開發(fā)必須的工具和API接口。Java取消了C語言的結(jié)構(gòu)、指針、define語句、多重繼承、goto語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動回收不用的內(nèi)存空間。(4)分布式:Java建立在TCP/IP網(wǎng)絡(luò)平臺上,提供了用HTTP和FTP協(xié)議傳送和接收信息的庫函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。它提供了安全管理器,防止程序的非法訪問。Java的數(shù)據(jù)類型與機器無關(guān)。:(1)平臺無關(guān)性:Java引進虛擬機原理,并運行于虛擬機,實現(xiàn)不同平臺之間的Java接口。盡管可以不用這兩個關(guān)鍵字修飾 ,但必須給常量賦初值;(2)接口中的方法均為public,在實現(xiàn)接口類中,實現(xiàn)方法必須用public關(guān)鍵字;(3)如果使用public來修飾接口,則接口必須與文件名相同。 (1)一個對象是常量,不代表不能轉(zhuǎn)變對象的成員,仍可以對其成員進行操作;(2)常量在使用前必須賦值,但除了在聲明的同時初始化外,就只能在構(gòu)造方法中初始化;(3)final修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法);(4)如果聲明一個類為final,則所有的方法均為final,無論其是否被final修飾,但數(shù)據(jù)成員可為final也可不是。 (1)抽象類不能創(chuàng)建對象;(2)如果一個類中一個方法為抽象方法,則這個類必須為abstract抽象類;(3)繼承抽象類的類在類中必須實現(xiàn)抽象類中的抽象方法;(4)抽象類中可以有抽象方法,也可有非抽象方法。 (1)類可以沒有構(gòu)造方法,但如果有多個構(gòu)造方法,就應(yīng)該要有默認的構(gòu)造方法,否則在繼承此類時,需要在子類中顯式調(diào)用父類的某一個非默認的構(gòu)造方法了;(2)在一個構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語句必須是第一條語句。,對象的初始化過程(1)主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private;(2)主類靜態(tài)成員的初始化;(3)主類的超類由高到低進行默認構(gòu)造方法的調(diào)用。 (1)非靜態(tài)對象的初始化是在在創(chuàng)建對象時,對象所在類的所有數(shù)據(jù)成員會首先進行初始化,在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對象, 構(gòu)造方法的作用就是初始化;(2)靜態(tài)對象的初始化是在程序中主類的靜態(tài)變量會在main方法執(zhí)行前初始化。由于這四個軟件都是免費或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩(wěn)定、免費的網(wǎng)站系統(tǒng)。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1