android性能优化之即时通讯优化
Posted 夜宿山寺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android性能优化之即时通讯优化相关的知识,希望对你有一定的参考价值。
面试的时候问到了即时通讯系统,我选择的是基于xmpp进行即时通讯的框架,整个系统是基于openfire去实现的,但是怎么说呢,毕竟这个开源项目来说只是提供一个框架,其实是需要我们对他进行优化和改善的,当面试官问我如何去改善这个框架的时候我完全没有思路,因为毕竟学生时代的我们对于开源项目的认知都是停留在使用阶段,没有对这个开源项目进行评价和改进。后来查找了一些资料,可以从以下几点去完善这个框架。
1.聊天室的改进
因为移动网络的原因,聊天室来说其实是不需要对用户的状态进行发送的,移动网络相对不稳定,如果一上线或者一下线就要对聊天室里面大概一两千人发送一个状态,其实是不太和谐的,但就目前聊天室 来说基本上很少去维护一个状态信息。
2.心跳改进
基于xmpp的心跳来说大概是40个字节左右,那么其实我们可以改善一下这个协议,可以选择只发送一个空格,也就四个字节左右,对于移动网络来说这是一个不小的数字,对于android系统来说心跳的改进还可以使用系统的alarm manager去实现心跳,否则如果开启一个定时任务的话,会导致你的应用很耗电。
3.xmpp文件传输协议是点对点的效果不太好,需要改成http上传到server,如果是大文件传输的话需要对文件进行拆分传送否则会导致重传这个现象
4.尽量减少请求增加cache,最好只同步增量,但是这个是最不好控制的
6.流量优化,尽量减少心跳包的大小,减少发送的频率(据一门公开课的老师说微信的心跳包大概5分钟一个,),智能心跳,在聊天过程中可以把心跳功能关闭,当空闲时间超过4到5分钟的时候又可以重新打开心跳包。
个人学习总结:其实我感觉推送平台是一个不错的选择,毕竟优化足够了,创业团队从人力物力上来说还是用第三方比较合适,至少在性能调优和bug修复上面比较迅速。
以上是关于android性能优化之即时通讯优化的主要内容,如果未能解决你的问题,请参考以下文章