ترافیک شبکه را با بازرس شبکه بازرسی کنید

بازرس شبکه، فعالیت شبکه بلادرنگ را در یک جدول زمانی نمایش می دهد و داده های ارسالی و دریافتی را نشان می دهد. بازرس شبکه به شما امکان می‌دهد نحوه و زمان انتقال داده‌ها را بررسی کنید و کدهای زیرین را به طور مناسب بهینه کنید.

برای باز کردن Network Inspector مراحل زیر را دنبال کنید:

  1. از نوار پیمایش Android Studio، View > Tool Windows > App Inspection را انتخاب کنید. پس از اینکه پنجره بازرسی برنامه به طور خودکار به فرآیند برنامه متصل شد، بازرس شبکه را از زبانه ها انتخاب کنید.
    • اگر پنجره بازرسی برنامه به طور خودکار به فرآیند برنامه متصل نمی شود، ممکن است لازم باشد فرآیند برنامه را به صورت دستی انتخاب کنید.
  2. دستگاه و فرآیند برنامه ای را که می خواهید بازرسی کنید از پنجره App Inspection انتخاب کنید.

نمای کلی بازرس شبکه

در بالای پنجره Network Inspector، می توانید جدول زمانی رویداد را ببینید. برای انتخاب بخشی از جدول زمانی و بررسی ترافیک کلیک کنید و بکشید.

پنجره بازرس شبکه
شکل 1. پنجره Network Inspector.

در بخش جزئیات، نمودار زمان‌بندی می‌تواند به شما کمک کند تا شناسایی کنید که در کجا مشکلات عملکرد ممکن است رخ دهد. شروع بخش زرد مربوط به اولین بایت درخواست ارسال شده است. شروع بخش آبی با اولین بایت پاسخ دریافت شده مطابقت دارد. انتهای بخش آبی مربوط به بایت نهایی پاسخ دریافتی است.

در قسمت زیر جدول زمانی، یکی از برگه های زیر را برای جزئیات بیشتر در مورد فعالیت شبکه در طول بخش انتخاب شده از جدول زمانی انتخاب کنید:

  • نمای اتصال : فایل‌هایی را که در طول بخش انتخابی جدول زمانی در تمام رشته‌های CPU برنامه شما ارسال یا دریافت شده‌اند فهرست می‌کند. برای هر درخواست، می توانید اندازه، نوع، وضعیت و مدت زمان ارسال را بررسی کنید. برای مرتب‌سازی این فهرست، روی هر یک از سرصفحه‌های ستون کلیک کنید. شما همچنین می توانید تفکیک دقیق بخش انتخاب شده از جدول زمانی را مشاهده کنید، که نشان می دهد هر فایل چه زمانی ارسال یا دریافت شده است.
  • نمای موضوع : فعالیت شبکه را در هر یک از رشته های CPU برنامه شما نمایش می دهد. همانطور که در شکل 2 نشان داده شده است، این نما به شما امکان می دهد بررسی کنید که کدام رشته ها مسئول هر درخواست شبکه هستند.

    درخواست‌های شبکه را بر اساس رشته برنامه در نمای رشته بررسی کنید
    شکل 2. درخواست های شبکه را بر اساس رشته برنامه در نمای موضوع بررسی کنید.
  • نمای قوانین : قوانین به آزمایش نحوه عملکرد برنامه شما در مواجهه با پاسخ هایی با کدهای وضعیت، سرصفحه ها و بدنه های مختلف کمک می کند. هنگامی که یک قانون جدید ایجاد می کنید، قانون جدید خود را نام ببرید و اطلاعات مربوط به مبدا پاسخی را که می خواهید رهگیری کنید، در زیربخش Origin قرار دهید. در زیربخش Response می توانید محل و نحوه تغییر پاسخ را مشخص کنید. برای مثال، می‌توانید این قانون را برای اجرای پاسخ‌هایی با کد وضعیت خاص تنظیم کنید و همچنین آن کد وضعیت را تغییر دهید. در زیر بخش قوانین سرصفحه و قوانین بدنه ، قوانین فرعی ایجاد کنید که سرصفحه ها یا بدنه های پاسخ را اضافه یا تغییر دهند. قوانین به ترتیبی که فهرست شده اند اعمال می شوند. با علامت زدن کادر Active در کنار قانون، قانون را برای فعال یا غیرفعال کردن انتخاب کنید.

    پنجره های قوانین بازرس شبکه و جزئیات قوانین
    شکل 3. پنجره های قوانین بازرس شبکه و جزئیات قوانین .

از نمای اتصال یا نمای رشته ، روی نام درخواست کلیک کنید تا اطلاعات دقیق در مورد داده های ارسال شده یا دریافت شده را بررسی کنید. برای مشاهده سرصفحه و متن پاسخ، سرصفحه و متن درخواست، یا پشته تماس، روی برگه ها کلیک کنید.

در تب Response و Request ، روی لینک View Parsed کلیک کنید تا متن فرمت شده نمایش داده شود. برای نمایش متن خام روی لینک مشاهده منبع کلیک کنید.

بین متن خام و متن قالب بندی شده جابه جا شوید
شکل 4. با کلیک کردن روی پیوند مربوطه، بین متن خام و متن قالب‌بندی شده جابه‌جا شوید.

علاوه بر نمایش درخواست‌های شبکه برای HttpsURLConnection ، Network Inspector از OkHttp نیز پشتیبانی می‌کند. برخی از کتابخانه های شبکه شخص ثالث، مانند Retrofit ، از OkHttp به صورت داخلی استفاده می کنند، بنابراین Network Inspector به شما امکان می دهد فعالیت شبکه آنها را بررسی کنید. برنامه نمونه Now In Android از OkHttp برای عملیات شبکه خود استفاده می کند و مکان خوبی برای مشاهده آن در عمل است.

اگر از HttpsURLConnection API استفاده می کنید، همانطور که در نمونه زیر نشان داده شده است، فقط سربرگ هایی را در برگه Request مشاهده می کنید که با استفاده از متد setRequestProperty در کد خود قرار داده اید:

کاتلین

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")

جاوا

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.

در حال حاضر، Network Inspector فقط از کتابخانه های HttpsURLConnection و OkHttp برای اتصالات شبکه پشتیبانی می کند. اگر برنامه شما از کتابخانه اتصال شبکه دیگری استفاده می کند، ممکن است نتوانید فعالیت شبکه خود را در Network Inspector مشاهده کنید. اگر این پیام خطا را دریافت کرده‌اید اما برنامه شما از HttpsURLConnection یا OkHttp استفاده می‌کند، یک اشکال را گزارش کنید یا ردیاب مشکل را جستجو کنید تا بازخورد خود را در گزارش موجود مرتبط با مشکل خود لحاظ کنید. همچنین می توانید از این منابع برای درخواست پشتیبانی برای کتابخانه های اضافی استفاده کنید.