Network Inspector を使用してネットワーク トラフィックを検査する (original) (raw)

Network Inspector のタイムラインにはネットワーク アクティビティがリアルタイムで表示され、送受信されたデータが示されます。Network Inspector を使用すれば、アプリがデータを転送した方法とタイミングを調べ、基盤となるコードを適切に最適化できます。

Network Inspector を開く手順は次のとおりです。

  1. Android Studio のナビゲーション バーで [View] > [Tool Windows] > [App Inspection] を選択します。App Inspection ウィンドウが自動でアプリプロセスに接続したら、タブの中から [Network Inspector] を選択します。
    • App Inspection ウィンドウが自動でアプリプロセスを接続しない場合は、手動でアプリプロセスを選択する必要があります。
  2. App Inspection ウィンドウで、検査するデバイスとアプリプロセスを選択します。

Network Inspector の概要

[Network Inspector] ウィンドウの上部には、イベントのタイムラインが表示されます。クリックしてドラッグし、タイムラインの一部を選択してトラフィックを調査できます。

[Network Inspector] ウィンドウ

図 1. [Network Inspector] ウィンドウ。

詳細ペインのタイミング グラフを使用して、パフォーマンスの問題が発生している可能性のある場所を特定できます。黄色のセクションの先頭が、送信されるリクエストの最初のバイトに対応します。青色のセクションの先頭が、受信されるレスポンスの最初のバイトに対応します。青色のセクションの末尾は、受信されるレスポンスの最後のバイトに対応します。

選択した一部のタイムラインにおけるネットワーク アクティビティについて詳しく確認する場合は、タイムラインの下にあるペインで、次のいずれかのタブを選択します。

[Connection View] または [Thread View] でリクエスト名をクリックすると、送受信されたデータに関する詳細情報を調査できます。タブをクリックすると、レスポンス ヘッダーとボディ、リクエスト ヘッダーとボディ、コールスタックを表示できます。

[Response] タブと [Request] タブで、[View Parsed] をクリックすると書式付きテキストが表示され、[View Source] をクリックすると未加工テキストが表示されます。

未加工テキストと書式付きテキストの切り替え

図 4. 対応するリンクをクリックして、未加工テキストと書式付きテキストを切り替え

HttpsURLConnection のネットワーク リクエストの表示だけではなく、Network Inspector では OkHttp もサポートされます。一部のサードパーティ ネットワーク ライブラリ(Retrofit など)では、OkHttp を内部的に使用するため、Network Inspector でネットワーク アクティビティを検査できます。「Now In Android サンプルアプリネットワーク オペレーションに OkHttp を使用するため、 できます。

HttpsURLConnection API を使用している場合、次のサンプルに示すように setRequestProperty メソッドを使用してコードに含めた [Request] タブにのみヘッダーが表示されます。

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 がトラフィックの値を検出したもののサポート対象のネットワーク リクエストを特定できない場合は、次のエラー メッセージが表示されます。

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

現在のところ、Network Inspector はネットワーク接続用に HttpsURLConnection ライブラリと OkHttp ライブラリのみをサポートしています。アプリが別のネットワーク接続ライブラリを使用している場合、Network Inspector でネットワーク アクティビティを表示できないことがあります。このエラー メッセージを受信したもののアプリで HttpsURLConnection または OkHttp を使用している場合は、バグを報告するか、Issue Tracker を検索してこの問題に関連する既存のレポートにフィードバックを追加してください。また、これらのリソースを使用して追加のライブラリのサポートをリクエストすることもできます。