تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يعرض Network Inspector (أداة فحص الشبكة) نشاط الشبكة في الوقت الفعلي على مخطط زمني، مع توضيح
إرسال واستقبال البيانات. يتيح لك Network Inspector (أداة فحص الشبكة) فحص كيف ومتى
نقل البيانات وتحسين الرمز الأساسي بشكل مناسب.
من شريط التنقل في "استوديو Android"، اختَر عرض >نوافذ الأدوات >.
فحص التطبيق: بعد اتصال نافذة فحص التطبيق تلقائيًا
إلى إحدى عمليات التطبيق، اختَر Network Inspector (أداة فحص الشبكة) من علامات التبويب.
في حال عدم ارتباط نافذة فحص التطبيق بعملية داخل التطبيق
تلقائيًا، قد تحتاج إلى تحديد عملية التطبيق يدويًا.
اختَر عملية الجهاز والتطبيقات التي تريد فحصها من
فحص التطبيق.
نظرة عامة على Network Inspector (أداة فحص الشبكات)
في أعلى نافذة Network Inspector (أداة فحص الشبكات)، يمكنك الاطّلاع على المخطط الزمني للحدث.
انقر واسحب لتحديد جزء من المخطط الزمني وفحص حركة المرور.
الشكل 1. نافذة Network Inspector (أداة فحص الشبكة).
في جزء التفاصيل، يمكن أن يساعدك الرسم البياني للتوقيت في تحديد موضع الأداء
المشكلات المحتملة. تتجاوب بداية القسم الأصفر مع
البايت الأول من الطلب الذي يتم إرساله. تتجاوب بداية القسم الأزرق
إلى البايت الأول من الاستجابة التي يتم تلقيها. نهاية القسم الأزرق
مع البايت الأخير من الاستجابة التي يتم تلقيها.
في الجزء أسفل المخطط الزمني، حدد أحد
للحصول على مزيد من التفاصيل حول نشاط الشبكة أثناء
الجزء المحدد من الجدول الزمني:
عرض الاتصال: يسرد الملفات التي تم إرسالها أو استلامها أثناء
الجزء المحدد من المخطط الزمني في جميع سلاسل وحدة المعالجة المركزية (CPU) لتطبيقك. بالنسبة
كل طلب، يمكنك فحص الحجم والنوع والحالة وانتقال
المدة. لترتيب هذه القائمة، انقر على أي من رؤوس الأعمدة. يمكنك
راجع أيضًا توزيعًا تفصيليًا للجزء المحدد من الجدول الزمني،
يعرض تاريخ إرسال أو استلام كل ملف.
عرض سلسلة المحادثات: يعرض نشاط الشبكة في كل وحدة معالجة مركزية في تطبيقك
سلاسل المحادثات. وكما هو موضح في الشكل 2، تتيح لك طريقة العرض هذه فحص
تكون سلاسل المحادثات مسؤولة عن كل طلب من طلبات الشبكة.
الشكل 2. فحص طلبات الشبكة حسب سلسلة محادثات التطبيق في
عرض سلسلة المحادثات:
عرض القواعد: تساعد القواعد في اختبار سلوك تطبيقك عند مواجهة
الاستجابات برموز حالة وعناوين ونصوص مختلفة. عند إنشاء
جديدة، فقم بتسمية قاعدتك الجديدة وتضمين معلومات عن أصل
الردّ الذي تريد اعتراضه ضمن القسم الفرعي المصدر. في جلسة المعمل،
Response، يمكنك تحديد مكان وكيفية تعديل
الاستجابة. على سبيل المثال، يمكنك ضبط القاعدة لتنفيذها على الاستجابات التي تحتوي على
المحدد بالإضافة إلى تعديل رمز الحالة هذا. في جلسة المعمل،
تُنشئ الأقسام الفرعية قواعد العناوين وقواعد النص الأساسي قواعد فرعية تضيف أو
تعديل عناوين الاستجابة أو نصوصها يتم تطبيق القواعد بالترتيب الذي
التي تم إدراجها. اختر القاعدة التي تريد تفعيلها أو إيقافها من خلال وضع علامة في المربّع
المربّع نشط بجانب القاعدة.
الشكل 3.القواعد وتفاصيل القواعد في أداة فحص الشبكة
الأجزاء.
من عرض الاتصال أو عرض سلسلة المحادثات، انقر على اسم طلب من أجل
وفحص المعلومات التفصيلية حول البيانات المرسلة أو المستلمة. انقر فوق علامات التبويب
عرض عنوان الاستجابة ونصها أو عنوان الطلب ونصه أو حزمة الطلبات
في علامتَي التبويب الرد والطلب، انقر على الرابط عرض التحليل إلى
عرض نص منسق. انقر على الرابط عرض المصدر لعرض النص غير المنسّق.
الشكل 4. التبديل بين النص الأولي والنص المنسَّق عن طريق
النقر على الرابط المقابل.
بالإضافة إلى عرض طلبات الشبكة
HttpsURLConnection، الشبكة
تتوافق أداة الفحص أيضًا مع OkHttp.
بعض مكتبات الشبكات التابعة لجهات خارجية، مثل
التعديل، استخدِم OkHttp
داخليًا، ولذلك يتيح لك Network Inspector (أداة فحص الشبكة) فحص نشاط الشبكة. تشير رسالة الأشكال البيانية
نموذج تطبيق Now In AndroidOkHttp في عمليات الشبكة كما أنها تعد مكانًا جيدًا للاطلاع عليها في
اتخاذ القرار.
إذا كنت تستخدم
واجهة برمجة تطبيقات HttpsURLConnection
لن ترى سوى العناوين في علامة التبويب الطلب التي تُدرجها في الرمز باستخدام
الـ
setRequestProperty
كما هو موضح في النموذج التالي:
Kotlin
valurl=URL(MY_URL_EN)valurlConnection:HttpsURLConnection=url.openConnection()asHttpsURLConnection...// Sets acceptable encodings in the request header.urlConnection.setRequestProperty("Accept-Encoding","identity")
Java
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، يمكنك الإبلاغ عن خطأ أو
البحث عن المشكلة
جهاز تتبُّع
لتضمين ملاحظاتك في تقرير حالي متعلق بمشكلتك. إِنْتَ
أيضًا استخدام هذه الموارد لطلب الدعم لمكتبات إضافية.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]