美文网首页android基础知识
Android 优化——网络优化

Android 优化——网络优化

作者: 三流之路 | 来源:发表于2018-07-09 22:08 被阅读0次

    Android 优化目录


    利用 Network Profiler 检查网络流量

    1. 接口设计

      • API设计

        App 与 Server 之间的 API 设计要考虑网络请求的频次,资源的状态等。以便 App 可以以较少的请求来完成业务需求和界面的展示。

        比如注册登录一般会有两个 API,但是设计 API 时应该给注册接口包含一个隐式的登录。来避免 App 在注册后还得请求一次登录接口(有可能失败,从而导致业务流程失败)。

        比如有些请求可能包含了几种小请求,可以单独设计个接口,减少请求次数。

      • Gzip 压缩

        使用 Gzip 来压缩 request 和 response,减少传输数据量,从而减少流量消耗。

      • 考虑使用 Protocol Buffer/flatBuffer 代替 JSON

      • 图片的 Size

        图片相对于接口请求来说,数据量要大得多。故而也是需要优化的一个点。可以在获取图片时告知服务器需要的图片的宽高,以便服务器给出合适的图片,避免浪费。以七牛为例,可以在请求图片的 url 中添加诸如质量,格式,width,height 等 path 来获取合适的图片资源。对于不同的设备不同网络返回不同的内容不同分辨率图片。

      • 增量更新

        需要数据更新时,可考虑增量更新。如常见的服务端进行 bsdiff,客户端进行 bspatch。

      • 大文件下载

        支持断点续传,并缓存 Http Resonse 的 ETag 标识,下次请求时带上,从而确定是否数据改变过,未改变则直接返回 304。

    2. 网络缓存,减少延迟节省流量。

    3. 打包网络请求

      当接口设计不能满足业务需求时。例如可能一个界面需要请求多个接口,或是网络良好,处于 Wifi 状态下时我们想获取更多的数据等。这时就可以打包一些网络请求,例如请求列表的同时,获取 Header 点击率较高的的 item 项的详情数据,响应体里包含更多的内容。

    4. 监听相关状态

      监听设备的状态:休眠状态、充电状态、网络状态,结合 JobScheduler 来根据实际情况做网络请求。比方说 Splash 闪屏广告图片,可以在连接到 Wifi 时下载缓存到本地; 新闻类的 App 可以在充电,Wifi 状态下做离线缓存。

    5. 弱网优化

      除了正常的网络优化,还需考虑到弱网情况下 App 的表现。

      一般来说,网络延迟在 60ms 内是 OK 的,超过 200ms 就比较糟糕了。弱网优化,本质上是在弱网的情况下能让用户流畅的使用。

      • 压缩/减少数据传输量
      • 利用缓存减少网络传输
      • 针对弱网(移动网络),不自动加载图片
      • 界面先反馈,请求延迟提交。例如,用户点赞操作,可以直接给出界面的点赞成功的反馈,使用 JobScheduler 在网络情况较好的时候打包请求。
    6. 建立取消机制,页面跳走了要取消请求,且不再接收数据。

    7. GET 请求失败增加重试机制,POST 请求可能因为延时,不要有重试机制,要防止频繁请求相同的接口。重试机制必须要有明显的结束条件。

    8. 避免重复上传与下载。避免轮询。

    9. IP 直连,避免 DNS 解析,即耗时又有被劫持风险。

    相关文章

      网友评论

        本文标题:Android 优化——网络优化

        本文链接:https://www.haomeiwen.com/subject/dmkxpftx.html