Android性能优化之网络优化

2019-12-31  本文已影响0人  alexlee1987

一、写在前面

  Android应用为什么需要考虑网络优化,主要基于以下几个原因:

  1. 流量:App的移动网络流量消耗对用户来说是比较敏感的;
  2. 电量:网络请求对电量的消耗是比较大的,影响手机的待机时间;
  3. 用户体验:网络请求是耗时操作,如果App请求等待时间长,会给用户网络卡, 应用反应慢的感觉。

  网络请求优化的目的是尽可能的减少用户等待的时间、减少用户的流量使用、减少对手机电量的消耗,最终达到提升用户体验。

二、分析网络连接的工具

1.AndroidStudio自带工具——Network Monitor

Android Studio内置的Monitor工具中就有一个Network Monitor,可以跟踪应用长传下载数据:

2.Charles、Fiddler等抓包工具

使用Charles、Fiddler等抓包工具同样可以实现Network Monitor的功能,而且更加强大。

3.FaceBook开源的调试工具——Stetho

Stetho是Facebook出品的一个Android应用的调试工具。无需Root即可通过Chrome,在Chrome Developer Tools中可视化查看应用布局,网络请求,sqlite,preference等。同样集成了Stetho之后也可以很方便的查看网络请求的各种情况。

三、Android应用网络优化原则

1.前后端采用gzip方式请求和响应

  前端在请求header添加:"content-encoding" 为 "gzip",后端也要开启gzip,才能生效。

  相比不采用gzip的请求方式,能节省流量,可以快速响应。

  Android 当前流行的http第三方框架默认都支持GZIP压缩,如OKHttp3;

2.图片设置

3.请求优化

4.本地缓存网络数据

把网络请求的数据缓存到本地,再次使用的时候直接用缓存的数据,缓存的数据需要设置缓存超时时间,便于更新最新网络数据。

5.离线缓存

当一个设备处于没有网络连接状态时,应用应该允许用户发出的网络请求,在网络连接恢复以后再执行这些网络请求。一个例子就是一个邮件客户端允许用户在设备处于离线的状态下依然能够创建,发送,查看,移动和删除已经存在的邮件,就是因为这些操作被保存下来并且在网络恢复以后再执行。

6.前端网站加速方法

7.优化体验的方法:结合本地数据

  用本地数据缓存(缓存到本地数据库或本地文件)配合网络请求完成数据的显示,具体步骤:先读取本地缓存中的数据显示,同时网络请求并行进行,收到网络请求后在网络数据与本地不一致的情况下更新UI显示和本地缓存数据。这个操作会提高数据的显示速度,但没有节约数据请求。

8.交互层级的设计也可以提升用户体验

交互层级的设计在需求评审的时候开发可以根据技术方案提出自己的优化建议,这个优化原则需要与交互、产品多沟通。

四、总结

网络优化,是App优化中相当重要的一项优化工作,除了客户端以上的优化原则,很多一部分优化工作依赖于服务端,包括服务器端的代码开发、部署方式等。

上一篇 下一篇

猜你喜欢

热点阅读