二十一世纪将是信息化、网络化的年代,以简捷、快速为代表的即时通讯工具,已经成为当前网络用户最喜爱的沟通工具。2007年11月,Google推出了一个专为移动设备设计的软件平台——Android。Android手机平台的应用正是在这种需求中不断发展壮大。Android应用用需求的增加,已经吸引无数软件开发厂商投身其中,Android的开放性使其比苹果、黑莓、windows等对年轻人更具吸引力,同时Android还具有应用程序无界限、应用程序轻松嵌入网络、应用程序可并行运行等众多出色的品质,使其具有其他于机平台无法比拟的优势和发展空削。近两年,移动端的应用不断深入日常生活,2015天猫“双11”全球狂欢节交易额超912亿元,其中移动端占比 68% 。再创历史新高。结合现有资料,作为一个Android平台开发的初学者,本次选择完成一个基于Scocket通信的简单聊天软件的实现。
(1)开放源代码
Android平台开放源代码是它的主要优势之一,任何移动终端厂商都可以不受限制的加入到Android联盟中。显著的开放性吸引了众多优秀的开发者加入联盟,随着日益丰富的应用和用户人数的不断增加,一个崭新的平台日臻成熟。
(2)自由的开发商
Android平台为第三方开发商提供了一个非常白由、宽泛的环境。开发商因此不会受到各种条款的制约,这样促使了众多别致新颖的软件诞生,软硬件资源变得无限丰富。但其也存在缺点,比如暴力、血腥、情色等不利于青少年健康成长的游戏和程序同时应运而生,如何解决这类负面影响正是留给Android系统一大难题。
(3)Goog1e应用的完美结合
Google公司发展到现在已经走过10余年历史。从最初的搜索引擎到全面互联网的应用,Google服务如邮件、搜索、地图等已经成为连接互联网和用户的重要桥梁,而这些优秀的Google服务可以完美的结合到Android 平台手机上。
JDK 1.8+ ADT + Eclipse
本项目是简单的聊天系统的实现,预期所具备的的功能有用户注册和登陆功能以及及时聊天功能。
能够在真机上以软件方式运行,且运行速率不能过慢。
查找添加功能:能够通过账号查找好友,并进行添加;
分组功能:能够对好友进行分组,便于快速查找好友;
群聊功能:可以将多个好友拉入群,开启多人聊天模式。
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,欢迎各位指正 代码托管