亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

全部開發者教程

Android Studio 如何分析網絡活動

前面的小節我們學習了如何分析內存活動。本小節學習如何分析網絡活動。

1. 為什么應分析網絡活動?

當我們的應用向網絡發出請求時,設備必須使用高功耗的移動或 WLAN 無線裝置來收發數據包。無線裝置不僅要消耗電力來傳輸數據,而且還要消耗額外的電力來開啟并且不鎖定屏幕。

使用網絡性能剖析器( Network Profiler ),我們可以查找頻繁出現的短時網絡活動峰值,這些峰值意味著,我們的應用要求經常開啟無線裝置,或要求無線裝置長時間不鎖定屏幕以處理集中出現的大量短時請求。這種模式說明我們可以通過批量處理網絡請求,減少必須開啟無線裝置來發送或接收數據的次數,從而優化應用,改善電池性能。這種方式還能讓無線裝置切換到低功耗模式,延長批量處理請求之間的間隔時間,節省電量。

2. Network Profiler

網絡性能剖析器會在時間軸上顯示實時網絡活動,包括發送和接收的數據以及當前的連接數。這便于我們檢查應用傳輸數據的方式和時間,并適當優化底層代碼。

如需打開網絡性能剖析器,請按以下步驟操作:

依次點擊 View > Tool Windows > Profiler,也可以點擊工具欄中的 Profile 圖標。

從 Android Profiler 工具欄中選擇要分析的設備和應用進程。

點擊 NETWORK 時間軸上的任意位置以打開網絡性能剖析器。

  1. 事件時間軸;

  2. 網絡活動標簽頁;

  3. 網絡數據的詳細信息

窗口頂部顯示的是事件時間軸。在時間軸上,我們可以點擊并拖動以選擇時間軸的一部分來檢查網絡流量。在時間軸下方的窗格中,我們可以選擇以下某個標簽頁,以詳細了解時間軸上選定時段內的網絡活動:

  • Connection View:列出了在時間軸上選定時段內從我們應用的所有 CPU 線程發送或接收的文件。對于每個請求,我們可以檢查大小、類型、狀態和傳輸時長。 我們可以通過點擊任意列標題來對此列表排序。我們還會看到時間軸上選定時段的明細數據,從而了解每個文件的發送或接收時間。

  • Thread View:顯示應用的每個 CPU 線程的網絡活動。 如下圖所示,我們可以在此視圖中檢查應用的哪些線程負責每個網絡請求。

Connection ViewThread View 中,點擊請求名稱可檢查有關已發送或已接收數據的詳細信息。點擊各個標簽頁可查看響應標頭和正文、請求標頭和正文或調用堆棧。

ResponseRequest 標簽頁中,點擊 View Parsed 鏈接可顯示格式化文本,點擊 View Source 鏈接可顯示原始文本。

Tips:如果我們使用的是 HttpURLConnection API,則不會在 Request 標簽頁中看到標頭,除非我們使用 setRequestProperty 方法將其添加到我們的代碼中,如以下示例所示。

3. 排查網絡連接問題

如果網絡性能剖析器檢測到流量值,但無法識別任何受支持的網絡請求,我們會收到以下錯誤消息:

**Network Profiling Data Unavailable:** There is no information for the network traffic you've selected.

目前,Network Profiler 僅支持 HttpURLConnectionOkHttp 網絡連接庫。如果我們的應用使用的是其他網絡連接庫,我們可能無法在網絡性能剖析器中查看網絡活動。

4. 小結

本節課程我們主要學習了如何分析網絡活動。本節課程的重點如下:

  • 掌握如何檢查網絡流量。