基于android的即时通讯APP 聊天APP

基于android的即时通讯APP 或者 聊天APP

一 项目概述

该项目是基于Android 的聊天APP系统,该APP包含前台,后台管理系统,前台包含用户通讯录,用户详情,用户聊天服务,用户二维码,发现功能,发现详情 , 个人中心, 个人信息, 编辑信息,上传头像,注册,登录,退出 等操作 。后台包含 系统管理,用户管理,聊天内容管理,聊天人员管理,发现管理 等功能, 东西非常多, 非常值得大家的学习和研究.

二 项目功能结构图

在这里插入图片描述

三 开发技术和工具

项目采用android原生写法
使用websocket技术
数据库使用mysql存储

开发工具:
推荐android studio
推荐idea
推荐逍遥模拟器

四 开发功能实现

登录功能
在这里插入图片描述
注册功能

在这里插入图片描述
用户通讯录
在这里插入图片描述
功能实现:

package com.itfxq.ui.adapter;import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.bumptech.glide.Glide;
import com.itfxq.R;
import com.itfxq.model.entity.UserEntity;
import com.itfxq.ui.activity.UserDetailActivity;import java.util.List;/*** 描述: UserAdapter * 开发工程师: Marker* 联系方式: QQ 624029037*/
public class UserAdapter extends ArrayAdapter<UserEntity> {//资源idprivate int resourceId;private List<UserEntity> mUserEntityList;// 适配器的构造函数,把要适配的数据传入这里public UserAdapter(Context context, int textViewResourceId, List<UserEntity> objects){super(context,textViewResourceId,objects);resourceId=textViewResourceId;mUserEntityList = objects;}// convertView 参数用于将之前加载好的布局进行缓存@Overridepublic View getView(int position, View convertView, ViewGroup parent){UserEntity userEntity=getItem(position); //获取当前项的Words实例// 加个判断,以免ListView每次滚动时都要重新加载布局,以提高运行效率View view;ViewHolder viewHolder;if (convertView==null){// 避免ListView每次滚动时都要重新加载布局,以提高运行效率view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false);// 避免每次调用getView()时都要重新获取控件实例viewHolder=new ViewHolder();viewHolder.user_imageIv=view.findViewById(R.id.user_imageIv);viewHolder.user_nameTv=view.findViewById(R.id.user_nameTv);viewHolder.user_nameTv.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View view) {Intent intent = new Intent(getContext(),UserDetailActivity.class);intent.putExtra("userEntity", userEntity);getContext().startActivity(intent);}});viewHolder.user_imageIv.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View view) {Intent intent = new Intent(getContext(),UserDetailActivity.class);intent.putExtra("userEntity", userEntity);getContext().startActivity(intent);}});view.setTag(viewHolder);} else{view=convertView;viewHolder=(ViewHolder) view.getTag();}viewHolder.user_nameTv.setText(userEntity.getUsername());Glide.with(getContext()).load(userEntity.getHeadImg()).into(viewHolder.user_imageIv);return view;}// 定义一个内部类,用于对控件的实例进行缓存class ViewHolder{ImageView user_imageIv;TextView user_nameTv;}
}

聊天功能界面

在这里插入图片描述
功能实现:

 implementation 'org.java-websocket:Java-WebSocket:1.3.0'

后台idea里面websocket在maven中配置

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>

后台websocket配置

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {@Overridepublic void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {stompEndpointRegistry.addEndpoint("/chat").setAllowedOrigins("*").withSockJS();}@Overridepublic void configureMessageBroker(MessageBrokerRegistry registry) {registry.enableSimpleBroker("/topic","/user");registry.setApplicationDestinationPrefixes("/app/");registry.setUserDestinationPrefix("/user/");}
}

通过 messagingTemplate.convertAndSendToUser(toUserMessage.getUserId(),“/message”,toUserMessage.getMessage());响应信息到客户端

客户端连接代码

  client = Stomp.over(WebSocket.class, "ws://"+ Constants.IPPORT +"/hello/websocket");client .connect();

篇幅有限,内容还有很多,创作不易 … 祝愿您的生活永远灿烂如花 …

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56660.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 第三方APP直接跳转WhatsApp 和指定联系人(可以非好友)聊天

业务需求中有点击按钮&#xff0c;从我们APP跳转到WhatsApp和某个人聊天&#xff0c;发现前端实现是 https://api.whatsapp.com/send?phonexxxxx 把该链接通过Android系统浏览器打开&#xff0c;如果手机安装WhatsApp会直接打开app并跳转到对应的账号下&#xff0c;说明 What…

2022年城市商品房销售价格趋势,房价是涨还是跌?

近年来随着国家政策对房地产进行调控&#xff0c;房价是涨还是跌&#xff0c;是很多人关注和关心的问题。下面是小编对国家统计局最新发布的报告进行报表数据处理分析后得到的数据可视化图表&#xff0c;展示了2022年上半年以来商品房的发展情况&#xff0c;大家来看下吧。 一&…

chatgpt赋能python:Python抽奖概率:了解随机性及如何提高中奖概率

Python抽奖概率&#xff1a;了解随机性及如何提高中奖概率 在现代社会&#xff0c;抽奖活动越来越受欢迎。无论是商家推销产品还是赢得大奖&#xff0c;抽奖都是吸引人们参与的有效方式。其中&#xff0c;Python作为一种能够生成随机数的编程语言&#xff0c;成为了抽奖活动中…

又有大厂员工连续加班倒下/ 百度搜狗取消快照/ 马斯克生父不为他骄傲...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff0c;今天是8月的第2天&#xff0c;友友们注意防暑降温哦&#xff01; 日报君在此为您呈上科技圈值得关注的新鲜事~ 今日新闻 浪潮员工连续值班24小时致昏迷&#xff0c;被诊断为“呼吸性碱中毒” 据Tech星球消息&#…

说好的不加班呢?百度工作强度已经超过字节了啊

有个新入职的百度员工怀疑自己进了假百度&#xff0c;因为他天天加班到半夜&#xff0c;和外面传说的“百度不加班”根本不一样&#xff0c;才干了两个礼拜&#xff0c;他已经开始怀疑人生了。 网友们乐了&#xff0c;小伙子挺有想象力&#xff0c;可惜现实很残酷&#xff0c;这…

BAT大揭秘:在腾讯、百度、阿里上班,差别竟然这么大?

微信又改版了&#xff0c;为了方便第一时间看到我们的推送&#xff0c;请按照下列操作&#xff0c;设置“置顶”&#xff1a;点击上方蓝色字体“程序员之家”-点击右上角“…”-点击“设为星标”。 可以啦&#xff0c;让我们继续相互陪伴。 谈到中国互联网&#xff0c;就绕不开…

2022这一年

前言 一年过得好快啊&#xff0c;这个年终总结不知道该写点啥&#xff0c;所以一直到现在也没动笔。 但如果不写吧&#xff0c;总感觉少了点什么。就像过年守夜&#xff0c;反正我是每年都要等到凌晨12点放完鞭炮后才睡。 前些天也看到不少博主发布了2022年终总结&#xff0c;…

Selenium 测试框架批量注册

Selenium 测试框架 先打开cmd下载Selenium : pip install -i https://pypi.douban.com/simple selenium如果是用cmd 下载的&#xff1a;pip show selenium使用该命令是否下载成功 或者直接在pycham IDE 在项目头上引入这个架包&#xff1a;from selenium import webdriver …

黑帽子Python——基础的网络编程工具——TCP的客户端和服务端

学习自Python黑帽子&#xff08;第二版&#xff09; TCP的客户端和服务端 前言TCP客户端TCP服务端问题后记 前言 直接通过实践学习编程&#xff0c;很容易产生一些细节方面的知识错误&#xff0c;遇到不会的俺就问ChatGPT&#x1f60f; TCP客户端 #快速创建一个TCP客户端对于…

PHP HTTP客户端-Guzzle原理解析

本文适合寻找PHP HTTP客户端库&#xff0c;或者对于Guzzle的使用和实现原理比较感兴趣的同学阅读&#xff0c;需要具备一定的PHP基础知识。 一、背景 在PHP后台开发过程中&#xff0c;经常会遇到模块间需要通过HTTP通信的情形。PHP语言本身只提供了socket操作的接口&#xff…

客户端日志和异常处理

目录 一. 使用Serilog结构化日志记录日志信息二. 捕获全局异常三. 使用AOP统一处理异常 一. 使用Serilog结构化日志记录日志信息 Serilog包的引用和使用语法都可以在网上找到&#xff08;https://github.com/serilog/serilog/wiki/&#xff09;&#xff0c;不再赘述&#xff0…

深入浅出Transformer

作者&#xff1a;麦克船长 链接&#xff1a;https://www.zhihu.com/question/471328838/answer/2864224369 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 如果说「从浅入深」理解 Transformer&#xff0c;逐渐要到…

自然语言处理 Transformer 模型

一、Transformer 模型出现之前的NLP 语言模型 1、N 元文法语言模型 1.1、马尔科夫假设&#xff08;Markov Assumption&#xff09;与 N 元文法语言模型&#xff08;N-gram Language Model&#xff09; 下一个词出现的概率只依赖于它前面 n-1 个词&#xff0c;这种假设被称为马尔…

一文速览大语言模型在分子领域中的探索

随着 ChatGPT 的快速崛起&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经在人类语言建模领域展示出了其非凡的能力。无论是证明数学公式、编写代码&#xff0c;还是以不同的风格创作诗歌&#xff0c;LLM 都能胜任。然而&#xff0c;尽管 LLM 在人类语言的掌握上已达到…

“AI+教育”:景联文科技高质量教育GPT题库助力教学创新

去年年底&#xff0c;OpenAI推出ChatGPT&#xff0c;掀起AI热潮&#xff0c;教育作为“AI”应用落地的关键场景&#xff0c;再次受到广泛关注。 “AI教育”的快速发展&#xff0c;是受到技术、需求和政策三重因素共同驱动的结果。 在技术方面&#xff0c;随着人工智能技术的不断…

对话系统文献综述

一、简介 论文&#xff1a;https://arxiv.org/pdf/1711.01731.pdf 该论文对对话系统进行了综述&#xff0c;并讨论了今后可能的研究方向。 目前的对话系统大致被分成两类&#xff1a; 1 任务导向的对话系统 任务为导向的对话系统是帮助用户去完成特定任务&#xff0c;比如找…

如何利用大数据分析技术预测员工离职?

为什么我们要对员工离职进行预测&#xff0c;因为它会帮助公司减少员工离职成本的消耗。 本文为美国肯尼索州立大学刘丽媛&#xff08;Lilian&#xff09;在HR成长部落2019年6月23日的线下活动分享文字实录&#xff0c;希望对大家在数据分析在HR领域的应用有所启发。 大家好&am…

Python员工离职数据分析

Python员工离职数据分析 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import warnings warnings.filterwarnings(ignore)# 数据全显示 pd.set_option(display.max_columns, None) # 颜色 colors sns.color_palette() # 数据精度 pd.set_opti…

从数据分析,看公司员工流失率分析报告

一、概述&#xff1a; 1、员工离职和员工流失率的概念&#xff1a; 员工离职&#xff1a;员工被辞退及辞职、不续签的情况 员工流失率&#xff08;离职率&#xff09;&#xff1a;公司离职的员工人数/&#xff08;入职人数最初原有人数&#xff09;*100% 例如&#xff1a;月…

数据分析——员工离职预测

员工离职预测 一. 题目描述二. 数据说明三. 步骤实现1.导入并查看2.数据探索性分析3.数据处理4.模型分析5.结果分析(1) 可视化的结果分析(2&#xff09;特征选择结果分析(3)多模型交叉验证结果分析 一. 题目描述 员工是否准备离职是困扰用人单位的问题&#xff0c;其关系到单位…