移动社交应用系统的设计与实现

2016-12-12 02:33李世扬王庆喜成兰储泽楠
商丘师范学院学报 2016年12期
关键词:列表人脸识别好友

李世扬,王庆喜,成兰,储泽楠

(安阳工学院 计算机学院,河南 安阳 455000)



移动社交应用系统的设计与实现

李世扬,王庆喜,成兰,储泽楠

(安阳工学院 计算机学院,河南 安阳 455000)

为了开发高质量的移动社交应用系统,对系统进行了全面的设计,包括系统架构设计、功能设计、业务流程设计、数据库设计和界面设计.在设计的基础上,采用Android技术开发系统移动前端,采用PHP语言、MySQL数据库和Apache开发服务器后台.全面阐述了系统的详细设计以及系统的消息发送、消息处理和接收以及智能推荐好友算法的实现.

移动应用;社交;系统设计;系统实现

0 引 言

社会交往是人的重要活动,也是人的重要属性.随着时代的进步和社会的发展,近年来移动开发技术取得了重大进步,社交功能可以在移动手机上实现,在需求的驱动下,移动社交开发立即成为了软件开发的热点项目,因为移动社交应用为人类提供了更加便捷、高效的社交方式.本文主要对移动社交应用进行设计并给出部分实现.

1 总体架构设计

通过对实际需求的分析,提出了本系统的构架,Android客户端任务是向本应用的服务器提出服务请求,服务器对用户身份进行验证后用HTTP协议把经过处理过的数据加工成JSON格式的数据发送到手机客户端,手机客户端负责处理接受的JSON格式的数据然后显示到Android手机上.当然,服务器在处理数据的过程中,实现对数据库的查询、修改、更新等功能,获取数据并进行处理,还会请求第三方服务器的服务,比如人脸识别功能中对图像的检测的识别结果,以及消息推送服务.这些结果需要在本应用的服务器上处理之后再返回给客户端进行处理.

2 系统功能设计

本应用系统主要由6大功能模块组成:用户注册登陆、获取好友动态模块、即时通讯模块、最近会话模块、好友管理模块、人脸识别模块.

(1)用户注册登陆

用户首次使用该应用必须进行用户注册,注册成功后,可以通过注册账号或者注册邮箱进行登录,登陆成功后,方可以进入本应用的主界面.当用户忘记用户名或密码时,可以利用登录时注册的邮箱找回用户名和密码.

(2)获取好友动态模块

当用户成功登陆本应用之后,可以在主界面中的好友动态模块里获取到好友的动态信息.并且可以通过下拉列表进行刷新,异步获取服务器上的好友动态.

(3)即时通讯模块

可以选择联系人进行聊天,消息内容通过第三方SDK推送给对应的好友.当然,也可以即时接受到好友发送过来的消息.

(4)最近会话模块

根据最近聊天联系人,可以获取到联系人信息以及最新的一条聊天记录的会话列表.

(5)好友管理模块

对好友进行管理,包括添加和删除好友等功能.

(6)人脸识别模块

通过自己的照片为自己设置脸谱,照片中的信息通过FacePlusPlus进行检测.通过照片搜索陌生用户在本应用下的社交信息资料.

(7)智能推荐好友模块

根据共同好友数量,编写推荐算法进行智能推荐好友.

3 业务流程设计

3.1 即时通讯

该功能模块,是依赖第三方平台JPush提供的消息推送API进行实现的.首先,在JPush官网申请开发者账号,获取APP_KEY和APP_SECRET,并创建自己的应用推信.然后在自己的服务器环境下,搭建自己的服务器接口,这些接口是获取从手机客户端发送过来的请求,然后进行相应处理之后,发送对应的请求到第三方服务器上,调用他们提供的接口,返回处理结果,然后将结果写入本系统数据库中.同时将返回的处理结果进行再次处理成客户端需要的数据格式给客户端.即时通讯流程如图1所示.

图1 即时通讯流程图

图2 人脸识别流程图

3.2 人脸识别

该功能模块,是依赖第三方平台FacePlusPlus提供的人脸识别API进行实现的.首先,在FacePlusPlus官网申请开发者账号,获取APP_KEY和APP_SECRET,并创建自己的应用推信.然后在自己的服务器环境下,搭建自己的服务器接口,这些接口是获取从手机客户端发送过来的请求,然后进行相应处理之后,发送对应的请求到第三方服务器上,调用他们提供的接口,返回处理结果,然后将结果写入本系统数据库中.同时将返回的处理结果进行再次处理成客户端需要的数据格式给客户端.人脸识别流程如图2所示.

4 数据表设计

图3 实体关系图

移动社交应用系统的功能主要在于即时通讯,其数据库相对比较简单,其实体主要有用户和消息.系统数据库的实体关系图如图3所示.

5 界面设计

5.1 获取好友动态的列表

通过ListView组件实现好友动态的列表,然后再通过设置ListView的组件的刷新监听器setOnRefreshListener,判断用户操作动作,实现当用户在界面上进行下拉操作时,进行请求服务器获取数据,并通知UI界面显示出来.

5.2 会话列表和即时通讯

会话列表也是自定义的ListView和适配器来实现的.当然,会话列表也含有下拉刷新,获取最新会话的功能.在会话列表点击选中的会话,就会进入聊天的主界面.

5.3 好友分组管理

好友分组列表的显示是通过ExpandableListView和自定义的监听器实现的,设置了添加好友和添加群组的按钮监听器,如果按下相应按钮会打开另外一个Activity,如打开AddFriendActivity,则处理和显示添加好友的操作.

在界面中我们可以看到我的好友和我的群组的列表框,点击可以折叠盒展开.具体设计实现

5.4 人脸识别

人脸识别功能是采用FacePlusPlus的第三方API服务,我们通过调用他们提供给开发者的人脸识别接口,整合到应用里面,实现根据人脸搜索好友等功能,界面实现.

头戴安全帽,身穿黄马褂,火辣的阳光照射着施工现场,一层层热浪扑打在身上,汗水湿透了衣服,可看不出一点儿疲惫的样子,依然洋溢着热情干着工作。郭庆富,这个活跃在施工生产一线,集团公司的十大“杰出青年”,现在已经是二公司哈佳项目部的常务副经理,技术工作的“首领”,他是编制方案的主心骨,有他在的现场,总能让人放下心来。

6 系统实现

6.1 消息的发送

登录系统之后,会记录当前登录用户的账号信息.然后获取当前登录用户的好友列表和分组,并显示到Android UI界面.选择好友进行聊天的过程,从EditText控件中获取到输入的消息,然后进行封装,通过GET方式,请求服务器API,发送当前用户的聊天数据和当前登录账号uid,以及消息接收者的uid.关键代码如下.

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 消息的处理

在服务器端,接受到客户端发送过来的消息内容和发送者和接收者的账号uid,调用消息发送函数,处理数据并调用JPush API.关键代码如下.

$sendStatus=$this->send($from_uid,$msg[′to_uid′],$from_uid,$msg[′content′]);

$Push=new Model(′Push′);

6.3 消息的接收

消息接受是通过在客户端集成JPush SDK,并设置广播监听器,通过监听器,获取Jpush 推送过来的消息,进行处理之后,显示到Android界面.关键代码如下.

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 智能推荐好友算法

该算法是为了实现添加好友的智能推荐.通过查询当前登录用户的好友列表,然后查询其好友的好友列表,组成一个不重复且不包含自己的用户列表.最后获取每个用户的详细信息返回给用户的手机客户端,显示到用户的手机界面上.关键代码如下:

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;

}

}

}

}

7 结 论

本文介绍了移动社交应用系统的概要设计和详细设计以及数据库的实体关系图设计;并在此基础之上,以即时通讯、人脸识别模块的实现为例介绍了移动社交应用系统的实现.本文系统创新地把人脸识别应用于移动社交应用系统,扩充了移动社交应用系统的功能,使人类的社会交往更加高效便捷,满足了快节奏时代需求,其应用前景十分广阔.

[责任编辑:王军]

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

安阳工学院科研基金项目(YJJ2014015);安阳工学院青年科研基金项目(QJJ2015027)

李世扬(1982-),男,河南鹤壁人,安阳工学院讲师,硕士,主要从事软件开发和数据库技术的研究.

TP311.52

A

1672-3600(2016)12-0057-04

猜你喜欢
列表人脸识别好友
人脸识别 等
学习运用列表法
扩列吧
揭开人脸识别的神秘面纱
人脸识别技术的基本原理与应用
属羊
删除好友
列表画树状图各有所长
不含3-圈的1-平面图的列表边染色与列表全染色
基于K-L变换和平均近邻法的人脸识别