利用 Network Profiler 检查网络流量

Network Profiler 能够在时间线上显示实时网络 Activity,包括发送和接收的数据以及当前的连接数。 这便于您查看应用传输数据的方式和时间,并据此对底层代码进行适当优化。

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

  • 点击 View > Tool Windows > Android Profiler(也可以点击工具栏中的 Android ProfilerInspect network activity - 图1)。
  • 从 Android Profiler 工具栏中选择您想要分析的设备和应用进程。如果您通过 USB 连接了某个设备但该设备未在设备列表中列出,请确保您已启用 USB 调试
  • 点击 NETWORK 时间线中的任意位置即可打开 Network Profiler。

为什么应分析应用的网络 Activity

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

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

要详细了解优化应用网络 Activity 的相关技巧,请参阅减少网络耗电量

Network Profiler 概览

窗口顶部显示的是 Event 时间线以及 1 无线装置功耗状态(低/高)与 WLAN 的对比。 在时间线上,您可以 2 点击并拖动选择时间线的一部分来检查网络流量。 下方的 3 窗口会显示在时间线的选定片段内收发的文件,包括文件名称、大小、类型、状态和时间。 您可以点击任意列标题为此列表排序。同时,您还可以查看时间线选定片段的明细数据,显示每个文件的发送或接收时间。

点击网络连接的名称即可查看 4 有关所发送或接收的选定文件的详细信息。 点击各个标签可查看响应数据、标题信息或调用堆栈。

Inspect network activity - 图2

图 1. Network Profiler 窗口

注: 必须启用高级分析才能从时间线中选择要检查的片段,查看发送和接收的文件列表,或查看有关所发送或接收的选定文件的详细信息。 要启用高级分析,请参阅启用高级分析

排查网络连接问题

如果 Network Profiler 检测到流量值,但无法识别任何受支持的网络请求,您会收到以下错误消息:

"Network Profiling Data Unavailable: There is no information for the networktraffic you've selected."

Network Profiler 目前只支持 HttpURLConnectionOkHttp 网络连接库。 如果您的应用使用的是其他网络连接库,则可能无法在 Network Profiler 中查看网络 Activity。 如果您收到这条错误消息,但您的应用确实使用了 HttpURLConnectionOkHttp,请报告错误搜索 Issue Tracker,在与您的问题有关的现有报告中加入您的反馈。 此外,您还可以利用以下资源请求提供关于其他库的支持。