高仿微信Demo(仿UI界面+服务器客户端+Socket连接) 您所在的位置:网站首页 socket在线连接 高仿微信Demo(仿UI界面+服务器客户端+Socket连接)

高仿微信Demo(仿UI界面+服务器客户端+Socket连接)

2023-01-23 14:04| 来源: 网络整理| 查看: 265

首先声明:这个项目里面有很多板块都是参考借鉴网上其他人的博文的。而且有一些也不太清除原作者到底是哪位。我做这个项目的目的主要是练手,因为我毕设也要做一个Android项目。目前网络部分就实现了用户登录和注册,里面的好友功能,发送消息功能等毕设完结后再实现。

总结:在这学期初,本来打算直接开始毕设的,但是发现了很多问题,比如内容划分不够精细,没有架构,实现困难等。总之,万事开头难,结果就墨迹到了现在。这里,先总结前段时间实习时自己做的一个练手项目---仿微信项目(IMClass)

整个项目分为服务器与客户端以及数据库部分。

数据库:基于MySql数据库,建立一个用户信息表,一个消息表(服务器用来存储离线消息,在线消息存储在本地),以及一个好友列表。

服务器:

              *java写的服务器,基于Socket的网络连接,使用的是一个开源框架 Apache-mina socket。可以实现并发通信,里面解决了一些普通socket通信的一些问题。采用JDBC方式连接MySql数据库。(有试验过租用一个阿里云服务器,这样可以实现随时的访问服务器,不过太贵了,所以先暂停了)

              *后台定义了一些用户请求的命令参数,用户在客户端向服务器传参数,然后服务器根据不同的参数分别进行处理

               *注意Socket传输的对象必须实现序列化,而且客户端上的和服务器上的类名要一模一样(哪怕包名都必须一样)

客户端:Android客户端,主要界面还是仿微信的。功能如下:

*登录界面

              *可以通过已注册的帐号和密码连接服务器验证,登录客户端

              *登录界面验证对话框是基于dialogFragment的,这样便于实现多样化。

*注册界面

              *通过Socket连接服务器检验是否可以注册

              *仿照手机短信验证码注册(实质是利用自己的手机给自己发短信,因为没有调用三方接口)

              *注册后可以直接验证登录,直接进入客户端界面

*引导界面

              *借鉴网上的一些引导代码,viewpager实现,里面可以放一些新手引导图片

*主界面

              *采用fragmentActivity+viewpager实现仿微信主界面

*四大功能板块

              *消息模块,模拟接收到的消息(例如离线消息,好友申请等)

                     *加入了好友通信功能,类似与微信好友聊天一样可以发送文字,发送动态图(动态图借鉴网上blog的)

                     *采用自定义的ListView实现下拉刷新,上拉加载更多功能(自己重写ListView就可以实现很多自定义功能)

              *通讯录模块,模拟手机通讯录好友功能

                    *采用自定义的ScrollLayout实现下拉回调功能(其实就是类似与QQ的,ScrollView嵌套ListView,加强互动)

                    *识别手机自带的通讯录列表,添加本地好友功能,备份和恢复通讯录功能

              *更多模块,这里面添加一些其它小功能,比如微信的摇一摇签到,以及定位功能,幸运大抽奖功能

                     *摇一摇签到借鉴了网上的一段代码,并增加签到功能,主要依靠手机传感器与回调函数实现

                     *定位,实现了记录最近几次定位(本地数据库存储)以及摇一摇更新位置功能(使用百度定位SDK)

              *设置模块,主要实现与个人信息和帐号

                     *退出登录由一个DialogFragment实现,可以简单的注销或者直接退出,注销后需要重新登录,直接退出,下次进入微信时直接进入到主界面

                     *个人信息,显示数据库中的个人信息记录,编辑和更新个人信息,可以选择图片作为头像

                     *修改密码

*其它

              *后台service百度定位,主要是service与activity的交互,定时更新一次用户的定位信息上传到服务器

              *MainService,主Service,里面进行耗时的网络操作(连接Socket客户端Handler),完成用户请求    

*工具类

              *里面是所有用到的工具包,包括图像处理,获取手机图库,创建Dialog,判断网络状态,发送Notification,Log信息,读取文件,以及通过正则表达式判断字符串的类别(例如,判断身份证,手机号)等等(工具类里总结了一些常用的功能)

*离线模式(开发时测试使用,因为有时候服务器不能开,所以直接离线登录,查看Demo的主要功能)

项目总结:这个项目乍看之下没有多少内容,但是却囊括了很多功能,包括基础的UI实现,一些常见的View优化,以及Android四大组件,数据存储,notification等都用到了。还涉及到网络连接,服务器端的编写。还有一些工具类里面的基础java知识(比如数据压缩,缓存处理,图片处理,正则表达式等)。作为新手的练习项目,确实能很大程度的提高编程水准,以及对Android的熟悉程度。最重要的是学会了先构思,构架,然后再编码。这样能提高很大的效率。确实是收益匪浅!

更新时间:2015.3.26

下载链接: http://download.csdn.net/detail/u010979495/9271327

更新时间:2015.11.15



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有