手机APP端网络常见问题及优化对策
随着移动互联网的飞速发展,App的用户体验成为了我们关注的焦点。其中,网络通畅性和界面流畅性更是衡量一个App是否好用的重要指标。近期,我们对项目中的网络数据进行了深入分析,同时对业界的一些解决方案进行了调研,现在我来为大家梳理一下相关知识。
在使用App的过程中,如果我们经常遇到加载失败或者旋转的小圈不停的情况,那么很可能是App的网络性能出现了问题,需要研发同学进行优化。对于开发人员来说,定位网络问题是一项艰巨的任务,因为出现网络问题的用户往往分布广泛,调试定位困难。建立完善的网络监控体系显得尤为重要,通过海量数据的分析,我们可以精准定位网络问题。
经过分析和调研,我们发现手机APP移动端网络存在以下问题:
1. 网络成功率低,经常请求失败。
2. 用户反馈存在DNS劫持、数据被篡改、出现广告和请求超时等情况。
3. 网络延迟较长,且存在较多的长尾数据。
4. HTTP 1.1的head of blocking情况严重,一个网络抖动就会影响后续的请求。
5. 传输的Payload过大,导致延迟高、易超时。
针对以上问题,业界已经有许多解决方案。对于DNS劫持的情况,我们可以采用HTTPDNS或内置Server IP列表的方法。客户端可以直接访问HttpDNS接口,获取最优访问延迟的IP,从而避免劫持问题,降低网络延迟,提高连接成功率。建立Server IP列表也是一种解决方案,在本地缓存IP映射表,App启动时动态下发更新,访问服务器时直接拿出IP发出请求。
传输的Payload直接影响延迟和成功率。对于数据的压缩,许多公司已经开始使用ProtoBuf协议进行优化。可以考虑接入HTTP 2.0,它通过头部压缩等方式减小了传输的Payload。
我们还需要关注长连接与短连接的问题。域名合并是一种解决方案,将多个域名合并为少数几个域名,以便更好地利用HTTP的通道复用。尽早建立长连接,其他业务请求可以复用长连接通道,加快访问速度。考虑接入HTTP 2.0或SPDly解决HTTP 1.1的head of blocking问题,降低网络延迟。
除此之外,还有一些其他值得考虑的点:加入CDN加速、动静资源分离、合并请求减少流量、App网络诊断、根据网络情况动态设置超时时间等。
为了提高App的网络性能,我们需要综合考虑以上各种方案,从多个角度进行优化,从而提升用户体验。