基于android平臺的聊天軟件設計與實現-畢業論文設計_第1頁
基于android平臺的聊天軟件設計與實現-畢業論文設計_第2頁
基于android平臺的聊天軟件設計與實現-畢業論文設計_第3頁
基于android平臺的聊天軟件設計與實現-畢業論文設計_第4頁
基于android平臺的聊天軟件設計與實現-畢業論文設計_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

目錄TOC\o"1-3"\h\u第一章緒論 11.1聊天軟件背景 11.2課題意義 11.3研究內容 21.4設計思想 2第二章Android聊天軟件可行性分析 32.1Android行業概述 32.1.1認識Android 32.1.2Android開發概述 32.1.3Android的Listview介紹 32.2軟件開發的工具和環境 42.2.1編程語言 42.2.2技術路線 42.2.3用戶要求 52.2.4運行環境 52.3基于數據庫實現設計 52.3.1常用的數據庫軟件 52.3.2消息推送原理 62.3.3數據庫表 62.3.4數據管理要求 7第三章基于Android平臺的聊天系統設計 83.1聊天軟件功能 83.1.1功能描述 83.1.2界面布局設計 83.1.3消息推送原理 83.2系統架構圖 93.2.1系統邏輯流程圖 93.3.2系統物理架構圖 93.3接口設計 103.3.1用戶接口 103.3.2外部接口 103.3.3內部接口 11第四章基于Android平臺的聊天系統實現 114.1服務端模塊 114.1.1登錄 114.1.2注冊 114.1.3聊天 124.1.4下線 124.2客戶端模塊 134.2.1注冊/登錄界面 134.2.2聊天界面 154.2.3好友信息界面 164.2.4設置界面 174.2.5聊天記錄 194.2.6退出程序 20第五章基于Android平臺的聊天系統系統測試 21第六章總結與展望 21致謝 23參考文獻 241.緒論由于現代技術的不斷加深以及信息化的廣泛普及,移動通信作為一種新興技術,近年來得到了潛移默化的普及和深入,移動網絡上的各種應用層出不窮,給各年齡段、各行業階層的用戶提供了不同的個性化的服務。聊天軟件要在瞬息萬變的信息時代生存,適應激烈競爭的市場,必須提高市場競爭力,就要對市場作充分的調查和詳細的研究,同時也要有好的客戶服務。移動網絡在線聊天系統對于人們來說就是一種交流和通信的平臺,本系統做到了信息的及時的反饋,即時的處理并作出相應的行動。移動網絡通信是網絡應用的重要體現方面。移動網絡即時通信則是網絡應用的重要體現方面。本聊天系統主要適用于客戶端與客戶端通過服務器的信息傳輸。本聊天程序使跨距離的交流更加方便和快捷,更能高效率的體現現代即時通信的特點。1.1聊天軟件背景我們進入了一個信息高速發展的時代,人與人之間不再只依賴于面對面,或者依靠電話的聯系,信息的快速傳遞不僅能夠節省電話產生的費用,而且還有助于人們保持固定長遠的聯系。目前,我們常用的聊天軟件有QQ,微信,微博等。在移動互聯網時代,面對層出不窮的軟件開發,我們需要基于移動終端開發出新型的聊天軟件,來滿足大眾的需求,我們都熟悉且常用的移動設備終端操作系統有ios,android,symbian等等,最普及的是Android。本課題采用聊天軟件的C/S架構:采用客戶端/服務器形式,用戶使用過程中需要下載安裝客戶端軟件,典型的代表有:QQ、微信、微博、YY、MSN等[1]。1.2課題意義在互聯網飛速發展的今天,“網蟲”在互聯網上聊天已經成為一種習慣,IM程序設計就是一個多點通信程序,C/S體系架構在軟件開發中越來越流行,應用軟件使用這種架構可以充分發揮數據庫系統優勢,速度更快,從用戶體驗的角度來更好的滿足人們對聊天軟件的需求,有一個前提,頻寬充足,大部分IM服務事實上提供實時通訊的能力。實時傳訊與電子郵件最大的不同在于不用等候,不需要每隔兩分鐘就按一次“傳送與接收”[2],只要兩個人都同時在線,就能像多媒體電話一樣,傳送文字、檔案、聲音、影像給對方,只要有網絡,無論對方隔得多遠都沒有距離[3]。本論文將對基于Android的聊天軟件系統進行可行性分析、實現設計、界面設計、關鍵代碼編寫、應用功能優化、系統測試等工作,實現登錄功能、向XMPP服務器發送信息包功能、用戶好友通訊錄獲取及相關管理功能、個人信息管理功能、好友文字和語音消息發送功能、圖片文件、位置發送功能。因此本課題具有重要的實際意義和應用價值。1.3研究內容主要研究內容:基于Android平臺的聊天系統主要研究內容是服務器怎么樣對客戶端信息的識別,傳輸,怎么去區分信息類型,實現用戶方便快捷使用本操作系統以及Android頁面布局的設計內容。第1章:主要陳述聊天軟件的的背景和來源,以及所開發的軟件實際意義和現實意義,介紹了Android聊天系統的工作原理,最后說明論文主要工作。第2章:系統相關技術可行性分析,主要介紹軟件開發所使用的工具以及開發環境,包括安卓的行業概述,操作系統的架構和應用程序的分析、常見的數據庫以及數據管理要求。第3章:系統設計,對軟件的功能進行概要分析,同時從系統邏輯和物理流程圖來清晰的展現全局,系統所包含的模塊各個功能進行詳細的介紹。第4章:系統實現,從服務端和客戶端兩方面入手,主要對聊天、通訊錄、設置的功能模塊條目進行詳盡的介紹,以及功能和軟件實現的關鍵代碼的呈現。第5章:系統測試,主要陳述系統的測試用例以及系統的完成情況。第6章:總結與展望。主要介紹了項目完成經驗,存在的缺陷以及不足,以及對未來的展望。1.4設計思想本設計通過配置AndroidSDK、Eclipse、ADT插件、java來搭建Android的運行環境,Android程序開發過程中可以使用SQLite數據庫來實現程序的結構化數據存儲,所有的功能都基于數據庫實現,包括消息推送;通過不同的表關系來實現功能,設計實現的功能有用戶登錄、注冊,用戶與好友的一對一的聊天,添加,刪除好友,加入黑名單的功能,在Android手客戶端實現發送文字、圖片、位置、語音的功能。系統包括手機客戶端和服務端兩部分,服務器端采用了Bmbo云端服務器,利用數據庫保存用戶注冊的信息、通訊錄、聊天記錄、好友資料等等,客戶端實現各功能的可操作界面,并實現通過服務端達到與好友實時通信的功能。2.基于Android平臺的聊天系統可行性分析需求分析是軟件分析中的一個重要步驟。它的基本任務是要準確地分析出系統應用者的需要,以及系統目標必須具備哪些功能。這些功能必須準確地,完整地體現出用戶的要求。2.1Android概述2.1.1認識Android行業Android一詞的英文本義指‘機器人’,它是Google公司于2007年11月宣布的基于Linux平臺的開源手機操作系統,該平臺由操作系統,中間件,用戶界面和應用軟件組成,為移動終端打造的真正開放和完整的移動軟件平臺[4]。目前主流的應用在手機操作系統還有IOS,BlackBerry,Symbian.這些操作系統都大同小異,用于移動智能終端設備。2.1.2Android開發概述在Android平臺上,開發者可以根據用戶需求開發出豐富多彩的應用。Android的應用程序使用Java語言開發的,加上Android平臺提供了2D,3D的圖形支持,數據庫支持(SQLite),并且集成了瀏覽器[5]。基于Android的平臺,我們可以開發出各式各樣的應用,這些應用可以涉及視頻,游戲,音樂,辦公軟件等等,在此開放的平臺上,這一切都取決于用戶的需求和開發者的發揮和創意。2.2軟件開發的工具和環境開發環境:Eclipse開發語言:Java手機運行平臺:Android5.0以及上版本開發軟件所需插件:JDK、SDK2.2.1編程語言使用Java編程語言及數據庫技術相結合,編寫一個基于android端的移動聊天系統軟件。Java可運行于多個平臺,它是面向對象的程序設計語言,由語法,文件格式,虛擬機,應用程序接口四方面組成,可用來開發可靠地,要求嚴格的應用程序。編程的時候大小寫敏感,因此要注意,而對于類名來講,類名的首字母應該是大寫。源文件名必須與類名相同,Java編程語言的風格類似于C、C++語言,優勢就是它是一個面向對象的編程語言,開發者不用為內存管理而擔憂,在這個項目上,使用Java編程語言對于初學者來說是很好的選擇。2.2.2技術路線Eclipse可作為Java集成開發環境是一個基于Java語言的擴展并且源代碼開放開發平臺。Eclipse的本身是一個框架平臺和服務,支持眾多插件組件構建使得這套工具具有靈活性。盡管Eclipse是使用Java語言開發的,但是它的使用并不局限于Java語言;他支持諸如C/C++、COBOL和Eiffel等編程語言的插件都可用。AndroidSDK是以Java語言為基礎,也是一種軟件開發工具包。開發工程師來開發軟件應用,通過SDK提供的一些工具將其打包為Android平臺使用的apk文件,然后用內帶的模擬器來模擬和測試應用軟件在安卓平臺上的運行情況和效果。AndroidSDK指的是Android專屬的軟件開發工具包。下載好AndroidSDK后,開始安裝,AndroidSDK采用了Java語言,所以需要先安裝JDK,在這里我安裝的是JDK1.7。直接下載JDK安裝文件安裝更為方便。AndroidSDK不用安裝,下載后,直接解壓即可,將下載后的SDK的壓縮包解壓到適當的位置,就這么簡單;SDK安裝OK。使用Eclipse進行Android應用開發需要給Eclipse裝ADT插件,這樣Eclipse就可以和AndroidSDK進行連接,可以在Eclipse中啟動Android模擬器進行程序調試等ADT插件安裝這里不再贅述,也可以下載ADT的zip包安裝安裝完插件后,需要做一些簡單的配置:1、在Eclipse中,選擇Window-->Preference;2、從左側的菜單中,選擇Android項;3、設置SDKLocation,點Browse選擇SDK的安裝根目錄.2.2.3用戶要求對用戶沒有特定的要求,有無計算機專業知識都可以使用本軟件進行聊天,因此本系統會提供一個人性化,用戶易操作的界面,能實現最基礎的文字傳輸功能,還包括語音,圖片,位置的傳輸功能。用戶在客戶端運行聊天軟件時,通過判斷內部控制模塊是否存儲了已經配置好的用戶信息,若存在,則直接調用配置存儲過的用戶登錄信息進行網絡連接;若不存在,則系統判斷進入向導模式,提供用戶選擇登錄或是注冊。若用戶注冊過賬號,則可以直接到登錄界面填寫登錄信息進行登錄,如果用戶沒有賬號,則選擇注冊,到注冊界面進行注冊;登錄成功后,就會顯示聯系人列表,不成功時,可以點擊手動設置來配置一些登錄信息和網絡設置信息等[6]。2.2.4運行環境服務器方面要求雙核,CPU頻率大于2.0GHZ,內存大于1G,硬盤空間要求300G及以上,系統建議是Windows7。客戶端必須是Android系統且版本要在5.0的手機,運行內存1G以上。2.3基于數據庫實現設計2.3.1常用的數據庫軟件SQL數據庫:SQL是一種操作命令集專為數據庫而建立的,相對來說功能齊全,這種數據庫語言是一個SQL數據庫是表(Table)的集合,它由一個或多個SQL模式定義DB2數據庫:IBMDB2

是美國IBM公司開發的一套關系型數據庫管理系統,主要應用于大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用于所有常見的服務器操作系統平臺下。DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平臺無關的基本功能和SQL命令[8]。本設計數據庫采用SQLite數據庫,SQLite,是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。2.3.2消息推送原理所有的功能模板都基于數據庫實現,包括消息推送,接下來我將介紹推送功能的實現原理。安卓消息推送主要有三種方式:使用SMS服務,就是依靠服務器端發送短信廣播,通過手機客戶端監聽短信的廣播,通過系統對數據進行相應的處理,從而達到消息推送的方式。優勢就是省電,省流量。使用輪詢方式,客戶端從網絡中主動獲取數據。但是有一個缺點就是耗電、耗流量。輪詢方式方便于我們理解,實現也起來較為簡單,若只是做個試用的版本的情況下建議使用。但若是作為會一直在運行的應用,用很多種方法去優化,還是會比較耗費流量的,是因為運行過程中會一直獲取網絡中的數據。使用長連接方式,普遍來講,服務器端推送的數據的方式,一般都是用這種方式進行數據推送。優點是省流量、缺點是耗電。這里我們介紹一下工作原理,工作原理就是客戶端與服務器端會建立一條長時間的數據流連接,移動客戶端設備從建立起長鏈接開始一直在等待服務器端傳過來的數據。由于連接是持續不斷的,過程中也沒有數據流操作,所以這就是長鏈接方式的優勢之處,可以相對節省流量。可是又因為客戶端會一直保持數據在網絡中的連接,所以長鏈接的推送方式,原理上來講是比較耗費電量的。2.3.3數據庫表用戶的數據庫表字段名數據類型說明允許為空備注idInt主鍵NUserNamevarchar用戶名NPasswordvarchar密碼NTelvarchar電話YSexvarchar性別YEmailvarchar郵箱Y表2.1用戶的數據庫表聊天記錄數據庫表字段名數據類型說明允許為空備注dataidvarchar主鍵Nnamevarchar好友賬戶名Nimgvarchar好友頭像Ndatavarchar聊天記錄Ytimedatatime最后聊天時間Y表2.2聊天記錄數據庫表好友信息數據庫表字段名稱數據類型說明允許為空備注friendIDvarchar主鍵Nnamevarchar好友賬戶名Ndatavarchar聊天記錄Ytimedatatime最后聊天時間Y表2.3好友信息數據庫表2.3.4數據管理要求用戶賬號信息:用戶賬號,由于是String類型,可以為中文。聊天記錄信息:不能存在非法語言。用戶名信息:不能超過20個字符。密碼信息:不超過20個字符。3.基于Android平臺的聊天系統設計3.1聊天軟件功能3.1.1功能描述四種類型的消息:文本、聊天表情、圖片、語音、位置用戶管理功能:注冊、登錄好友管理功能:添加好友、刪除好友、獲取好友列表、黑名單管理、聊天記錄的本地化存儲。3.1.2界面布局設計界面布局是一個活動條目中對于用戶界面的架構設計,它通過存儲全部顯示給用戶的元素來定義界面布局結構。客戶端的用戶界面布局文件存放/res/layout中,用XML格式的布局文件定義應用程序默認的布局,包括將顯示在屏幕的元素和屬性。可以通過編程修改客戶端界面上對象的狀態,這種布局設計是非常重要的,其中也包括了系統定義在XML文件中的元素。3.1.3消息推送原理Java的Scoket網絡編程,Java服務端對Android端提交的數據進行處理然后發給客戶端進行顯示。多線程編程,每個正在系統上運行的程序都是一個進程。每個進程包含一到多個線程。進程也可能是整個程序或者是部分程序的動態執行,使用過程中用戶在客戶端首先將信息發送到服務器,服務器識別并解析信息,然后將信息轉發給相應的用戶,使用線程可以把占據長時間的程序中的人物放到后臺去處理,比如用戶點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度,程序的運行速度可能加快,用戶界面更加吸引人[9]。網絡編程,Android手機端將組裝好的數據包通過無線網絡發送到服務器,服務器讀取并解析數據包,組裝一個相應的回應數據庫并返回給Android端,以此達到通信的目的。3.2系統架構圖3.2.1系統邏輯流程圖用Visio結合聊天軟件所實現功能畫出以下流程圖:如圖3-1圖3-13.3.2系統物理架構圖系統設計的物理架構圖如圖3-2圖3-23.3接口設計3.3.1用戶接口本聊天軟件是基于Android聊天系統的應用程序,屬于在互聯網基礎上的聊天管理系統,用戶只需要在客戶端使用安卓智能手機打開應用軟件和進行操作,通過系統對用戶賬號驗證,就可以享受應用程序所擁有的功能。系統不需要額外的特殊命令和額外的客戶端,通過客戶端,輸入正確地址就可以訪問系統。3.3.2外部接口服務器程序可使用oracle提供的對SQL的接口,進行對數據庫的所有訪問。服務器程序上可使用oracle的數據庫對重要數據進行的備份,防止數據被破壞而無法恢復。在網絡軟件接口方面,使用socket傳輸用戶信息。3.3.3內部接口本系統的功能模塊是采用java面向對象編程的邏輯思想,通過接口實現模塊與模塊之間調用,增大了系統的穩定性從而減輕功能模塊之間的耦合性。模塊間的數據傳入是利用接口的調用,參數傳遞,接口返回值來達到傳遞數據的目的。模塊內部是采用函數調用,參數傳遞,返回值來實現模塊內部的數據傳遞。4.基于Android平臺的聊天系統實現4.1服務端模塊本設計服務器端采用了Bmbo云端服務器。Bmob是一個開發云存儲的移動應用軟件,在本設計中,Bmbo給聊天軟件添加了一個方便安全管理的后臺管理系統,適用于瀏覽終端保存客戶端產生的信息。在這個平臺上,注冊一個帳號之后,可以申請創建一個或者多個數據庫,獲得對應的密鑰,然后在后臺下載我們所需要的對應版本的SDK程序包并嵌入到軟件應用程序中,使用過程中可以對數據進行保存,修改等操作。這個云端服務器,對于本設計來說是很好的一個選擇,初學者來說使用起來較為容易,也比較方便。數據輸入的時候通過使用移動智能手機設備登錄,主界面為好友聊天界面,點擊好友與其進行聊天,系統會通過通信機制協議向服務端傳輸數據。數據輸出的時候服務端會將解析后的數據輸出到客戶端,通過判斷客戶端輸出數據類型,進行相應的消息反饋。4.1.1登錄客戶端輸入登錄賬號和密碼,服務端接收到登錄信息并檢查其是否正確,并向客戶端反饋登錄信息,若是信息正確。服務端就發送一個反饋數據給該用戶,并在此時給客戶端建立一個長鏈接,用于進行通信的基本操作,并將該用戶的狀態發給各在線用戶。同時在服務器端顯示出來。4.1.2注冊客戶端申請注冊賬號,將用戶賬號,密碼用一種普遍的加密手段打包,然后以通信協議的一種TCP方式發送到服務器上,接收服務器給定反饋的一個cookie(這個值一般是對應在服務器Session的一個驗證碼,里面可以包含失效時間)。此后每次用戶提交信息的行為,都可以以這個cookie作為判斷條件,保存該用戶賬號,同時將信息返回給客戶端。4.1.3聊天服務端創建一個ServerSocket對象,并讓這個對象在端口監聽,如果客戶端沒有發送數據,那么該線程就停滯不繼續,接收到客戶端發送的請求,然后識別轉發給消息指定的用戶。4.1.4下線服務端檢查是否有連接,并斷開與客戶端的長鏈接,記錄每一個用戶的狀態,當其他用戶需要讀取到改用戶的狀態,能準確讀取到用戶處于下線狀態,將此用戶下線消息發給各客戶端,并改寫用戶在服務器端的狀態[10]。4.2客戶端模塊登錄功能:建立與服務器的連接并登錄,能顯示登錄錯誤信息。界面顯示:主界面為好友聊天界面,顯示了已經參與會話的好友列表,子界面為好友資料以及刪除,加入黑名單的好友界面。聊天功能:與好友聊天時顯示在會話界面。只需要在輸入框中輸入文本信息點擊發送就可以與好友通信,還包括位置,圖片,語音的發送。聊天紀錄:保存聊天紀錄,也可以加載歷史記錄,當加載到第一次會話,提示“聊天記錄已經加載完了哦!”。信息提示:系統彈出信息提示到來信息,并播放音樂來提示。后臺運行:當用戶將客戶端進行后臺運行時,如果有消息傳輸過來,系統會直接通過廣播的形勢顯示消息的來源以及內容。4.2.1注冊/登錄界面登錄功能:客戶端通過賬號與密碼建立與服務器的連接,若賬號與密碼是正確的可以成功登陸,當然,該用戶的賬號與密碼可以存入數據庫中,退出登錄之后再啟動程序可以檢測是否存在配置文件從而自動登錄,若是沒有賬號,則可以注冊賬號。用戶在客戶端點擊應用程序圖標后啟動應用如圖4-1:圖4-1注冊/登錄界面關鍵代碼:publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉狀態欄 setContentView(R.layout.main); util=newSharePreferenceUtil(this,Constants.SAVE_USER); if(util.getisFirst()){ createShut();//創建快捷方式 moveSound(); } initView(); }4.2.2聊天界面在客戶端,通過創建Socket 來實現和服務器的連接,通過一個按鈕來實現客戶端向服務器發送消息,在接通后,TextView顯示來自服務器的消息。界面如圖4-2:圖4-2聊天界面關鍵代碼:privatevoidsendVoiceMessage(Stringlocal,intlength){ manager.sendVoiceMessage(targetUser,local,length,newUploadListener(){ @Override publicvoidonStart(BmobMsgmsg){ //TODOAuto-generatedmethodstub refreshMessage(msg); } @Override publicvoidonSuccess(){ mAdapter.notifyDataSetChanged(); } @Override publicvoidonFailure(interror,Stringarg1){ //TODOAuto-generatedmethodstub ShowLog("上傳語音->arg1:"+arg1); mAdapter.notifyDataSetChanged(); } }); }4.2.3好友信息界面顯示的條目:好友頭像、昵稱、賬號、性別,兩個按鈕-發起會話、黑名單,如果加入了黑名單,就不能聊天,通過一個布爾值判斷,單獨一張表存放黑名單。布爾值是“真”

True或“假”

False中的一個。動作腳本也會在適當時將值True和False轉換為1和0。布爾值經常與動作腳本語句中通過比較控制腳本流的邏輯運算符一起使用。界面如圖4-3:圖4-3好友信息界面關鍵代碼:privatevoidshowBlackDialog(finalStringusername){ DialogTipsdialog=newDialogTips(this,"加入黑名單","加入黑名單,你將不再收到對方的消息,確定要繼續嗎?","確定",true,true); dialog.SetOnSuccessListener(newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialogInterface,intuserId){ //添加到黑名單列表 userManager.addBlack(username,newUpdateListener(){ @Override publicvoidonSuccess(){ //TODOAuto-generatedmethodstub ShowToast("黑名單添加成功!"); btn_back.setVisibility(View.GONE); layout_black_tips.setVisibility(View.VISIBLE); //重新設置下內存中保存的好友列表 CustomApplcation.getInstance().setContactList( CollectionUtils.list2map(BmobDB.create(SetMyInfoActivity.this).getContactList())); } @Override publicvoidonFailure(intarg0,Stringarg1){ //TODOAuto-generatedmethodstub ShowToast("黑名單添加失敗:"+arg1); } }); } });4.2.4設置界面本界面的條目有:接收或者屏蔽消息,開啟聲音,開啟震動,退出登錄。界面如圖4-4:圖4-4設置界面關鍵代碼:publicvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); mSharedUtil=mApplication.getSpUtil(); } @Override publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer, BundlesavedInstanceState){ //TODOAuto-generatedmethodstub returninflater.inflate(R.layout.fragment_set,container,false); } @Override publicvoidonActivityCreated(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onActivityCreated(savedInstanceState); initView(); initData(); }4.2.5聊天記錄當用戶與好友進行聊天后。系統會自動將該好友加入最近聊天分組里面。且聊天記錄也會保存進相應的最近聊天界面內,聊天記錄是存在本地存儲里。如圖4-5:圖4-5聊天記錄關鍵代碼: publicvoidonRefresh(){ //TODOAuto-generatedmethodstub handler.postDelayed(newRunnable(){ @Override publicvoidrun(){ //TODOAuto-generatedmethodstub MsgPagerNum++; inttotal=BmobDB.create(ChatActivity.this).queryChatTotalCount(targetId); BmobLog.i("記錄總數:"+total); intcurrents=mAdapter.getCount(); if(total<=currents){ ShowToast("聊天記錄加載完了哦!"); }else{ List<BmobMsg>msgList=initMsgData(); mAdapter.setList(msgList); mListView.setSelection(mAdapter.getCount()-currents-1); } mListView.stopRefresh(); } },1000); }4.2.6退出程序再按一次返回鍵退出程序功能,在Application類(android的application類)中,寫一個布爾值默認為false,然后在Activity中重寫onKeyDown()方法,監聽如果用戶第一次點擊返回鍵,使用Handler發消息,通知修改布爾值為true;然后使用countDownTime()進行倒計時,如果在兩秒內用戶再次按下返回鍵,則所有Activity執行finish()方法(退出程序)。如圖4-6:圖4-6退出程序5.基于Android平臺的聊天系統系統測試系統測試是應用軟件最后的一個過程。應用程序運行時需要多次的測試來發現程序中存在的BUG,從而不斷的完善系統,服務更加人性化。經過對系統對服務端和客戶端的測試,首先服務器端軟件測試,測試服務器端服務是否能開啟,服務器端是否能對客戶端傳來的數據進行正確的解析,客戶端應用程序進行測試,移動智能終端設備界面是否能正確顯示,數據是否能準確收發,相應客戶端功能是否存在不足,最后結合客戶端與服務端一起測試,測試客戶端是否能與服務端連接,登錄,注冊,聊天等功能是否正常實現。

系統測試ID測試項目測試數據設計預期結果結論1用戶登錄正確的用戶名、密碼正確進入主界面完成測試2用戶登錄錯誤的用戶名、密碼無法進入主界面完成測試3用戶注冊正確數據注冊成功完成測試4用戶注冊非法數據注冊失敗完成測試5發送文本消息輸入數據點擊發送發送成功完成測試6發送圖片選擇圖片點擊發送發送成功完成測試7發送語音按住說話點擊發送發送成功完成測試8發送位置選擇位置點擊發送發送成功完成測試9刪除好友選中好友選擇刪除刪除成功完成測試表5.1表5-1系統功能測試詳細表6.總結與展望經過查閱相關資料和輔導老師陳理的悉心指導,我這個Android聊天軟件終于經過測試,一切順利,APP也成功的讓同學們試用,效果還不錯。我把這個聊天軟件取名為‘聊聊’,仿造了微信的應用基礎,但還是具備聊天軟件常見的功能,希望同學們在使用的過程中給我多提點意見讓我對自己的作品進行完善。從原理上來講,這種架構的聊天軟件開發起來不困難,但這里任然存在很多的問題等待著我去解決,比如說怎么樣提高用戶在使用過程中的趣味性,市場上無數的應用軟件伴隨著時代運營而生,只有不停的創新,才可以讓用戶擁有獨特的體驗,吸引更為廣泛的用戶群體,本文通過建立一個原型進行了技術方面的一些探索,通過這些探索我們有理由相信,建立基于移動網絡的聊天系統從生活上來說事必須的。從最開始的需求可行性分析,到系統設計,技術開發工具以及環境的配置,最后的軟件測試,整個過程都是很好的體驗,體會到做一個項目的不容易,本文還是存在很多需要修改的地方,今后一點點完善。集成多媒體的應用有著更強的吸引力,為用戶提供更多個性化的服務,將成為未來移動即時通信發展的一個必然趨勢[11]。致謝在這個梔子花開的時候,我們馬上就要結束四年的大學生活,一路上有開心,有眼淚,伴隨著歡笑與疼痛我們慢慢的在成長,大學是一個微社會,不僅教我們學習知識,還教會我們做人的道理,在這里,我非常感謝身邊的同學和老師,四年當中給與我的幫助和陪伴!本文是在陳理老師的指導下完成的。選題的時候為雙選,我們選題目,選導師,最后導師選擇了我,很高興,從一開始的無從下手到初稿,定稿,離不開老師的指導,另外,我也在網絡上,書上查詢相關文檔,資料,這段時間以來,一起努力的同學們,悉心指導的老師,讓我們感觸很深,我們遇到了很多技術上,思想上的問題,大家相互鼓勵,共同成長,解決了問題的那一刻,心情是很愉悅而且非常有成就感,終于順利完成了畢業設計,在校外實習,明白了生活有很多不容易的地方,回歸校園的那一刻,發現同學們的笑容是那樣的純真,感謝四年的大學生活成為我們青春的回憶。我們馬上就要踏進社會,可能前面的兩三年會很迷茫,會受傷,但是我們一定要有一顆積極向上的心,同學的情誼能天長地久,所有的朋友都能前程似錦,達到人生巔峰!最后,感謝各位答辯老師鞭策與鼓勵。

參考文獻[1]齊行程.基于數據報文特征的即時通訊軟件監測與控制技術研究[D].南京航空航天大學,2010.[2]王靜,孫士宏.圖書館服務如何應對“千年一代”的挑戰[J].JournalofJinzhouMedicalCollege:socialenceEdition,2006,4(3):104-106.[3]劉善淋.局域網內部實時通訊系統分析及應用[D].同濟大學軟件學院同濟大學,2008.5(5):34-36.[4]陳鎖柱.基于GoogleAndroid平臺移動軌跡記錄系統的研究與應用[D].內蒙古大學,2011.6(1):110-112.[5]袁剛.基于Android平臺應用安全管理軟件設計與實現[D].北京郵電大學,2012.2(1):67-68.[6]陳育斌.基于Android平臺的即時通信系統設計與實現[J].中國科技博覽,2015.7(5):322-322.[7]劉威,楊永吉.Web數據庫的實現技術[J].長春大學學報,2001,11(4):18-19.[8]李玉芝.關系型數據庫Oracle、DB2、SqlServer的比較研究[J].中國科技博覽,2010.6(26):100-100.[9]潘海波.多線程掃描局域網內的計算機[J].黑龍江科技信息,2009.4(9):75-75.[10]袁淑萍,徐蕾,楊建.基于Winsock控件的TCP協議模擬通信[J].電腦編程技巧與維護,2011,01(16):71-73.[11]馬志強.基于Android平臺即時通信系統的設計與實現[D].北京交通大學,2009.9(3):43-43.基于C8051F單片機直流電動機反饋控制系統的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現的供暖系統最佳啟停自校正(STR)調節器單片機控制的二級倒立擺系統的研究基于增強型51系列單片機的TCP/IP協議棧的實現基于單片機的蓄電池自動監測系統基于32位嵌入式單片機系統的圖像采集與處理技術的研究基于單片機的作物營養診斷專家系統的研究基于單片機的交流伺服電機運動控制系統研究與開發基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統研究基于C8051F040單片機的嵌入式系統開發基于單片機的液壓動力系統狀態監測儀開發模糊Smith智能控制方法的研究及其單片機實現一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數控系統的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環走絲方式研究基于單片機的機電產品控制系統開發基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統單片機系統軟件構件開發的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統的研制基于單片機的數字磁通門傳感器基于單片機的旋轉變壓器-數字轉換器的研究基于單片機的光纖Bragg光柵解調系統的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現基于單片機的電液伺服控制系統用于單片機系統的MMC卡文件系統研制基于單片機的時控和計數系統性能優化的研究基于單片機和CPLD的粗光柵位移測量系統研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數據采集系統基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數控改造基于單片機的溫度智能控制系統的設計與實現基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協議轉換器基于單片機和DSP的變壓器油色譜在線監測技術研究基于單片機的膛壁溫度報警系統設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監測系統基于單片機網絡的振動信號的采集系統基于單片機的大容量數據存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現基于AT89S52單片機的通用數據采集系統基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統基于單片機的控制系統在PLC虛擬教學實驗中的應用研究基于單片機系統的網絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統設計與研究基于單片機的模糊控制器在工業電阻爐上的應用研究基于雙單片機沖床數控系統的研究與開發

溫馨提示

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

評論

0/150

提交評論