李世揚(yáng),王慶喜,成蘭,儲澤楠
(安陽工學(xué)院 計算機(jī)學(xué)院,河南 安陽 455000)
?
移動社交應(yīng)用系統(tǒng)的設(shè)計與實現(xiàn)
李世揚(yáng),王慶喜,成蘭,儲澤楠
(安陽工學(xué)院 計算機(jī)學(xué)院,河南 安陽 455000)
為了開發(fā)高質(zhì)量的移動社交應(yīng)用系統(tǒng),對系統(tǒng)進(jìn)行了全面的設(shè)計,包括系統(tǒng)架構(gòu)設(shè)計、功能設(shè)計、業(yè)務(wù)流程設(shè)計、數(shù)據(jù)庫設(shè)計和界面設(shè)計.在設(shè)計的基礎(chǔ)上,采用Android技術(shù)開發(fā)系統(tǒng)移動前端,采用PHP語言、MySQL數(shù)據(jù)庫和Apache開發(fā)服務(wù)器后臺.全面闡述了系統(tǒng)的詳細(xì)設(shè)計以及系統(tǒng)的消息發(fā)送、消息處理和接收以及智能推薦好友算法的實現(xiàn).
移動應(yīng)用;社交;系統(tǒng)設(shè)計;系統(tǒng)實現(xiàn)
社會交往是人的重要活動,也是人的重要屬性.隨著時代的進(jìn)步和社會的發(fā)展,近年來移動開發(fā)技術(shù)取得了重大進(jìn)步,社交功能可以在移動手機(jī)上實現(xiàn),在需求的驅(qū)動下,移動社交開發(fā)立即成為了軟件開發(fā)的熱點(diǎn)項目,因為移動社交應(yīng)用為人類提供了更加便捷、高效的社交方式.本文主要對移動社交應(yīng)用進(jìn)行設(shè)計并給出部分實現(xiàn).
通過對實際需求的分析,提出了本系統(tǒng)的構(gòu)架,Android客戶端任務(wù)是向本應(yīng)用的服務(wù)器提出服務(wù)請求,服務(wù)器對用戶身份進(jìn)行驗證后用HTTP協(xié)議把經(jīng)過處理過的數(shù)據(jù)加工成JSON格式的數(shù)據(jù)發(fā)送到手機(jī)客戶端,手機(jī)客戶端負(fù)責(zé)處理接受的JSON格式的數(shù)據(jù)然后顯示到Android手機(jī)上.當(dāng)然,服務(wù)器在處理數(shù)據(jù)的過程中,實現(xiàn)對數(shù)據(jù)庫的查詢、修改、更新等功能,獲取數(shù)據(jù)并進(jìn)行處理,還會請求第三方服務(wù)器的服務(wù),比如人臉識別功能中對圖像的檢測的識別結(jié)果,以及消息推送服務(wù).這些結(jié)果需要在本應(yīng)用的服務(wù)器上處理之后再返回給客戶端進(jìn)行處理.
本應(yīng)用系統(tǒng)主要由6大功能模塊組成:用戶注冊登陸、獲取好友動態(tài)模塊、即時通訊模塊、最近會話模塊、好友管理模塊、人臉識別模塊.
(1)用戶注冊登陸
用戶首次使用該應(yīng)用必須進(jìn)行用戶注冊,注冊成功后,可以通過注冊賬號或者注冊郵箱進(jìn)行登錄,登陸成功后,方可以進(jìn)入本應(yīng)用的主界面.當(dāng)用戶忘記用戶名或密碼時,可以利用登錄時注冊的郵箱找回用戶名和密碼.
(2)獲取好友動態(tài)模塊
當(dāng)用戶成功登陸本應(yīng)用之后,可以在主界面中的好友動態(tài)模塊里獲取到好友的動態(tài)信息.并且可以通過下拉列表進(jìn)行刷新,異步獲取服務(wù)器上的好友動態(tài).
(3)即時通訊模塊
可以選擇聯(lián)系人進(jìn)行聊天,消息內(nèi)容通過第三方SDK推送給對應(yīng)的好友.當(dāng)然,也可以即時接受到好友發(fā)送過來的消息.
(4)最近會話模塊
根據(jù)最近聊天聯(lián)系人,可以獲取到聯(lián)系人信息以及最新的一條聊天記錄的會話列表.
(5)好友管理模塊
對好友進(jìn)行管理,包括添加和刪除好友等功能.
(6)人臉識別模塊
通過自己的照片為自己設(shè)置臉譜,照片中的信息通過FacePlusPlus進(jìn)行檢測.通過照片搜索陌生用戶在本應(yīng)用下的社交信息資料.
(7)智能推薦好友模塊
根據(jù)共同好友數(shù)量,編寫推薦算法進(jìn)行智能推薦好友.
3.1 即時通訊
該功能模塊,是依賴第三方平臺JPush提供的消息推送API進(jìn)行實現(xiàn)的.首先,在JPush官網(wǎng)申請開發(fā)者賬號,獲取APP_KEY和APP_SECRET,并創(chuàng)建自己的應(yīng)用推信.然后在自己的服務(wù)器環(huán)境下,搭建自己的服務(wù)器接口,這些接口是獲取從手機(jī)客戶端發(fā)送過來的請求,然后進(jìn)行相應(yīng)處理之后,發(fā)送對應(yīng)的請求到第三方服務(wù)器上,調(diào)用他們提供的接口,返回處理結(jié)果,然后將結(jié)果寫入本系統(tǒng)數(shù)據(jù)庫中.同時將返回的處理結(jié)果進(jìn)行再次處理成客戶端需要的數(shù)據(jù)格式給客戶端.即時通訊流程如圖1所示.
圖1 即時通訊流程圖
圖2 人臉識別流程圖
3.2 人臉識別
該功能模塊,是依賴第三方平臺FacePlusPlus提供的人臉識別API進(jìn)行實現(xiàn)的.首先,在FacePlusPlus官網(wǎng)申請開發(fā)者賬號,獲取APP_KEY和APP_SECRET,并創(chuàng)建自己的應(yīng)用推信.然后在自己的服務(wù)器環(huán)境下,搭建自己的服務(wù)器接口,這些接口是獲取從手機(jī)客戶端發(fā)送過來的請求,然后進(jìn)行相應(yīng)處理之后,發(fā)送對應(yīng)的請求到第三方服務(wù)器上,調(diào)用他們提供的接口,返回處理結(jié)果,然后將結(jié)果寫入本系統(tǒng)數(shù)據(jù)庫中.同時將返回的處理結(jié)果進(jìn)行再次處理成客戶端需要的數(shù)據(jù)格式給客戶端.人臉識別流程如圖2所示.
圖3 實體關(guān)系圖
移動社交應(yīng)用系統(tǒng)的功能主要在于即時通訊,其數(shù)據(jù)庫相對比較簡單,其實體主要有用戶和消息.系統(tǒng)數(shù)據(jù)庫的實體關(guān)系圖如圖3所示.
5.1 獲取好友動態(tài)的列表
通過ListView組件實現(xiàn)好友動態(tài)的列表,然后再通過設(shè)置ListView的組件的刷新監(jiān)聽器setOnRefreshListener,判斷用戶操作動作,實現(xiàn)當(dāng)用戶在界面上進(jìn)行下拉操作時,進(jìn)行請求服務(wù)器獲取數(shù)據(jù),并通知UI界面顯示出來.
5.2 會話列表和即時通訊
會話列表也是自定義的ListView和適配器來實現(xiàn)的.當(dāng)然,會話列表也含有下拉刷新,獲取最新會話的功能.在會話列表點(diǎn)擊選中的會話,就會進(jìn)入聊天的主界面.
5.3 好友分組管理
好友分組列表的顯示是通過ExpandableListView和自定義的監(jiān)聽器實現(xiàn)的,設(shè)置了添加好友和添加群組的按鈕監(jiān)聽器,如果按下相應(yīng)按鈕會打開另外一個Activity,如打開AddFriendActivity,則處理和顯示添加好友的操作.
在界面中我們可以看到我的好友和我的群組的列表框,點(diǎn)擊可以折疊盒展開.具體設(shè)計實現(xiàn)
5.4 人臉識別
人臉識別功能是采用FacePlusPlus的第三方API服務(wù),我們通過調(diào)用他們提供給開發(fā)者的人臉識別接口,整合到應(yīng)用里面,實現(xiàn)根據(jù)人臉?biāo)阉骱糜训裙δ埽缑鎸崿F(xiàn).
頭戴安全帽,身穿黃馬褂,火辣的陽光照射著施工現(xiàn)場,一層層熱浪撲打在身上,汗水濕透了衣服,可看不出一點(diǎn)兒疲憊的樣子,依然洋溢著熱情干著工作。郭慶富,這個活躍在施工生產(chǎn)一線,集團(tuán)公司的十大“杰出青年”,現(xiàn)在已經(jīng)是二公司哈佳項目部的常務(wù)副經(jīng)理,技術(shù)工作的“首領(lǐng)”,他是編制方案的主心骨,有他在的現(xiàn)場,總能讓人放下心來。
6.1 消息的發(fā)送
登錄系統(tǒng)之后,會記錄當(dāng)前登錄用戶的賬號信息.然后獲取當(dāng)前登錄用戶的好友列表和分組,并顯示到Android UI界面.選擇好友進(jìn)行聊天的過程,從EditText控件中獲取到輸入的消息,然后進(jìn)行封裝,通過GET方式,請求服務(wù)器API,發(fā)送當(dāng)前用戶的聊天數(shù)據(jù)和當(dāng)前登錄賬號uid,以及消息接收者的uid.關(guān)鍵代碼如下.
GalHttpRequest request;
String requestUrl=Config.API_URL+“IM/messageSend/uid/”+f_uid+“/from_uid/”+uid+“/content/”+msgContent;
request=GalHttpRequest.requestWithURL(this,requestUrl);
request.startAsynRequestString();
6.2 消息的處理
在服務(wù)器端,接受到客戶端發(fā)送過來的消息內(nèi)容和發(fā)送者和接收者的賬號uid,調(diào)用消息發(fā)送函數(shù),處理數(shù)據(jù)并調(diào)用JPush API.關(guān)鍵代碼如下.
$sendStatus=$this->send($from_uid,$msg[′to_uid′],$from_uid,$msg[′content′]);
$Push=new Model(′Push′);
6.3 消息的接收
消息接受是通過在客戶端集成JPush SDK,并設(shè)置廣播監(jiān)聽器,通過監(jiān)聽器,獲取Jpush 推送過來的消息,進(jìn)行處理之后,顯示到Android界面.關(guān)鍵代碼如下.
if(MESSAGE_RECEIVED_ACTION.equals(intent.getAction())){
String title=intent.getStringExtra(Constants.KEY_TITLE);
String content=intent.getStringExtra(Constants.KEY_MESSAGE);
int from_uid=intent.getIntExtra("from_uid",0);
int to_uid=intent.getIntExtra("to_uid",0);
String all=intent.getStringExtra(Constants.KEY_ALL);
ContentValues values=new ContentValues();
DatabaseHelper dbHelper=new DatabaseHelper(getApplicationContext(),"tuixin",3);
SQLiteDatabase db=dbHelper.getWritableDatabase();
db.insert("push",null,values);
}
6.4 智能推薦好友算法
該算法是為了實現(xiàn)添加好友的智能推薦.通過查詢當(dāng)前登錄用戶的好友列表,然后查詢其好友的好友列表,組成一個不重復(fù)且不包含自己的用戶列表.最后獲取每個用戶的詳細(xì)信息返回給用戶的手機(jī)客戶端,顯示到用戶的手機(jī)界面上.關(guān)鍵代碼如下:
foreach($friendList as $fid){
$friend_id=$fid[′friend_id′];
$c=$F->where("uid=$friend_id")->select();
foreach($c as $ff){
$ffuid=$ff[′friend_id′];
$is=false;
foreach($friendList as $f1){
if(!$is1){
$friendResult[]=$f;
}
}
}
}
本文介紹了移動社交應(yīng)用系統(tǒng)的概要設(shè)計和詳細(xì)設(shè)計以及數(shù)據(jù)庫的實體關(guān)系圖設(shè)計;并在此基礎(chǔ)之上,以即時通訊、人臉識別模塊的實現(xiàn)為例介紹了移動社交應(yīng)用系統(tǒng)的實現(xiàn).本文系統(tǒng)創(chuàng)新地把人臉識別應(yīng)用于移動社交應(yīng)用系統(tǒng),擴(kuò)充了移動社交應(yīng)用系統(tǒng)的功能,使人類的社會交往更加高效便捷,滿足了快節(jié)奏時代需求,其應(yīng)用前景十分廣闊.
[責(zé)任編輯:王軍]
The design and implementation of mobile social application system
LI Shiyang,WANG Qingxi,CHENG Lan,CHU Zenan
(College of Computer,Anyang Institute of Technology,Anyang 455000,China)
In order to develop high quality mobile social applications system,the comprehensive system design was carried on,including system architecture design,functional design,business process design,database design and interface design.On the basis of the system design,interface of the system was developed by Android,server backstage was developed using PHP language,MySQL database and of Apache.The detailed design of the system and system messages,message processing and receive and intelligent recommend good implementation of the algorithm was expounded.
mobile application;social;system design;system implementation
2016-04-27
安陽工學(xué)院科研基金項目(YJJ2014015);安陽工學(xué)院青年科研基金項目(QJJ2015027)
李世揚(yáng)(1982-),男,河南鶴壁人,安陽工學(xué)院講師,碩士,主要從事軟件開發(fā)和數(shù)據(jù)庫技術(shù)的研究.
TP311.52
A
1672-3600(2016)12-0057-04