android内存管理

app网络优化

2020-03-12  本文已影响0人  朱_c713

虽然网络大环境在整体变好,但是由于我们的app用户量基数大,分布地域广泛。还是会存在网络4g信号差等情况出现。动网络的质量/带宽经常会发生“跳变”,但有线网络却是“渐变”。更加使网络优化显得必要

一. 程序在网络方面表现差带来的问题:

1) 网络耗费

过多没有经过处理的网络请求,会消耗用户的流量。Android手机有专门查看的系统入口,或者第三方软件,对流量敏感的用户会经常查看。如果app流量耗费大,用户可能选择卸载。

2)电量耗费

电量也是比较紧缺的资源,与上面类似,电量敏感的用户,可能会选择卸载应用。

3) 应用等待

网络处理表现不好的app,可能产生更多的用户等待,耗费用户耐心,最终损伤品牌价值,卸载应用。

二. 网络监控

2.1. Network Monitor

Android Studio自带的Network Monitor简单直观,可以看出时间段之内的网络请求数量及访问速率。 我的应用在刚打开的时候,箭头特别高,值得关注。


image.png

香槟色的是发送,蓝色的是接收

2.2. Fiddler,Charles等抓包工具

使用Charles、Fiddler等抓包工具同样可以实现Network Monitor的功能,而且更加强大。

2.3 Stetho

Stetho是Facebook出品的一个Android应用的调试工具。无需Root即可通过Chrome,在Chrome Developer Tools中可视化查看应用布局,网络请求,sqlite,preference等。同样集成了Stetho之后也可以很方便的查看网络请求的各种情况。

三. 优化操作

分析可能带来的后果,我们可以从三个方面着手:1. 速度;2. 成功率;3. 流量。

1)Gzip压缩

Gzip压缩好像是默认的请求都采用这种形式,在http请求头里已经被默认添加了这个设置。

2)采用ip直连

DNS解析的失败率占联网失败中很大一种,而且首次域名解析一般需要几百毫秒。ip直连,不通过dns解析器,直接访问到我们的服务器,节省下这部分开销。

3)使用webp格式的图片

采用WebP格式可大幅节省流量,相对于JPG格式的图片,流量能节省将近 25% 到 35 %;相对于 PNG 格式的图片,流量可以节省将近80%。最重要的是使用WebP之后图片质量也没有改变。
这个工作一般需要服务端做。

4 ) 图片上传

5) 使用更高版本的协议

http2.0实现了更多功能,例如:“多工”、头信息压缩、服务器推送等特性
理论上讲,更优,有条件可以采用。

6)请求打包

合并网络请求,减少请求次数。

7)网络缓存

对服务端返回数据进行缓存,设定有效时间,有效时间之内不走网络请求,减少流量消耗。也可以使用自定义缓存,这点okhttp开源框架已经做进去,可以学习具体的使用。

8) 采用更精简的数据交换格式

json之所以被广泛采用原因是他的大括号的方式,很清晰,响应的也比较成熟。但是他也说明只要我们能够区分数据接口,完全是可以自定义字符串的类型。大括号,中括号,引号本身也是占用流量的。可以直接使用我们和服务器约定的格式比如:就是一串字符串,通过“#”分割。
也可以了解:google推出的:Protocol Buffer

9)避免客户端的轮询,而使用服务器推送的方式

参考文献:
《Android 高性能变编程》【西班牙】Enrique López Mañas(恩里克·洛佩斯·马尼亚斯),【意】Diego Grancini (迪戈·格兰奇尼)著叶坤 译

《Kotlin实战》【俄】Dmitry Jemerov Svetlana Isakova 著 覃宇 罗丽 李思阳 蒋扬海 译
《重构改善既有代码设计》【美】马丁福勒(MartinFowler)著 熊节 林从羽译
《Android移动性能实战》 腾讯SNG专项测试团队 著
安卓包的优化
内存占用优化
app渲染优化
掌握多线程使用
app网络优化

上一篇 下一篇

猜你喜欢

热点阅读