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



消息优化

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