Android 网络优化

网络优化维度
流量消耗,弱网质量,网络稳定性以及应用性能等方面。

网络流量质量提升的同时会减少手机电量的消耗,减少公司的成本。
流量维度:

  • 减少整个应用的流量消耗,比如采用更小的数据格式,压缩数据传输,选择更小的图片
  • 准确统计消耗的流量,网络的类型,前后台等数据指标来减少网络流量的消耗

质量维度:

  • 提高网络请求的速度,提高网络请求成功率,提供网络缓存,减少网络请求提高应用体验,更小的数据格式在减少流量消耗的同时提升弱网下的用户体验。
  • 准确统计网络请求的各个维度,提升网络质量。

网络优化工具
NetWorkProfiler 在应用启动过程中开启高级选项

  • run > edit configurations
  • 勾选enable advanced profiling
  • apply>profile模式部署

抓包工具

Stetho

流量优化

流量统计
NetWorkStatsManager
获取指定时间间隔的流量
获取不同网络类型下的流量

减少图片大小
*选用合适的图片格式(推荐使用webP)
*不同清晰度会空间影响很大
*合适的位置展示合适大小的图片

序列化数据
*减小序列化数据大小
*json与xml为了提高可读性,在文件中加入了大量的符号,空格等字符,占用空间,可以采用protocolbuffers,nano-proto-buffer,flatbuffer来替换

其他优化
*缓存数据
*不要采用轮询的方式请求数据
*数据压缩
*数据增量更新
*请求打包,减少请求头信息

质量优化
DNS优化
*DNS解析的失败率占联网失败中很大的一部分,而且首次解析的耗时几百毫秒。
*采用IP直连省去DNS解析过程,节约时间
*采用httpDNS,避免local DNS造成的域名劫持和跨网访问,解决域名解析带来的麻烦。

网络协议优化
*采用高版本HTTP
*采用quic协议,比如Google的grpc
*采用socket长链,保证数据实时收发

图片优化
选取合适的图片格式,不仅减少了流量也提高了网络传输的成功率
选取缩略图,图片越小传输速度越快,成功率越高
分片上传,根据网络情况动态调整分片大小,失败重传

其他优化
*打包网络请求,监控网络状态,在WiFi下预取
*区分数据重要程度,低优先级数据在WiFi网络下上传
*设置重试次数,减少服务器压力
*资源部署cdn
*弱网情况下,不现实图片

你可能感兴趣的:(Android 网络优化)