Android 优化——网络优化

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 解析,即耗时又有被劫持风险。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,205评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,060评论 3 119
  • 人类简史笔记 本书阐述了人类的三次巨大革命:认知革命、农业革命和科技革命。 认知革命源于智人开始能够虚构一些事物,...
    静赏月之美阅读 2,498评论 0 0
  • 重点推荐每天5分钟阅读版:文件简洁、有视频、有延伸 5分钟阅读:请怀疑我讲的_《颠覆式创新》01 5分钟阅读:我要...
    神助阅读 7,772评论 2 18

友情链接更多精彩内容