Network Inspector — یہ کیا ہے، کام کرنے کا اصول اور نیٹ ورک کی درخواستوں کی نگرانی

مصنف: IT Sectr اشاعت: 2026-05-07 مطالعے کا وقت: 8 منٹ

Android Studio میں Network Inspector ایک بلٹ ان پروفائلنگ ٹول ہے جو موبائل ایپ کے نیٹ ورک ٹریفک کی ریئل ٹائم میں نگرانی اور تجزیہ کرنے کے لیے ڈیزائن کیا گیا ہے۔ Android Developers (2025) کی سرکاری دستاویزات کے مطابق، یہ ٹول درخواستوں کے عملدرآمد کے وقت، منتقل کردہ ڈیٹا کے حجم اور ہر کال کے HTTP اسٹیٹس کو ٹریک کرنے کی اجازت دیتا ہے۔ یہ ٹول ایپ کوڈ میں تبدیلیوں کی ضرورت نہیں رکھتا اور API Level 14 اور اس سے اوپر کے کسی بھی پروجیکٹ کے ساتھ “فوری طور پر” کام کرتا ہے۔

اہم نکات

  • Network Inspector — Android Profiler کا ایک جزو ہے جو ہیڈرز اور جواب کے جسم کو دیکھنے کی صلاحیت کے ساتھ نیٹ ورک کی درخواستوں کی نگرانی کرتا ہے
  • ٹریفک کو روکنا OkHttp, Retrofit, Ktor اور WebView سمیت ایپ سے کی جانے والی تمام HTTP کالز کے لیے خودکار طور پر ہوتا ہے
  • ٹائم لائن ہر کال کی مدت، سائز اور اسٹیٹس کے ساتھ درخواستوں کی ترتیب دکھاتی ہے
  • تفصیلی منظر ہر درخواست کے ہیڈرز، درخواست اور جواب کا جسم، کوکیز اور مراحل کے مطابق عملدرآمد کا وقت شامل کرتا ہے
  • HAR فارمیٹ میں ڈیٹا برآمد کرنا نیٹ ورک کے تعامل کو ساتھیوں کو منتقل کرنے یا بعد کے تجزیے کے لیے محفوظ کرنے کی اجازت دیتا ہے

Network Inspector کیا ہے؟

Network Inspector Android Studio میں شامل ایک نیٹ ورک سرگرمی پروفائلنگ ٹول ہے۔ یہ ڈویلپرز کو ایپ کے ذریعے بھیجی جانے والی تمام HTTP اور HTTPS درخواستوں (ہیڈرز، درخواست اور جواب کا جسم، اسٹیٹس کوڈز اور عملدرآمد کا وقت سمیت) کو ریئل ٹائم میں دیکھنے کی اجازت دیتا ہے۔ Android Studio 3.0 سے Android Profiler پینل کے ذریعے قابل رسائی ہے۔

مقصد اور استعمال کا دائرہ

Network Inspector کا بنیادی کام موبائل ایپ اور سرور کے درمیان نیٹ ورک کے تعامل کی ڈیبگنگ ہے۔ یہ ٹول منتقل کردہ ڈیٹا کی درستگی کی جانچ، ردعمل کے وقت کا تجزیہ، API کی غلطیاں تلاش کرنے اور غیر موزوں نیٹ ورک پیٹرن — جیسے ایک اسکرین لوڈ کرتے وقت متعدد درخواستیں — دریافت کرنے کے لیے استعمال ہوتا ہے۔ Network Inspector API Level 14 والے کسی بھی آلے پر کام کرتا ہے۔

مطابقت اور لائبریریاں

یہ ٹول تمام اہم Android HTTP کلائنٹس کو سپورٹ کرتا ہے: OkHttp (ورژن 2.x سے)، Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (پرانا) اور WebView۔ OkHttp اور Retrofit کے لیے OkHttp Profiler لائبریری درکار ہے — یہ Android Studio 4.1+ استعمال کرتے وقت خودکار طور پر منسلک ہو جاتی ہے۔ Ktor کے لیے علیحدہ انٹرسیپٹر کنفیگریشن درکار ہے۔

Network Inspector کیسے کام کرتا ہے

Network Inspector Android Profiler کے ساتھ انجیکٹ کردہ Profiler Agent میکانزم کا استعمال کرتے ہوئے سسٹم لیول پر نیٹ ورک کالز کو روکتا ہے۔ درست کام کرنے کے لیے ایپ کی ڈیبگ بلڈ ضروری ہے۔ یہ ٹول ایپ کوڈ کو تبدیل نہیں کرتا اور بنیادی فعالیت کے لیے انحصار شامل کرنے کی ضرورت نہیں رکھتا۔

ٹریفک روکنے کا میکانزم

پروفائلنگ شروع ہونے پر، Network Inspector ایپ کے ڈیبگ عمل سے منسلک ہو جاتا ہے اور OkHttp Client, UrlConnection یا دیگر معاون لائبریریوں سے گزرنے والی تمام HTTP کالز کو سنتا ہے۔ ہر درخواست ٹائم اسٹیمپ کے ساتھ ریکارڈ کی جاتی ہے، جو نیٹ ورک سرگرمی کی ٹائم لائن بنانے کی اجازت دیتی ہے۔ HTTPS کے لیے، ایک سسٹم پرت استعمال ہوتی ہے جو ٹرانسمیشن کے دوران انکرپشن کو برقرار رکھتی ہے لیکن Studio کے اندر ڈی کوڈ شدہ مواد دیکھنے کی اجازت دیتی ہے۔

ڈیٹا اکٹھا کرنے کا فن تعمیر

ڈیٹا اکٹھا کرنا Android Studio Profiler Service کے ذریعے ہوتا ہے، جو میزبان پر علیحدہ عمل میں چلتا ہے۔ آلے پر ایک ہلکا پھلکا ایجنٹ چلتا ہے، جو ADB چینل کے ذریعے درخواستوں کا میٹا ڈیٹا منتقل کرتا ہے۔ یہ ایپ کی کارکردگی پر اثر کو کم سے کم کرتا ہے — Google کے مطابق اوور ہیڈ 3% سے کم ہے۔ درخواست کا ڈیٹا (جسم، ہیڈرز) صرف اس وقت منتقل ہوتا ہے جب تفصیلات فعال طور پر دیکھی جا رہی ہوں۔

kotlin
// Network Inspector کے ساتھ انضمام کے لیے OkHttp کنکشن
val client = OkHttpClient.Builder()
    .addInterceptor(HttpLoggingInterceptor().apply {
        level = HttpLoggingInterceptor.Level.BASIC
    })
    .build()

// Network Inspector کلائنٹ کے ذریعے تمام کالز کو خودکار طور پر روکتا ہے
client.newCall(Request.Builder()
    .url("https://api.example.com/data")
    .build()).execute()

Network Inspector کی اہم خصوصیات

Network Inspector نیٹ ورک ٹریفک کے جامع تجزیے کے لیے ٹولز کا ایک سیٹ فراہم کرتا ہے۔ ہر خصوصیت ہیڈرز کی جانچ سے لے کر API کی کارکردگی کے تجزیے تک ڈیبگنگ کے ایک مخصوص کام کو حل کرنے کے لیے بنائی گئی ہے۔

درخواستوں کی ٹائم لائن

Network Inspector کی مرکزی اسکرین تمام درخواستوں کی تاریخی ترتیب کو ٹائم لائن کی شکل میں دکھاتی ہے۔ ہر درخواست کو رنگین بار سے دکھایا جاتا ہے: سبز — کامیاب جواب (2xx), نیلا — ری ڈائریکشن (3xx), پیلا — کلائنٹ کی غلطی (4xx), سرخ — سرور کی غلطی (5xx)۔ بار کی لمبائی کنکشن سے مکمل جواب ملنے تک درخواست کے عملدرآمد کے وقت کے مطابق ہوتی ہے۔ یہ سست یا غلطی والی درخواستوں کو فوری طور پر شناخت کرنے کی اجازت دیتا ہے۔

پیرامیٹروضاحتمثال کی قدر
URLدرخواست کا مکمل پتہhttps://api.example.com/v2/users
Methodدرخواست کا HTTP طریقہPOST
Statusجواب کا HTTP کوڈ200 OK
Sizeدرخواست + جواب کا سائز (بائٹس)12.4 KB
Timeمکمل عملدرآمد کا وقت342 ms

درخواست کا تفصیلی منظر

کسی مخصوص درخواست کو منتخب کرنے پر، تفصیلات کا پینل کھلتا ہے: Headers(تمام درخواست اور جواب کے ہیڈرز), Request Body(متن یا بائنری فارمیٹ میں درخواست کا جسم), Response Body(JSON فارمیٹنگ سپورٹ کے ساتھ جواب کا جسم), Cookies(بھیجی اور وصول کردہ کوکیز), Timing(مراحل کے مطابق وقت کی تقسیم: DNS, Connection, TLS Handshake, Request, Response).

فلٹرنگ اور تلاش

Network Inspector URL, HTTP طریقہ, اسٹیٹس کوڈ اور مواد کی قسم کے مطابق درخواستوں کو فلٹر کرنے کی حمایت کرتا ہے۔ مخصوص ڈومینز کی درخواستوں کو خارج کیا جا سکتا ہے تاکہ صرف مطلوبہ API پر توجہ مرکوز کی جا سکے۔ تلاش جسم اور ہیڈرز سمیت درخواست کے تمام فیلڈز میں کام کرتی ہے، جو ایپ کے کسی مخصوص فنکشن کی ڈیبگنگ میں آسان ہے۔ مشترکہ فلٹرز اصولوں کا ایک سیٹ بنانے کی اجازت دیتے ہیں جو پروفائلنگ کے ہر آغاز پر خودکار طور پر لاگو ہوتا ہے۔

درخواستوں کو گروپ کرنا اور موازنہ کرنا

ٹائم لائن URL پیٹرن کے مطابق درخواستوں کو گروپ کرنے کی حمایت کرتی ہے۔ مثال کے طور پر، /api/v2/users/* کی تمام درخواستوں کو ایک گروپ میں جمع کیا جا سکتا ہے۔ یہ تجزیہ کو آسان بناتا ہے جب ایپ مختصر وقت میں سینکڑوں درخواستیں کرتی ہے۔ ملحقہ درخواستوں کا موازنہ کرنے کا فنکشن بار بار کالز پر سرور کے جوابات میں تبدیلیوں کی شناخت میں مدد کرتا ہے۔

Network Inspector کے ساتھ نیٹ ورک درخواستوں کی ڈیبگنگ

Network Inspector کا عملی استعمال عام ڈیبگنگ منظرناموں کا احاطہ کرتا ہے: ڈیٹا فارمیٹ کی جانچ، سست اینڈ پوائنٹس کی نشاندہی، بند نہ ہونے والے کنکشنز کی وجہ سے میموری لیک کا پتہ لگانا اور کیشنگ کا تجزیہ۔

JSON جواب کی ساخت کی جانچ

ایک عام کام یہ یقینی بنانا ہے کہ سرور متوقع فارمیٹ میں ڈیٹا واپس کرے۔ Network Inspector جواب کے جسم کو JSON فارمیٹنگ کے ساتھ دکھاتا ہے، جس میں نحو کو نمایاں کرنا شامل ہے۔ اگر جواب کلائنٹ پر پارس نہیں ہوتا، تو انسپکٹر فوری طور پر وجہ دکھاتا ہے: فیلڈ کی کمی، غلط ڈیٹا کی قسم (نمبر کے بجائے سٹرنگ) یا اضافی نیسٹنگ۔ اگر سرور غلطی واپس کرتا ہے، تو انسپکٹر کوڈ اور پیغام کے ساتھ غلطی کی ساخت دکھاتا ہے۔ بائنری فارمیٹس (Protocol Buffers, تصاویر) کے لیے سائز اور مواد کی قسم دکھائی جاتی ہے۔

عملدرآمد کے وقت کا تجزیہ

Timing ٹیب درخواست کے عمل کو مراحل میں تقسیم کرتا ہے: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive۔ اگر کل وقت 1–2 سیکنڈ سے تجاوز کر جائے تو مرحلہ وار تقسیم وجہ کا تعین کرنے میں مدد کر سکتی ہے۔ مثال کے طور پر، طویل DNS ریسالور کے مسائل کی نشاندہی کرتا ہے، طویل TLS Handshake سرور پر پرانے پروٹوکول ورژن کی نشاندہی کرتا ہے، طویل Response سست سرور کوڈ یا اضافی ڈیٹا کے ساتھ غیر موثر درخواست کی نشاندہی کرتا ہے۔ Timing کا تجزیہ سرور کی طرف اصلاح سے پہلے رکاوٹوں کی نشاندہی کرنے میں مدد کرتا ہے۔

ڈپلیکیٹ درخواستیں تلاش کرنا

Network Inspector اضافی درخواستوں کی شناخت میں مدد کرتا ہے — مثال کے طور پر، جب اسکرین کے ہر گھومنے پر Activity ڈیٹا لوڈنگ کو دوبارہ بناتی ہے۔ ٹائم لائن پر یکے بعد دیگرے ایک جیسی درخواستوں کا سلسلہ مسئلے کی واضح نشاندہی کرتا ہے۔ حل کیشنگ، ViewModel کا استعمال حالت کو محفوظ رکھنے کے ساتھ یا ایک بار لوڈ کرنے کے لیے SingleLiveEvent ہو سکتا ہے۔

kotlin
// دہرائے جانے سے بچنے کے لیے OkHttp کے ساتھ درخواستوں کو کیش کرنا
val cache = Cache(
    File(context.cacheDir, "http_cache"),
    cacheSize = 10L * 1024 * 1024 // 10 MB
)

val cachedClient = OkHttpClient.Builder()
    .cache(cache)
    .addNetworkInterceptor(CacheInterceptor())
    .build()

Network Inspector کی حدود اور متبادل

وسیع صلاحیتوں کے باوجود، Network Inspector کی کچھ حدود ہیں جنہیں مدنظر رکھنا ضروری ہے۔ بعض منظرناموں — جیسے خود دستخط شدہ سرٹیفکیٹس کے ساتھ HTTPS کو روکنا یا تیسرے فریق کی لائبریریوں کے ٹریفک کا تجزیہ — کے لیے متبادل ٹولز کی ضرورت ہو سکتی ہے۔

پلیٹ فارم اور لائبریری کی حدود

Network Inspector صرف Android ایپلیکیشنز کے ساتھ کام کرتا ہے اور iOS کو سپورٹ نہیں کرتا۔ Kotlin Multiplatform (KMM) کے لیے، کچھ درخواستیں ظاہر نہیں ہو سکتیں اگر وہ نیٹو حصے میں عمل میں لائی جائیں۔ کچھ لائبریریاں — جیسے gRPC, WebSocket (HTTP نہیں), Apollo کے ذریعے GraphQL (ورژن 3.x سے پہلے) — اضافی انٹرسیپٹرز ترتیب دینے تک جزوی طور پر یا بالکل نہیں روکی جا سکتیں۔

متبادل ٹولز

نیٹ ورک ٹریفک کے گہرے تجزیے کے لیے تیسرے فریق کے حل موجود ہیں: Charles Proxy (HTTPS روکنے کے ساتھ مکمل پراکسی سرور), Proxyman (macOS کے لیے متبادل), Wireshark (پیکٹ لیول تجزیہ), Stetho by Facebook (Chrome DevTools انضمام), Chucker (ایپ کے اندر درخواستوں کے معائنے کی لائبریری)۔ ہر ٹول کا اپنا دائرہ کار ہے: Charles اور Proxyman ترقی کے ابتدائی مراحل میں سرور کے ساتھ تعامل کی ڈیبگنگ میں ناگزیر ہیں، جبکہ Chucker ٹیسٹ بلڈز میں معلومات جمع کرنے کے لیے استعمال ہوتا ہے۔

ٹولقسمپلیٹ فارمHTTPSHAR
Network InspectorAndroid Studio میں شاملAndroidہاںہاں
Charles Proxyپراکسی سرورکراس پلیٹ فارمہاںہاں
Proxymanپراکسی سرورmacOS, iOSہاںہاں
Chuckerایپ میں انسپکٹرAndroidہاںنہیں
Wiresharkپیکٹ تجزیہ کارکراس پلیٹ فارمنہیںنہیں

اکثر پوچھے گئے سوالات

Network Inspector درخواستیں کیوں نہیں دکھاتا؟

یقینی بنائیں کہ ایپ Debug کنفیگریشن میں بنائی گئی ہے اور Android Profiler منسلک ہو کر چلائی گئی ہے۔ اگر OkHttp 4.x استعمال ہو رہا ہے تو لائبریری کو تازہ ترین ورژن میں اپ ڈیٹ کرنے کی ضرورت ہو سکتی ہے۔ Ktor کے لیے، درخواستیں صرف اس وقت ظاہر ہوتی ہیں جب Ktor کلائنٹ ایسے Engine کے ساتھ استعمال کیا جائے جو روکنے کو سپورٹ کرتا ہو۔

کیا HTTPS ٹریفک دیکھی جا سکتی ہے؟

ہاں، Network Inspector اضافی ترتیب کے بغیر HTTPS ٹریفک کو سپورٹ کرتا ہے۔ Charles Proxy کے برعکس، روٹ سرٹیفکیٹ انسٹال کرنے کی ضرورت نہیں ہے۔ یہ ٹول ڈیبگ سیشن کے اندر ٹریفک کو ڈی کوڈ کرنے کے لیے Android Profiler کے نظامی میکانزم کا استعمال کرتا ہے۔

Network Inspector سے ڈیٹا کیسے برآمد کیا جائے؟

Network Inspector HAR (HTTP Archive) فارمیٹ میں ڈیٹا برآمد کرنے کی اجازت دیتا ہے۔ پینل کے اوپری دائیں کونے میں Export بٹن دبائیں۔ HAR فائل کسی بھی HAR ویور میں کھولی جا سکتی ہے یا مزید تجزیے کے لیے Charles Proxy اور Proxyman میں درآمد کی جا سکتی ہے۔

کیا Network Inspector ایپ کی کارکردگی کو متاثر کرتا ہے؟

Google کے مطابق، فعال پروفائلنگ کے دوران اوور ہیڈ 3% سے تجاوز نہیں کرتا۔ Network Inspector بند ہونے پر کوئی اوور ہیڈ نہیں ہے۔ یہ ٹول ریلیز بلڈز پر استعمال کرنے کی سفارش نہیں کی جاتی، لیکن ڈیبگ سیشنز میں جدید آلات پر اثر نمایاں نہیں ہوتا۔

اگر جواب خام ڈیٹا کے طور پر دکھائے تو کیا کریں؟

اگر جواب کا جسم ناقابل پڑھنے والے خام ڈیٹا کے طور پر دکھائے، تو یہ gzip کمپریشن یا بائنری فارمیٹ (Protocol Buffers, MessagePack) کی وجہ سے ہو سکتا ہے۔ Network Inspector خود بخود gzip کو ڈی کوڈ کرتا ہے۔ کسٹم فارمیٹس کے لیے جواب کے ہیڈرز میں Content-Type ہنٹ استعمال کریں۔

خلاصہ

  • Network Inspector — ایپ کوڈ میں تبدیلی کے بغیر ریئل ٹائم میں نیٹ ورک درخواستوں کی نگرانی اور ڈیبگنگ کے لیے Android Studio میں شامل ایک ٹول ہے
  • خودکار روکنا OkHttp, Retrofit, Ktor اور UrlConnection کے ذریعے تمام HTTP کالز کو ڈیبگ بلڈ میں “فوری طور پر” روکتا ہے
  • اسٹیٹس کوڈ کے مطابق رنگ کوڈ والی ٹائم لائن سست، ناکام اور دہرائی جانے والی درخواستوں کی فوری شناخت کرتی ہے
  • ہر درخواست کا تفصیلی منظر ہیڈرز، جسم (JSON فارمیٹنگ کے ساتھ)، کوکیز اور مرحلہ وار عملدرآمد کے وقت کا تجزیہ شامل کرتا ہے
  • مرحلہ وار Timing تجزیہ (DNS, TCP, TLS, Request, Response) سست درخواستوں کی صحیح وجہ کا تعین کرنے میں مدد کرتا ہے
  • HAR برآمد سیشنز کو ساتھیوں کو منتقل کرنے یا Charles Proxy جیسے تیسرے فریق کے ٹولز میں تجزیہ کرنے کے لیے محفوظ کرنے کی اجازت دیتا ہے
  • مزید پیچیدہ منظرناموں کے لیے، Charles Proxy یا Proxyman استعمال کریں — یہ OS لیول پر ٹریفک روکنے اور iOS کے ساتھ کام کرنے کو سپورٹ کرتے ہیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں