Network Inspector는 타임라인에 실시간 네트워크 활동을 표시하여 송수신된 데이터를 보여줍니다. Network Inspector를 사용하면 앱에서 데이터를 전송하는 방법과 시기를 검토하고 기본 코드를 적절하게 최적화할 수 있습니다.
Network Inspector를 열려면 다음 단계를 따르세요.
Android 스튜디오 탐색 메뉴에서 View >Tool Windows >App Inspection을 선택합니다. App Inspection 창이 앱 프로세스에 자동으로 연결되면 탭에서 Network Inspector를 선택합니다.
App Inspection 창이 앱 프로세스를 자동으로 연결하지 않으면 앱 프로세스를 수동으로 선택해야 할 수 있습니다.
App Inspection 창에서 검사할 기기와 앱 프로세스를 선택합니다.
Network Inspector 개요
Network Inspector 창 상단에 이벤트 타임라인이 표시됩니다.
타임라인에서 일부를 클릭하고 드래그하여 트래픽을 검사할 수 있습니다.
그림 1. Network Inspector 창
세부정보 창에서 타이밍 그래프를 통해 성능 문제가 발생할 수 있는 위치를 파악할 수 있습니다. 노란색 섹션의 시작 부분은 전송 중인 요청의 첫 바이트에 해당합니다. 파란색 섹션의 시작 부분은 수신 중인 응답의 첫 바이트에 해당합니다. 파란색 섹션의 끝 부분은 수신 중인 응답의 마지막 바이트에 해당합니다.
타임라인 아래의 창에서 다음 탭 중 하나를 선택하면 타임라인의 선택된 부분 동안의 네트워크 활동을 자세히 볼 수 있습니다.
Connection View: 앱의 모든 CPU 스레드에 걸쳐 타임라인의 선택된 부분 동안 전송되거나 수신된 파일이 나열됩니다. 각 요청의 크기, 유형, 상태 및 전송 기간을 검사할 수 있습니다. 이 목록을 정렬하려면 열 헤더를 클릭합니다. 각 파일이 전송되거나 수신된 시기를 표시하는 등 타임라인의 선택된 부분에 관한 세부정보도 확인할 수 있습니다.
Thread View: 앱의 각 CPU 스레드에 네트워크 활동이 표시됩니다. 그림 2에 표시된 것처럼, 이 뷰를 사용하면 각 네트워크 요청을 담당하는 스레드를 검사할 수 있습니다.
그림 2.Thread View의 앱 스레드별 네트워크 요청 검사
규칙 보기: 규칙은 응답이 발생할 때 앱이 어떻게 동작하는지 다양한 상태 코드, 헤더, 본문을 사용하여 테스트하는 데 도움이 됩니다. 새 규칙을 만들 때는 새 규칙의 이름을 지정하고 가로채려는 응답의 출처에 관한 정보를 Origin 하위 섹션에 포함해야 합니다. Response 하위 섹션에서 응답을 수정하는 위치와 방법을 지정할 수 있습니다. 예를 들어 특정 상태 코드가 포함된 응답에서 실행되도록 규칙을 설정하고 상태 코드를 수정할 수 있습니다. Header rules 및 Body rules 하위 섹션에서는 응답 헤더 또는 본문을 추가하거나 수정하는 하위 규칙을 만듭니다. 규칙은 나열된 순서대로 적용됩니다. 규칙 옆의 Active 체크박스를 선택하여 사용 설정 또는 사용 중지할 규칙을 선택합니다.
그림 3. Network Inspector Rules 및 Rule Details 창
Connection View 또는 Thread View에서 요청 이름을 클릭하면 전송되거나 수신된 데이터에 관한 자세한 정보를 검사할 수 있습니다. 응답 헤더와 본문, 요청 헤더와 본문, 또는 호출 스택을 보려면 탭을 클릭하세요.
Response 및 Request 탭에서 View Parsed 링크를 클릭하면 서식이 지정된 텍스트가 표시되고 View Source 링크를 클릭하면 원시 텍스트가 표시됩니다.
그림 4. 해당하는 링크를 클릭하여 원시 텍스트와 서식이 지정된 텍스트 간에 전환
Network Inspector는 HttpsURLConnection의 네트워크 요청을 표시하는 것 외에 OkHttp도 지원합니다.
Retrofit과 같은 일부 서드 파티 네트워크 라이브러리는 내부적으로 OkHttp를 사용하므로 Network Inspector를 통해 네트워크 활동을 검사할 수 있습니다. 이
Now In Android 샘플 앱
네트워크 작업에 OkHttp를 사용하므로
있습니다.
HttpsURLConnection API를 사용하는 경우 아래 샘플과 같이 setRequestProperty 메서드를 사용하여 코드에 포함한 경우에만 Request 탭에 헤더가 표시됩니다.
Kotlin
valurl=URL(MY_URL_EN)valurlConnection:HttpsURLConnection=url.openConnection()asHttpsURLConnection...// Sets acceptable encodings in the request header.urlConnection.setRequestProperty("Accept-Encoding","identity")
자바
URLurl=newURL(MY_URL_EN);HttpsURLConnectionurlConnection=(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를 검색하여 문제와 관련된 기존 신고에 의견을 포함하세요. 이 리소스를 사용하여 추가 라이브러리에 관한 지원을 요청할 수도 있습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Inspect network traffic with the Network Inspector\n\nThe Network Inspector displays real-time network activity on a timeline, showing\ndata sent and received. The Network Inspector lets you examine how and when your\napp transfers data and optimize the underlying code appropriately.\n\nTo open the Network Inspector, follow these steps:\n\n1. From the Android Studio navigation bar, select **View \\\u003e** **Tool Windows \\\u003e** **App Inspection** . After the app inspection window automatically connects to an app process, select **Network Inspector** from the tabs.\n - If the app inspection window doesn't connect to an app process automatically, you may need to select an app process manually.\n2. Select the device and app process you want to inspect from the **App Inspection** window.\n\nNetwork Inspector overview\n--------------------------\n\nAt the top of the Network Inspector window, you can see the event timeline.\nClick and drag to select a portion of the timeline and inspect the traffic.\n**Figure 1.** The Network Inspector window.\n\nIn the details pane, the timing graph can help you identify where performance\nissues could be occurring. The start of the yellow section corresponds to the\nfirst byte of the request being sent. The start of the blue section corresponds\nto the first byte of the response being received. The end of the blue section\ncorresponds to the final byte of the response being received.\n\nIn the pane below the timeline, select one of\nthe following tabs for more detail about the network activity during the\nselected portion of the timeline:\n\n- **Connection View**: Lists files that were sent or received during the selected portion of the timeline across all of your app's CPU threads. For each request, you can inspect the size, type, status, and transmission duration. To sort this list, click any of the column headers. You can also see a detailed breakdown of the selected portion of the timeline, showing when each file was sent or received.\n- **Thread View**: Displays the network activity on each of your app's CPU\n threads. As shown in figure 2, this view lets you inspect which\n threads are responsible for each network request.\n\n **Figure 2.** Inspect network requests by app thread in the **Thread View**.\n- **Rules View** : Rules help test how your app behaves when encountering\n responses with different status codes, headers, and bodies. When you create a\n new rule, name your new rule and include information about the origin of the\n response you want to intercept under the **Origin** subsection. In the\n **Response** subsection, you can specify where and how to modify the\n response. For example, you can set the rule to execute on responses with a\n specific status code as well as modify that status code. In the\n **Header rules** and **Body rules** subsections, create sub-rules that add or\n modify response headers or bodies. Rules are applied in the order that\n they're listed. Choose which rule to enable or disable by checking the\n **Active** box next to the rule.\n\n **Figure 3.** Network Inspector **Rules** and **Rule Details** panes.\n\nFrom either the **Connection View** or **Thread View**, click a request name to\ninspect detailed information about the data sent or received. Click the tabs to\nview the response header and body, request header and body, or call stack.\n\nOn the **Response** and **Request** tabs, click the **View Parsed** link to\ndisplay formatted text. Click the **View Source** link to display raw text.\n**Figure 4.** Toggle between raw text and formatted text by clicking the corresponding link.\n\nIn addition to showing network requests for\n[`HttpsURLConnection`](/reference/javax/net/ssl/HttpsURLConnection), Network\nInspector also supports [`OkHttp`](http://square.github.io/okhttp).\nSome third-party network libraries, such as\n[Retrofit](https://square.github.io/retrofit/), use `OkHttp`\ninternally, so Network Inspector lets you inspect their network activity. The\n[Now In Android sample app](https://github.com/android/nowinandroid)\nuses `OkHttp` for its network operations and is a good place to see it in\naction.\n\nIf you are using the\n`HttpsURLConnection` API,\nyou only see headers in the **Request** tab that you include in your code using\nthe\n[`setRequestProperty`](/reference/java/net/URLConnection#setRequestProperty(java.lang.String,%20java.lang.String))\nmethod, as shown in the following sample: \n\n### Kotlin\n\n```kotlin\nval url = URL(MY_URL_EN)\nval urlConnection: HttpsURLConnection = url.openConnection() as HttpsURLConnection\n...\n// Sets acceptable encodings in the request header.\nurlConnection.setRequestProperty(\"Accept-Encoding\", \"identity\")\n```\n\n### Java\n\n```java\nURL url = new URL(MY_URL_EN);\nHttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();\n//...\n// Sets acceptable encodings in the request header.\nurlConnection.setRequestProperty(\"Accept-Encoding\", \"identity\");\n```\n\nTroubleshoot network connection\n-------------------------------\n\nIf the Network Inspector detects traffic values but can't identify any\nsupported network requests, you receive the following error message: \n\n **Network Inspector Data Unavailable:** There is no information for the\n network traffic you've selected.\n\nCurrently, the Network Inspector supports only the\n[`HttpsURLConnection`](/reference/javax/net/ssl/HttpsURLConnection)\nand [`OkHttp`](http://square.github.io/okhttp) libraries for network\nconnections. If your app uses another network connection library, you might not\nbe able to view your network activity in the Network Inspector. If you have\nreceived this error message but your app does use `HttpsURLConnection`\nor `OkHttp`, [report a bug](/studio/report-bugs) or\n[search the issue\ntracker](https://issuetracker.google.com/issues?q=componentid:317727%2B)\nto include your feedback in an existing report related to your issue. You\ncan also use these resources to request support for additional libraries."]]