网络检查器以时间轴的形式显示实时的网络活动,展示发送和接收的数据。借助网络检查器,您可以检查应用如何以及何时传输数据,并相应地优化底层代码。
要打开网络检查器,请按照以下步骤操作:
- 在 Android Studio 导航栏中,选择 **查看 > 工具窗口 > 应用检查**。应用检查窗口自动连接到应用进程后,从选项卡中选择 **网络检查器**。
- 如果应用检查窗口未自动连接到应用进程,则可能需要手动选择应用进程。
- 从 **应用检查** 窗口中选择要检查的设备和应用进程。
网络检查器概览
在网络检查器窗口顶部,您可以看到事件时间轴。单击并拖动以选择时间轴的一部分并检查流量。
在详细信息窗格中,计时图可以帮助您确定性能问题可能发生的位置。黄色部分的起点对应于发送请求的第一个字节。蓝色部分的起点对应于接收响应的第一个字节。蓝色部分的终点对应于接收响应的最后一个字节。
在下方的窗格中,选择以下选项卡之一,以获取有关时间轴所选部分期间网络活动的更多详细信息:
- 连接视图:列出在时间轴所选部分期间通过应用的所有 CPU 线程发送或接收的文件。对于每个请求,您可以检查大小、类型、状态和传输持续时间。要对列表进行排序,请单击任意列标题。您还可以看到时间轴所选部分的详细细分,显示每个文件何时发送或接收。
线程视图:显示应用每个 CPU 线程上的网络活动。如图 2 所示,此视图允许您检查哪些线程负责每个网络请求。
规则视图:规则有助于测试应用在遇到具有不同状态代码、标头和正文的响应时的行为。创建新规则时,请命名新规则,并在来源子部分中包含有关要拦截的响应来源的信息。在响应子部分中,您可以指定修改响应的位置和方式。例如,您可以将规则设置为对具有特定状态代码的响应执行操作,以及修改该状态代码。在标头规则和正文规则子部分中,创建添加或修改响应标头或正文的子规则。规则将按照列出的顺序应用。通过选中规则旁边的活动复选框,选择要启用或禁用的规则。
在连接视图或线程视图中,单击请求名称以检查有关发送或接收数据的详细信息。单击选项卡以查看响应标头和正文、请求标头和正文或调用堆栈。
在响应和请求选项卡上,单击查看已解析链接以显示格式化文本。单击查看源代码链接以显示原始文本。
除了显示HttpsURLConnection
的网络请求外,网络检查器还支持OkHttp
。某些第三方网络库(例如Retrofit)在内部使用OkHttp
,因此网络检查器允许您检查其网络活动。Now In Android 示例应用使用OkHttp
进行其网络操作,是了解其实际应用的好地方。
如果您使用的是HttpsURLConnection
API,则您只会在请求选项卡中看到您使用setRequestProperty
方法在代码中包含的标头,如下例所示:
Kotlin
val url = URL(MY_URL_EN) val urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection ... // Sets acceptable encodings in the request header. urlConnection.setRequestProperty("Accept-Encoding", "identity")
Java
URL url = new URL(MY_URL_EN); HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); //... // Sets acceptable encodings in the request header. urlConnection.setRequestProperty("Accept-Encoding", "identity");
网络连接故障排除
如果网络检查器检测到流量值但无法识别任何受支持的网络请求,则会收到以下错误消息:
**Network Inspector Data Unavailable:** There is no information for the
network traffic you've selected.
目前,网络检查器仅支持HttpsURLConnection
和OkHttp
库用于网络连接。如果您的应用使用其他网络连接库,则您可能无法在网络检查器中查看您的网络活动。如果您收到了此错误消息,但您的应用确实使用了HttpsURLConnection
或OkHttp
,请报告错误或搜索问题跟踪器,以将您的反馈包含在与您的问题相关的现有报告中。您还可以使用这些资源来请求对其他库的支持。