安卓开发程序员
大学生,it人士
了解安卓的历史,安卓手机的体系架构。
小码哥Android培训中心视频分享——即时聊天
由于很多毕业的学员在开发时遇到不少关于即时聊天、RxJava、热修复等功能的APP开发,近期小码哥Android培训中心将以视频分享的方式不断推出大家关注的这些技术的学习视频,希望能够给予需要这方面技术的同学提供一个很好的引导帮助,同时对这些技术感兴趣的朋友也可以一起进行技术上的交流和探讨。
今天就先跟随Android培训中心的王维波老师来学习基于XMPP实现的即时聊天功能。先看下总体内容:
l什么是即时聊天?
即时聊天可以简单理解为一种通讯协议,像我们常见的,QQ,YY、陌陌等都是属于即时聊天软件。
l为什么使用XMPP?
有了解即时聊天的朋友可能都知道,像融云、环信这些第三方的IM即时通讯,底层也是基于XMPP来实现的,而且XMPP具有开放、标准、证实可用、分散式、安全、可扩展以及多样性等多种特点,在开发即时聊天时一般都会优先考虑选择它。
lXMPP是什么?
简单来说,就是一种以XML为基础的开放式实时通信协议。
使用XMPP通讯协议,一般包含下面几个内容:XMPP+0penfire+ASmack。
XMPP:一种实时通信协议。
0penfire:主要是作为服务器,负责管理客户端的通信连接,以及提供客户端一些通信信息和连接信息。
ASmack:主要是XMPP协议的实现,提供了一套很好的API,操作XMPP都是通过使用Smack的API来实现,因为是在Android里,所以使用的是ASmack这个jar包。
初步了解了一些基本的知识点,我们就来看下一些具体功能的实现。
l0penfire服务器安装及配置
参照安装文档安装完 0penfire 服务器之后,可以创建几个用户用于测试。可以安装spark、如意通这些客户端进行登录测试。这里主要是安装了spark。
l项目创建及asmack源码关联
因为XMPP 即时聊天的核心主要是使用Smack的API,asmack.jar里面的一些常见类,以及常见器来实现的,所以需要添加jar包进行依赖和关联源码。
l参考Smack API文档,实现登录功能
部分关键代码:
l联系人的创建以及CRUD
主要通过contentProvider缓存联系人信息到数据库,并进行增删查改操作,不用每次从消息通道中获取,还可以使用Content0bserver数据信息的改变,实时更新UI。(具体代码请下载源码查看)
效果图:
联系人功能实现之后,我们就可以开始进行聊天功能的开发。
l通过点击联系人列表中某个item传递数据到聊天界面,并在聊天界面设置显示当前聊天的用户。
效果图:
l实现聊天消息发送以及聊天信息保存
继续参考Smack API文档,查看聊天功能的实现方法。
点击发送后开始和发送对象聊天,这里需要先保存当前登录的对象,也就是发消息方的账
号,发送方的账号在登录完成后获得。
效果图:
聊天消息需要保存起来,用到ContentProvider和数据库。通过创建相关的用到ContentProvider和数据库,进行CRUD操作,实现聊天信息缓存。
在发送和接收消息时,保存消息,在聊天界面中获取。
效果图如下:
到这里为止,基本上一个简单的聊天功能就实现了,我们还可以对消息显示的布局、界面不可见时也能收到消息等问题做一定的完善,具体代码就不展示了,直接看效果图吧。
l会话消息的实现
再说一下会话信息界面的实现过程,关键就是展示聊天会话的实时信息。
首先需要在SmsProvider中创建相应的URI,以及相应的匹配规则;显示会话联系人,这里只需要查询操作。
设置数据展示:
为了实现实时显示的数据,还需要暴露注册和反注册的方法。
效果图:
广场舞大妈说,如果跳的足够快,她的孤独就追不上她。
拾荒的大叔说,如果翻垃圾翻得足够仔细,便能找回丢失的自己。
碰瓷的大爷说,只要演的够逼真,就能骗过匆匆流逝的时光。
Android培训中心的老师对小编说
只要坚持学习Android热门技术,就一定能够改变人生和命运!
以上就是手机开发培训课程的全部内容介绍,如需了解更多的手机开发培训班、课程、价格、试听等信息,也可以点击进入 手机开发 相关频道,定制专属课程,开始您的学习之旅。
温馨提示
温馨提示