⾼仿Demo(仿UI界⾯+服务器客户端+Socket连接)
f罩杯有多大 图片⾸先声明:这个项⽬⾥⾯有很多板块都是参考借鉴⽹上其他⼈的博⽂的。⽽且有⼀些也不太清除原作者到底是哪位。我做这个项⽬的⽬的主要是练⼿,因为我毕设也要做⼀个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
更新时间:2015.11.15