Android Studio में Network Inspector एक बिल्ट-इन प्रोफाइलिंग टूल है जो मोबाइल एप्लिकेशन के नेटवर्क ट्रैफिक की रियल टाइम में निगरानी और विश्लेषण करने के लिए डिजाइन किया गया है। आधिकारिक Android Developers दस्तावेज़ (2025) के अनुसार, यह टूल अनुरोधों के निष्पादन समय, स्थानांतरित डेटा की मात्रा और प्रत्येक कॉल की HTTP स्थिति को ट्रैक करने की अनुमति देता है। यह टूल एप्लिकेशन कोड में बदलाव की आवश्यकता नहीं रखता है और API Level 14 और उससे ऊपर के किसी भी प्रोजेक्ट के साथ “बॉक्स से बाहर” काम करता है।
मुख्य बातें
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 Profiler Agent तन्त्र का उपयोग करके सिस्टम स्तर पर नेटवर्क कॉल्स को इंटरसेप्ट करता है, जो Android Profiler के साथ इंजेक्ट किया जाता है। उचित संचालन के लिए एप्लिकेशन की डीबग बिल्ड की आवश्यकता होती है। यह टूल एप्लिकेशन कोड को संशोधित नहीं करता है और बुनियादी कार्यक्षमता के लिए निर्भरताएँ जोड़ने की आवश्यकता नहीं है।
प्रोफाइलिंग शुरू करने पर, Network Inspector एप्लिकेशन की डीबग प्रक्रिया से जुड़ता है और OkHttp Client, UrlConnection या अन्य समर्थित लाइब्रेरीज़ से गुजरने वाली सभी HTTP कॉल्स को सुनता है। प्रत्येक अनुरोध को एक टाइमस्टैंप के साथ रिकॉर्ड किया जाता है, जो नेटवर्क गतिविधि की एक समय रेखा बनाने की अनुमति देता है। HTTPS के लिए, एक सिस्टम लेयर का उपयोग किया जाता है, जो ट्रांसमिशन के दौरान एन्क्रिप्शन को संरक्षित रखता है लेकिन Studio के अंदर डिकोड किए गए कंटेंट को देखने की अनुमति देता है।
डेटा संग्रह Android Studio की Profiler Service के माध्यम से होता है, जो एक अलग होस्ट प्रक्रिया में चलती है। डिवाइस पर एक हल्का एजेंट चलता है, जो ADB चैनल के माध्यम से अनुरोध मेटाडेटा को प्रेषित करता है। यह एप्लिकेशन प्रदर्शन पर प्रभाव को कम करता है — Google के अनुसार ओवरहेड 3% से कम है। अनुरोध डेटा (बॉडी, हेडर) केवल तभी प्रेषित होता है जब विस्तार दृश्य सक्रिय होता है।
// 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 व्यापक नेटवर्क ट्रैफिक विश्लेषण के लिए उपकरणों का एक समूह प्रदान करता है। प्रत्येक सुविधा एक विशिष्ट डीबगिंग कार्य को हल करने के लिए डिजाइन की गई है — हेडर की जाँच से लेकर 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 फ़ॉरमेटिंग के साथ प्रतिक्रिया बॉडी दिखाता है, जिसमें सिंटैक्स हाइलाइटिंग शामिल है। यदि प्रतिक्रिया क्लाइंट पर पार्स नहीं होती है, तो इंस्पेक्टर तुरंत कारण दिखाता है: लापता फ़ील्ड, गलत डेटा प्रकार (संख्या के बजाय स्ट्रिंग), या अत्यधिक नेस्टिंग। यदि सर्वर कोई त्रुटि लौटाता है, तो इंस्पेक्टर कोड और संदेश के साथ त्रुटि संरचना दिखाता है। बाइनरी फ़ॉरमेट (Protocol Buffers, छवियाँ) के लिए, आकार और कंटेंट-टाइप प्रदर्शित किया जाता है।
Timing टैब अनुरोध निष्पादन को चरणों में विभाजित करती है: DNS रिजॉल्शन, TCP कनेक्शन, TLS हैंडशेक, अनुरोध भेजना, प्रतिक्रिया प्राप्त करना। यदि कुल समय 1–2 सेकंड से अधिक है, तो चरण विभाजन कारण जानने में मदद करता है। उदाहरण के लिए, धीमा DNS रिजॉल्वर समस्याओं को इंगित करता है, धीमा TLS हैंडशेक सर्वर पर पुराने प्रोटोकॉल संस्करण को इंगित करता है, धीमी प्रतिक्रिया धीमे सर्वर कोड या अत्यधिक डेटा के साथ अभारी क्वेरी को इंगित करती है। Timing विश्लेषण सर्वर-पक्ष ऑप्टिमिज़ेशन शुरू करने से पहले ही अड़चन बिंदुओं की पहचान करने में मदद करता है।
Network Inspector अनावश्यक अनुरोधों की पहचान करने में मदद करता है — उदाहरण के लिए, जब प्रत्येक स्क्रीन रोटेशन Activity को डेटा पुनः लोड करने का कारण बनता है। समय रेखा पर, लगातार समान अनुरोदों की एक शृंखला स्पष्ट रूप से समस्या को इंगित करती है। समाधान में कैशिंग, स्थिति संरक्षण के साथ ViewModel का उपयोग, या एक-बार लोडिंग के लिए SingleLiveEvent शामिल हो सकता है।
// डुप्लिकेशन को खत्म करने के लिए 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 में कई सीमाएँ हैं जिनपर विचार करना महत्वपूर्ण है। कुछ परिदृश्यों के लिए — जैसे स्व-हस्ताक्षरित प्रमाणपत्रों के साथ HTTPS का इंटरसेप्शन या तीसरे पक्ष की लाइब्रेरी ट्रैफिक विश्लेषण — विकल्पी टूल की आवश्यकता हो सकती है।
Network Inspector केवल Android एप्लिकेशनों के साथ काम करता है और iOS का समर्थन नहीं करता है। Kotlin Multiplatform (KMM) के लिए, कुछ अनुरोध प्रदर्शित नहीं हो सकते हैं यदि वे मूल भाग में निष्पादित होते हैं। कुछ लाइब्रेरीज़ — उदाहरण के लिए, gRPC, WebSocket (गैर-HTTP), Apollo के माध्यम से GraphQL (संस्करण 3.x से पहले) — अतिरिक्त इंटरसेप्टर कॉन्फ़िगर किए बिना आंशिक रूप से या बिल्कुल भी इंटरसेप्ट नहीं हो सकते हैं।
गहरे नेटवर्क ट्रैफिक विश्लेषण के लिए, तीसरे पक्ष के समाधान मौजूद हैं: Charles Proxy (HTTPS इंटरसेप्शन के साथ पूर्ण प्रॉक्सी सर्वर), Proxyman (macOS का विकल्प), Wireshark (पैकेट-स्तर विश्लेषण), Facebook का Stetho (Chrome DevTools के साथ एकीकरण), Chucker (एप्लिकेशन के अंदर अनुरोध निरीक्षण लाइब्रेरी)। प्रत्येक टूल का अपना क्षेत्र है: Charles और Proxyman विकास के शुरुआती चरणों में सर्वर के साथ इंटरैक्शन को डीबग करने के लिए अपरिहार्य हैं, जबकि Chucker परीक्षण बिल्ड में जानकारी एकत्रा करने के लिए उपयोगी है।
| टूल | प्रकार | प्लेटफ़ॉर्म | HTTPS | HAR |
|---|---|---|---|---|
| Network Inspector | Android Studio में निर्मित | Android | हाँ | हाँ |
| Charles Proxy | प्रॉक्सी सर्वर | क्रॉस-प्लेटफ़ॉर्म | हाँ | हाँ |
| Proxyman | प्रॉक्सी सर्वर | macOS, iOS | हाँ | हाँ |
| Chucker | एप्लिकेशन के अंदर निरीक्षक | Android | हाँ | नहीं |
| Wireshark | पैकेट विश्लेषक | क्रॉस-प्लेटफ़ॉर्म | नहीं | नहीं |
अक्सर पूछे जाने वाले प्रश्न
सुनिश्चित करें कि एप्लिकेशन डीबग कॉन्फ़िगरेशन में बना है और Android Profiler के साथ जुड़ा हुआ है। यदि OkHttp 4.x का उपयोग किया जा रहा है, तो हो सकता है कि आपको लाइब्रेरी को नन्तम संस्करण में अपडेट करने की आवश्यकता हो। Ktor के लिए, अनुरोध केवल उस Ktor क्लाइंट का उपयोग करने पर ही प्रदर्शित होते हैं जो इंटरसेप्शन का समर्थन करता है।
हाँ, Network Inspector बिना किसी अतिरिक्त कॉन्फ़िगरेशन के HTTPS ट्रैफिक का समर्थन करता है। Charles Proxy के विपरीत, रूट प्रमाणपत्र स्थापना की कोई आवश्यकता नहीं है। यह टूल डीबगिंग सेशन के भीतर ट्रैफिक को डिकोड करने के लिए Android Profiler सिस्टम तन्त्र का उपयोग करता है।
Network Inspector HAR (HTTP Archive) प्रारूप में डेटा निर्यात करने की अनुमति देता है। पैनल के ऊपर दाएं कोने में Export बटन पर क्लिक करें। HAR फ़ाइल को किसी भी HAR व्यूर में खोला जा सकता है या आगे के विश्लेषण के लिए Charles Proxy और Proxyman में आयात किया जा सकता है।
Google के अनुसार, सक्रिय प्रोफाइलिंग के दौरान ओवरहेड 3% से अधिक नहीं होता है। Network Inspector बंद होने पर कोई ओवरहेड नहीं होता है। रिलीज़ बिल्ड पर टूल का उपयोग करने की अनुशंसा नहीं दी जाती है, लेकिन डीबग सेशन के लिए आधुनिक उपकरणों पर प्रभाव नगण्य है।
यदि प्रतिक्रिया बॉडी अपठनीय रॉ डेटा के रूप में दिखाई देती है, तो यह gzip संपीडन या बाइनरी फ़ॉरमेट (Protocol Buffers, MessagePack) के कारण हो सकता है। Network Inspector स्वचालित रूप से gzip को डिकोड करता है। कस्टम फ़ॉरमेट के लिए, प्रतिक्रिया हेडर में Content-Type हिंट का उपयोग करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें