前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 优化——网络优化

Android 优化——网络优化

作者头像
三流编程
发布2018-09-11 15:46:52
1.7K0
发布2018-09-11 15:46:52
举报

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 解析,即耗时又有被劫持风险。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档