浅谈APP弱网优化

当一个APP迭代完善到一定程度,就不得不考虑用户体验及性能优化。今天我们主要讨论弱网络环境下APP如何优化以达到更好的用户体验。

1.何为弱网络环境

从字面意来讲,就是在网速不好的情况下使用APP来处理网络请求操作。如3G、4G网络,在网络信号不好的情况下用户的网络速度维持在较低的水平。当然在WI-FI下也存在网速差的情况。通常网络延迟Ping值超过200ms。在这样差的网络环境下,如果不对弱网进行优化,APP在使用过程中难免加载缓慢,用户体验肯定大大折扣。

1.1 弱网环境模拟

那么我们如何在开发工程中测试弱网环境呢?
我们可以真机器连接xcode后,打开iPhone,选择【设置】->【开发者】->【Network Link Conditioner】->【Enable】->点亮Enable后的按钮。
在里面选择对应的网络环境模式进行测试。
浅谈APP弱网优化_第1张图片

真实环境下如何检测APP弱网状态
在开发阶段我们可以利用手机设置弱网环境,那么在APP发布后如何检测APP弱网状态呢?
首先我们要区分网络状态和弱网络状态的区别。

1.2 弱网络状态

方案一:获取用户的下载速度

浅谈APP弱网优化_第2张图片

方案二:接口请求超时判断

方案三:方法返回时间判断

通过判断请求返回时间是否超过预计时间,如果超过认为当前网路状况差,不会影响正常流程
缺点:无法很好的区分是服务器出现故障还是用户网络有问题,笼统处理会导致看到‘网络状态差’提示的用户数量大,从而导致客诉

方案四:获取当前网络信号强度

2. 弱网状态下如何优化

下面就是我们的重头戏,如何做弱网优化。我主要从移动前端以下几个方面说起:

2.1 接口设计优化

在于后端设计接口是可以从以下几方面优化:
1.慢查询监控 2.多查询优化
3.常用接口cache:对于常用的接口进行缓存处理。
4.多接口合并:所谓的多接口合并也就是某个页面内请求过多,也可以考虑做一定的请求合并。

2.2 数据压缩再处理

1.对数据进行 Gzip 压缩。
2.精简数据格式,如 JSON 代替 XML,WebP 代替其他图片格式。
3.针对不同设备不同网络返回不同数据格式。
如不同分辨率图片大小(可配合七牛):
2/3G使用低清晰度图片——>下发300X240,精度为80的图片
4G普通清晰度图片——>下发600X480,精度为80的图片
WiFi高清晰度图片(最好根据网速来判断,wifi也有慢的)——>下发600X480,精度为100的图片。

2.3 数据缓存

对首页及特定一级页面进行数据缓存,在一定的有效时间内再次请求可以直接从缓存读取数据,也可避免空白页出现影响体验。

2.4 界面优化

1.针对弱网(移动网络), 不自动加载图片(显示本占位图)。
2.界面先反馈, 请求延迟提交。例如, 用户点赞操作, 可以直接给出界面的点赞成功的反馈,在网络情况较好的时候再发起请求.(类似支付宝没网也能扫码支付。)

3. 结语

网络优化, 是App优化中相当重要的一项优化. 除了客户端, 接口的优化外, 很多一部分优化还依赖于服务器端, 包括服务器端的代码开发, 部署方式等。本人学识有限不便多谈。

你可能感兴趣的:(Android随笔,网络,弱网,优化)