Android 性能优化之网络优化

网络优化,对APP来说,网络优化是很重要的一个优化手段。它直接影响用户体验。比如,手机都有APP的流量消耗排行,再或者用户进入后,一直在Loading。长时间的等待,让用户会认为你的APP反应慢,体验很差。

下面,就聊下一般都有哪些网络优化的手段及 检查网络流量

网络优化的手段

1,网络连接的优化

1.1 添加网络数据缓存

访问的网络数据,我们可以添加网络缓存并配置缓存策略。比如,在无网络的情况下,直接返回缓存数据。比如给OKHttp设置缓存目录,及拦截器,。

1.2 IP直连

直接通过IP来连接后台,不使用域名。
首次域名解析一般需要几百毫秒,可直接通过 IP来发送网络请求,节省掉这部分时间,同时可以预防域名劫持等带来的风险。
这样做的坏处 后台想换IP是换不了(布置多个服务的时候)

1.3 连接复用

节省连接建立时间,开启keep-alive。
OKHttp默认已经做了。

1.4 压缩请求的数据
  • 对于POST请求,Body可以做Gzip压缩
  • 对请求头压缩(Http1.1不支持)

OKHttp已经做了

2,数据的优化

2.1 Protocol Buffer

Protocol Buffer是Google推出的一种数据交换格式。
使用google研发的protocol buffer 来作为跟后台的网络交互格式(可读性,没有json强)。

2.2 使用WebP图片

通过PNG转换成的WebP图片。大小都减少了25%。
这个不光可以在本地图片使用,还可以再加载网络图片的时候使用。

Android系统,在Android4.0,添加了对webP的支持;在Android4.2一下,是不支持带透明度的图片的。但是,现在最小版本估计都到4.4以上了,影响不大。

2.3 使用缩略图

在弱网环境下,使用缩略图,减少网络数据。

3,JobScheduler优化

JobScheduler 顾名思义就是任务调度器。从Android5.0开始添加的一个新的功能 。
它可以根据最小延迟时间、网络环境,每隔一段时间等等来帮助我们做一些决策。
我们用它可以做什么呢?在有网,空闲时间时候,自动下载新版本的APK等。

4,网络请求合并

合并网络请求,减少请求次数。对于不需要实时获取数据的接口

下面看下怎么使用Network Profiler来查看网络流量

查看网络流量(Network Profiler)

  • 为什么应分析应用的网络活动?
    当您的应用向网络发出请求时,设备必须使用高功耗的移动或 WLAN 无线装置来收发数据包。无线装置不仅要消耗电力来传输数据,而且还要消耗额外的电力来开启并且不锁定屏幕。

使用 Network Profiler,您可以查找频繁出现的短时网络活动峰值,这些峰值意味着,您的应用要求经常开启无线装置,或要求无线装置长时间不锁定屏幕以处理集中出现的大量短时请求。这种模式说明您可以通过批量处理网络请求,减少必须开启无线装置来发送或接收数据的次数,从而优化应用,改善电池性能。这种方式还能让无线装置切换到低功耗模式,延长批量处理请求之间的间隔时间,节省电量。
官方文档

打开Network Profiler分析工具的步骤:

  • 启用高级分析
  • 打开Profiler
启用高级分析

要启用高级分析功能,请按以下步骤操作:

  • 依次选择 Run > Edit Configurations。
  • 在左侧窗格中选择您的应用模块。
  • 点击 Profiling 标签,然后勾选 Enable advanced profiling。
  • 重新编译并运行您的应用。

高级分析配置会使编译过程变慢,所以仅在您想要开始分析您的应用时,才应启用该配置。

注意:高级分析功能不可用于原生代码。如果您的应用是纯原生应用(不含 Java Activity 类),则不可使用高级分析功能。如果您的应用使用 JNI,则可使用部分高级分析功能(如事件时间轴、垃圾回收事件、Java 分配对象和基于 Java 的网络 Activity),但不能检测基于原生代码的分配和网络 Activity。

打开Network Profiler

Network Profiler 在时间轴上显示实时网络活动,包括发送和接收的数据以及当前的连接数。这便于您检查应用传输数据的方式和时间,并适当优化底层代码。

要打开 Network Profiler,请按以下步骤操作:

  • 1.依次点击 View > Tool Windows > Profiler(您也可以点击工具栏中的 Profile 图标 )。
  • 2.从 Android Profiler 工具栏中选择要分析的设备和应用进程。如果您已通过 USB 连接设备但系统未列出该设备,请确保您已启用 USB 调试。
  • 3.点击 NETWORK 时间轴上的任意位置以打开 Network Profiler。

Network Profiler 功能说明

在这里插入图片描述

  • 1.窗口顶部显示的是事件时间轴。在时间轴 (1) 上,您可以点击并拖动以选择时间轴的一部分来检查网络流量。
  • 2.在时间轴下方的窗格 (2) 中,您可以选择以下某个标签,以查看有关时间轴上选定时段内的网络活动的更多详细信息:
    • Connection View:列出了在时间轴上选定时段内从您应用的所有 CPU 线程发送或接收的文件。对于每个请求,您可以检查大小、类型、状态和传输时长。您可以通过点击任意列标题来对此列表排序。您还会看到时间轴上选定时段的明细数据,从而了解每个文件的发送或接收时间。
    • Thread View:显示您应用的每个 CPU 线程的网络活动。如图 2 所示,您可以在此视图中检查应用的哪些线程负责每个网络请求。

从 Connection View 或 Thread View 中,点击一个请求名称可检查有关已发送或已接收数据的详细信息 (3)。点击各个标签可查看响应标头和正文、请求标头和正文或调用堆栈。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值