首页 > 代码库 > IM应用中的优化

IM应用中的优化


曾经做过IM应用中考虑过的一些关于应用优化的问题。


优化重心主要放在了电量优化和流量优化上:


电量优化

怎样测试耗电量(前台耗电、后台耗电)

1、专用设备

2、性能相关的app

3、自己动手去写电量消耗


电量优化

1、不要影响手机休眠

心跳包使用 alarm manager出发心跳包


2、尽量减少网络请求

数据缓存、本地存储,同步增量、一次发送多个请求


3、少使用GPS定位,网络定位优先


4、针对不同网络类型做优化

移动网络下载速度大于上传速度;2G一次发送数据包不要太大;3G4G一次发送多个更省电

上传buffer大小:2G 1024字节,3G 10k

下载buffer大小:2G 1024字节, 3G 30K


其他的优化可以参考官网



流量优化

怎样测试流量

uid=Process.myUid();

initRecvBytes=TrafficStats.GetUidRxBytes(uid);

initSendBytes=TrafficStats.GetUidTxBytes(uid);


流量优化

1、心跳

减小心跳包

减小发送频率

智能心跳,动态心跳时间


2、封包协议

 自定义封包协议,减小包大小。


3、异常重连机制

     动态重连机制


4、压缩

文件压缩

用到过的压缩算法:gzip



消息优化

      每一个重要消息都要给服务端回执







IM应用中的优化