999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的閱讀回執即時通訊系統的研究和開發

2018-01-25 03:28:00王玉明陳鈞
現代計算機 2017年36期
關鍵詞:界面用戶功能

王玉明,陳鈞

(南京工程學院計算機工程學院,南京 211167)

0 引言

Android系統占有市場超過80%的份額,占有更大的用戶基數,世界很多智能手機廠家幾乎都加入了An?droid陣營,并推出了一系列的Android智能機。終端越多,其市場潛力就越大。從程序的移植和安裝這一角度來說,Android應用商店最大的優勢是,不對An?droid應用程序的來源或者提供商進行嚴格的把控。在這一點上優于蘋果。從Android系統自身的而更深層面來說,Android平臺是基于Linux內核,具有更佳的可靠和安全,新的Linux內核是未來的發展趨勢,An?droid開發更是未來趨勢[1]。

本項目的主要任務是完成在Android平臺上開發以XMPP協議為通信協議的即時通信應用。在項目的研究開始階段,首先要求的是Android模擬器上模擬客戶端應用程序的運行,搭設Tomcat或者Java程序作為主要通信的服務器。在項目的后期,豐富功能后,添加設計Socket服務器作為輔助進行通信。同時在設計該保證節約成本,優化存儲結構,使用客戶端和服務器一同進行存儲,避免相同數據的冗余和堆積現象。重要的是,對于聊天信息的閱讀狀況的正確及時的反饋。

1 系統相關技術

1.1 Android的相關組件

Android開發四大組件分別是:活動(Activity):用于提供功能模塊的實現以及可視化的表現。服務(Ser?vice):后臺運行服務,對用戶隱藏,不對用戶可見,不會和應用組件進行交互。廣播接收器(Broadcast Re?ceiver):用于接收廣播,異步接受Intent,一類主要是完全異步的接收正常廣播,另外一種是傳播有序廣播。內容提供商(Content Provider):主要功能是存儲和傳遞數據,另一個重要的功能是對外數據共享。

1.2 Android的UI的優勢

Android平臺兼容多種的媒體格式,并提供相關插件和版本控制。在部分的按鍵和Viewer上,提供全息樣式和3D的立體圖標,并且自帶圖片編輯器利用相關的數值參數控制斜度和紋理等特點。另外,Android的UI設計采用的是單線程的模型,拒絕在子線程中對于UI進行操作,所以另外提供了Handler的機制來進行協調通信。Handler機制中的主要對象是Looper,每一個線程中只會存在一個Looper對象,與ThreadLocal的思路一致,解決多線程的并發問題。

2 XMPP協議

XMPP協議是一個開放源碼的,以XML為基礎的可擴展的即時通信協議,其繼承了XML的靈活的可擴展性,以XML數據流為載體進行數據傳輸。其前身是Jabber協議,在2002年,XMPP工作組開發和改編協議以適應IETF組織的消息和出席技術后有了目前的XMPP協議可以說協議是Jabber協議的核心。XMPP盡管不局限網絡拓撲結構,但是通信時必須采用TCP協議,在協議結構上使用的是結構模型,由支持該協議的服務器轉發到目標用戶,完成此類通訊[3]。

3 創新點和技術點

3.1 消息回執的實現

在聊天的過程中,如果消息的接收方在已經查看了信息的情況下,應該對于該條的信息的發送方,給出一個問題的反饋,從而使得發送方得知,這條消息已經被閱讀,從一定程度上,能夠解決問題推諉的問題。

其實現主要是對于消息包的監控。在檢測到包的相關內部檢測標準已經有了改變的話,通過成員方法獲得到消息的相關信息,然后交給服務端,反饋信息給發送者。

3.2 長鏈接的實現

用戶所在客戶端需要不斷地從網絡上獲取信息,那么就需要解決兩個問題,一個是判斷當前是否鏈接到網絡,另一則就是是否有新的信息需要接受。那么就需要一個長鏈接模塊。

長鏈接線程會先檢查網絡連接的狀態,由內部的循環判斷是否建立過連接,是否來連接網絡,連接是否超時,一次來確定是否連接到網絡/。建立長鏈接的過程,其實質是客戶端向服務器發送連接請求,請求服務器通過此鏈接向客戶端發送消息,客戶端維持一個消息分發線程,消息調用不同的處理過程

另外,如果想保持websocket連接的穩定性,建議加上心跳包??梢悦扛粢欢螘r間就發個簡單的字符串給后臺,讓后臺知道用戶在線,可以調用timetask以及CountDownTimer來完成。

4 系統模塊的設計與實現

4.1 系統總體框架的實現

參照MVC(Model View Controller,模型—視圖—控制器)的架構設計模式,可以達到將業務邏輯、數據、界面顯示分離的結構形式??梢园堰@個系統分為如下的幾個功能層次:數據庫層(Model層),表現層(View層),業務處理層(Controller層),網絡通信層(網絡業務的處理層)。根據不同的業務要求,每一個層次同樣具有不同的模塊,每個模塊都具備各自的功能。

注意點主要集中在,需要固定層與層之間的通信接口,能夠清楚明白的描述層次和功能。有專業的要求盡量做到“高內聚,低耦合”,在層次的內部應該模塊化,盡可能的降低模塊與模塊之間的聯系。同時要保證,接口的調用清晰明了。

4.2 客戶端的功能模塊與設計

針對此次對于通訊軟件的設計要求,盡量將軟件的使用的模塊簡化,大致包括以下的模塊:登錄注冊模塊、主界面顯示模塊、好友管理模塊、群組管理模塊、聊天模塊、個性化設置模塊等。每個模塊負責具體的不同的功能。

(1)用戶注冊界面:在新用戶要求注冊時,提供界面要求用戶對于昵稱、密碼、email信息進行填寫,并且在提交之前進行檢驗,滿足全部要求的才能注冊到服務器中保存。保存剛注冊的賬號和密碼,方便及時登錄。

(2)用戶登錄界面:在用戶登錄時,檢測賬號、密碼是否正確進行匹配,判斷賬號是否的格式、內容輸入有誤,判斷該賬號有沒有存在共同登錄或者異地登錄的情況。

(3)好友管理模塊:進行好友的管理,功能要求要能夠進行添加好友、刪除好友、修改好友備注和分組等的操作,在這些操作之后,需要將修改的內容存儲到本地或者是遠程的數據庫。

(4)群組管理模塊:進行群組的管理,功能要求要能夠進行創建群組、刪除群組、邀請好友、修改群組信息等。同時這些信息要注意管理員與普通用戶之間的權限的不同。

(5)主界面模塊:負責多個功能之間的切換。通過左劃、右劃以及對提供的工具欄的操作方式實現。以此來完成多個不同的模塊的功能的集合。同時要能夠顯示用戶的頭像,個性簽名,呈現狀態以及最近的聊天界面等狀態。但是同樣這些功能有的是平行的功能,有的是作為承載在主界面是上面的應用。如聊天管理界面圖1。

由此也是所有的activity中布局最為復雜的一種,通過添加TextView,Button,ProgressBar等常用控件來編寫程序界面。主界面下需要防止多個聊天的窗口。主要的監控就要交給后臺功能。Service不能自己運行,只能后臺運行,并且可以和其他組件進行交互。但是主界面一定存在相當的耗時操作,像需要發送網絡請求的時候,服務器未必會立刻的給出回復,如果不交給子線程,會導致主線程被阻塞,從而程序和用戶體驗。

聊天模塊:負責對于聊天的支持,對聊天的內容進行處理。能群聊、單聊,能添加表情等。聊天記錄一樣能夠在本地端進行存儲,并且全部都以聊天窗口的形式顯示出來。主要的個人聊天界面,如圖2。

圖1 聊天管理界面

圖2 個人聊天界面

功能設置模塊:主要對應用進行功能性設置,包括個人設置和系統設置。此類的系統配置屬于用戶對于Android的個性化配置,可以使用Android的Shared?Preferences功能,它是一個輕量級的存儲類,所以很適合用于保存軟件配置參數。通過XML文件存放數據,文件存放在本地安裝目錄下的/data/data//shared_prefs目錄下。

4.3 系統的用例分析

依據上面一個模塊對于功能模塊的分析結果,下面給出相關的用例圖,圖3。

從圖中可以看出,用戶需要先行注冊成為用戶,將其注冊的相關信息包括密碼賬號等,保存在數據庫,其次登錄客戶端,在這樣的情況下,用戶就可以查詢聊天記錄。查看發送的圖片或者文件等的操作,但是想進行單人聊天,群聊天需要先連接到服務器。

圖3 功能模塊的用例分析圖

4.4 系統的數據庫設計

在設計本課題系統時,需要考慮到數據的保存和可重復多次讀取的相關措施。Android本身有提供5中數據的存儲方式。第一種是SharedPreferences主要是用于存儲一些簡單的系統配置的信息,優點在于簡單快捷的讀取和寫入方式。第二種是通過文件存儲數據,利用和Java一致的文件輸入輸出流實現。第三種是網絡存儲方式,主要是解決Android網絡數據包的問題。第四種就是組件之一的ContentProvider。第四種是利用開發的數據庫SQLite。

本課題系統的設計架構是C/S架構,為了降低數據的大量冗余,和堆積在服務器影響性能的問題,需要在服務器和客戶端上面同事的存儲數據。服務器主要利用輕型的mysql數據庫進行處理。客戶端將少量的系統配置信息,例如用戶名和密碼,用戶的私人配置等信息保存在SharedPreferences中,主要還是通過SQLite進行保存。

本項目主要的數據庫表有User用戶信息表、Con?tacts:聯系人列表、Single_session單人會話列表、Sin?gle_message單人聊天信息表、Group_session多人會話列表、Group_message多人聊天信息表。

以下是聊天系統的ER圖:

圖4 聊天系統ER圖

5 結語

本系統主要使用Java語言開發,通過原型設計,數據庫設計,已完成基本的閱讀回執功能,即時反饋已讀動態以及對重要的信息做出提醒,有一定的實用性。根據我們對于國內外研究現狀、發展水平的分析了解,本系統開發成本低廉,效率高,擴展性好。

[1]呂留記.基于Android的即時通訊系統的研究與實現[D].電子科技大學,2016.

[2]王少蕾.安全通信軟件“密迅”的Android手機客戶端的設計與實現[D].北京交通大學,2014.

[3]高明鵬.基于XMPP協議的Android手機即時通信應用研究與實現[D].南昌大學,2012.

[4]郝秋影.基于Android的消息應用的設計與實現[D].北京郵電大學,2013.

猜你喜歡
界面用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
關于非首都功能疏解的幾點思考
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機交互界面發展趨勢研究
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 久久亚洲黄色视频| 免费一级全黄少妇性色生活片| 国产日韩欧美一区二区三区在线| 精品久久久无码专区中文字幕| 久久网欧美| 精品夜恋影院亚洲欧洲| yy6080理论大片一级久久| 中字无码精油按摩中出视频| 国产成人精品高清不卡在线| 一本大道香蕉久中文在线播放| 亚洲三级影院| 国产精品微拍| 免费毛片a| 国产女人18水真多毛片18精品| 亚洲一本大道在线| 中文字幕 91| 午夜精品一区二区蜜桃| 精品视频在线观看你懂的一区 | 国产sm重味一区二区三区| 99热这里只有精品2| 亚洲精品中文字幕午夜| 国产制服丝袜91在线| 亚洲三级电影在线播放| 伊人久久大线影院首页| 亚洲婷婷六月| 中文字幕佐山爱一区二区免费| 99爱视频精品免视看| 亚洲经典在线中文字幕| 亚洲成A人V欧美综合| 久精品色妇丰满人妻| 91福利在线看| 亚洲大尺度在线| 欧美色视频日本| 亚洲欧美一级一级a| 色悠久久久久久久综合网伊人| 欧美日本视频在线观看| 欧美日韩亚洲国产主播第一区| 久久91精品牛牛| 欧美福利在线观看| 亚洲无限乱码| 在线精品亚洲国产| 午夜啪啪福利| 久久青草热| 欧美成一级| 国产区网址| 亚洲精品男人天堂| 综合久久五月天| 久久天天躁夜夜躁狠狠| 欧美激情视频二区| 91午夜福利在线观看| AV无码国产在线看岛国岛| 亚洲无线国产观看| 国产免费看久久久| 日韩天堂视频| 午夜视频免费一区二区在线看| 日韩在线永久免费播放| 97在线免费| 性欧美久久| 性网站在线观看| 国产Av无码精品色午夜| 午夜成人在线视频| 国产综合色在线视频播放线视| 国产中文在线亚洲精品官网| 欧美特黄一级大黄录像| 在线五月婷婷| 日本道综合一本久久久88| 97视频精品全国在线观看| 不卡无码网| 国产网站免费| 思思热精品在线8| 67194在线午夜亚洲| 凹凸精品免费精品视频| 欧美成在线视频| 成年免费在线观看| 免费无遮挡AV| 欧洲亚洲欧美国产日本高清| 毛片一区二区在线看| 伊人狠狠丁香婷婷综合色| 久热re国产手机在线观看| 国产无码在线调教| 久久精品无码中文字幕| 欧美亚洲第一页|