二十一世纪将是信息化、网络化的年代,以简捷、快速为表明的即时通信工具,已经成为当前网络用户最喜好的沟通工具。2007年11月,Google推出了一个专为移动设备设计的软件平台——Android。Android手机平台的应用正是在这种需求中不断发展壮大。Android应用用需求的增长,已经吸引无数软件开发厂商投身其中,Android的开放性使其比苹果、黑莓、windows等对年轻人更具吸引力,同时Android还具备应用程序无界限、应用程序轻松嵌入网络、应用程序可并行运行等众多出色的品质,使其具备其余于机平台没法比拟的优点和发展空削。近两年,移动端的应用不断深刻平常生活,2015天猫“双11”全球狂欢节交易额超912亿元,其中移动端占比 68% 。再创历史新高。结合现有资料,做为一个Android平台开发的初学者,本次选择完成一个基于Scocket通讯的简单聊天软件的实现。java
(1)开放源代码
Android平台开放源代码是它的主要优点之一,任何移动终端厂商均可以不受限制的加入到Android联盟中。显著的开放性吸引了众多优秀的开发者加入联盟,随着日益丰富的应用和用户人数的不断增长,一个崭新的平台日臻成熟。
(2)自由的开发商
Android平台为第三方开发商提供了一个很是白由、宽泛的环境。开发商所以不会受到各类条款的制约,这样促使了众多别致新颖的软件诞生,软硬件资源变得无限丰富。但其也存在缺点,好比暴力、血腥、情色等不利于青少年健康成长的游戏和程序同时应运而生,如何解决这类负面影响正是留给Android系统一大难题。
(3)Goog1e应用的完美结合
Google公司发展到如今已经走过10余年历史。从最初的搜索引擎到全面互联网的应用,Google服务如邮件、搜索、地图等已经成为链接互联网和用户的重要桥梁,而这些优秀的Google服务能够完美的结合到Android 平台手机上。git
JDK 1.8+ ADT + Eclipse数据库
本项目是简单的聊天系统的实现,预期所具有的的功能有用户注册和登录功能以及及时聊天功能。windows
可以在真机上以软件方式运行,且运行速率不能过慢。服务器
查找添加功能:可以经过帐号查找好友,并进行添加;
分组功能:可以对好友进行分组,便于快速查找好友;
群聊功能:能够将多个好友拉入群,开启多人聊天模式。网络
UI设计流程图:
架构
UI原型设计:(具体动态效果须要参考Axure文件)
socket
socket一般也称做"套接字",用于描述IP地址和端口,是一个通讯链的句柄。应用程序一般经过"套接字"向网络发出请求或者应答网络请求。
Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是创建网络链接时使用的。在链接成功时,应用程序两端都会产生一个Socket实例,操做这个实例,完成所需的会话。工具
服务器:
使用ServerSocket监听指定的端口,等待客户链接请求,客户链接后,会话产生;在完成会话后,关闭链接。性能
客户端:
使用Socket对网络上某一个服务器的某一个端口发出链接请求,一旦链接成功,打开会话;会话完成后,关闭Socket。
0~1023的端口号为系统所保留,例如http服务的端口号为80,telnet服务的端口号为21,ftp服务的端口号为23, 因此咱们在选择端口号时,最好选择一个大于1023的数以防止发生冲突。
本聊天系统,采用客户机/服务器(C/S)体系结构,C/S结构包括一个客户端和一个服务器。在Intemet通讯中,使用TCP面向链接的套接字来创建服务器端和客户端两个IP地址端点之间的会话。以下图所示:
服务器端主要完成用户信息的存储、客户端命令的响应与接受、信息转发等功能。客户端主要完成登陆、聊天信息的接受及发送等功能。客户端必须在服务器启动之后才能链接成功,用户登陆之后聊天室的客户端会显示用户已登陆,能够与服务器进行即时聊天。
经测试,登录功能完善,注册、聊天功能还存在小问题。
项目报告阐述了在Android应用程序架构下简易聊天系统的开发过程,实现了Android系统聊天室的注册、登录和聊天功能。但因为系统自己的复杂性,对不少可能出现异常的状况没有处理,存在必定的欠缺。在后续的修改完善中,方便用户的再次登录,在服务器端能够经过SQL数据库,保存注册用户的用户名,密码和各个用户的聊天记录,以便可以实现往用户注册或登陆时检查相应的状况。最后,本系统的界面最后来自于QQdemo,能够本身对UI作美化,以达到最佳效果。
代码托管在开源中国Github,欢迎各位指正 代码托管