Network Inspector Android Studio-da mobil tətbiqin şəbəkə trafikini real vaxt rejimində izləmək və təhlil etmək üçün nəzərdə tutulmuş daxili profilləmə alətidir. Android Developers (2025) rəsmi sənədləşməsinə görə, alət sorğuların icra müddətini, ötürülən məlumatların həcmini və hər çağırışın HTTP statusunu izləməyə imkan verir. Alət tətbiq kodunda dəyişiklik tələb etmir və API Level 14 və daha yüksək olan istənilən layihə ilə qutudan çıxdığı kimi işləyir.
Əsas məqamlar
Network Inspector Android Studio-ya daxil edilmiş şəbəkə aktivliyinin profilləmə alətidir. O, tərtibatçılara tətbiq tərəfindən göndərilən bütün HTTP və HTTPS sorğularını, o cümlədən başlıqları, sorğu və cavab məzmununu, status kodlarını və icra müddətini real vaxt rejimində görməyə imkan verir. Android Studio 3.0-dan başlayaraq Android Profiler paneli vasitəsilə əlçatandır.
Network Inspector-un əsas vəzifəsi mobil tətbiqin serverlə şəbəkə qarşılıqlı əlaqəsinin debug edilməsidir. Alət ötürülən məlumatların düzgünlüyünü yoxlamaq, cavab müddətini təhlil etmək, API səhvlərini axtarmaq, həmçinin qeyri-optimal şəbəkə nümunələrini — məsələn, bir ekranın yüklənməsi zamanı çoxsaylı sorğuları aşkar etmək üçün istifadə olunur. Network Inspector API Level 14 olan istənilən cihazda işləyir.
Alət bütün əsas Android HTTP müştərilərini dəstəkləyir: OkHttp (2.x versiyasından başlayaraq), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (köhnəlmiş) və WebView. OkHttp və Retrofit üçün OkHttp Profiler kitabxanası tələb olunur — Android Studio 4.1+ istifadə edildikdə avtomatik əlavə olunur. Ktor üçün ayrıca interceptor konfiqurasiyası tələb olunur.
Network Inspector Android Profiler ilə birlikdə tətbiq edilən Profiler Agent mexanizmindən istifadə edərək şəbəkə çağırışlarını sistem səviyyəsində ələ keçirir. Düzgün işləmək üçün tətbiqin debug quruluşu tələb olunur. Alət tətbiq kodunu dəyişdirmir və əsas funksionallıq üçün asılılıqların əlavə edilməsini tələb etmir.
Profilləmə işə salındıqda Network Inspector tətbiqin Debug prosesinə qoşulur və OkHttp Client, UrlConnection və ya digər dəstəklənən kitabxanalardan keçən bütün HTTP çağırışlarını dinləyir. Hər sorğu vaxt damğası ilə qeydə alınır ki, bu da şəbəkə aktivliyinin zaman xəttini qurmağa imkan verir. HTTPS üçün sistem təbəqəsindən istifadə olunur ki, bu da ötürmə zamanı şifrələməni qoruyur, lakin Studio daxilində dekodlanmış məzmunu görməyə imkan verir.
Məlumat toplama hostun ayrıca prosesində işləyən Android Studio-nun Profiler Service vasitəsilə həyata keçirilir. Cihazda ADB kanalı ilə sorğu metadatlarını ötürən yüngül agent işləyir. Bu, tətbiqin performansına təsiri minimuma endirir — Google məlumatlarına görə, əlavə yük 3%-dən azdır. Sorğu məlumatları (məzmun, başlıqlar) yalnız detalların aktiv baxışı zamanı ötürülür.
// OkHttp-nun Network Inspector ilə inteqrasiya üçün qoşulması
val client = OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BASIC
})
.build()
// Network Inspector client vasitəsilə bütün çağırışları avtomatik ələ keçirir
client.newCall(Request.Builder()
.url("https://api.example.com/data")
.build()).execute()
Network Inspector şəbəkə trafikinin hərtərəfli təhlili üçün alət dəsti təqdim edir. Hər bir funksiya başlıqların yoxlanılmasından API performansının təhlilinə qədər müəyyən debug tapşırığının həllinə yönəlmişdir.
Network Inspector-un əsas ekranı bütün sorğuların xronologiyasını zaman xətti şəklində göstərir. Hər sorğu rəngli zolaqla təmsil olunur: yaşıl — uğurlu cavab (2xx), mavi — yönləndirmə (3xx), sarı — müştəri xətası (4xx), qırmızı — server xətası (5xx). Zolağın uzunluğu sorğunun qoşulmadan tam cavabın alınmasına qədər icra müddətinə uyğundur. Bu, yavaş və ya xəta ilə bitən sorğuları dərhal aşkar etməyə imkan verir.
| Parametr | Təsvir | Nümunə dəyər |
|---|---|---|
| URL | Sorğunun tam ünvanı | https://api.example.com/v2/users |
| Method | Sorğunun HTTP metodu | POST |
| Status | Cavabın HTTP kodu | 200 OK |
| Size | Sorğu + cavab ölçüsü baytlarla | 12.4 KB |
| Time | Ümumi icra müddəti | 342 ms |
Konkret sorğu seçildikdə detalları olan panel açılır: Headers (sorğu və cavabın bütün başlıqları), Request Body (mətn və ya ikili formatda sorğu məzmunu), Response Body (JSON formatlaşdırma imkanı ilə cavab məzmunu), Cookies (göndərilən və alınan), Timing (zamanın fazalara bölünməsi: DNS, Connection, TLS Handshake, Request, Response).
Network Inspector URL, HTTP metodu, status kodu və məzmun növünə görə sorğuların filtrlənməsini dəstəkləyir. Müəyyən domenlərə sorğuları istisna etmək olar ki, yalnız lazımi API-yə diqqət yetirilsin. Axtarış sorğunun bütün sahələrində, o cümlədən məzmun və başlıqlarda işləyir ki, bu da tətbiqin konkret funksiyasının debug edilməsi zamanı rahatdır. Kombinə edilmiş filtrlər hər profilləmə işə salındıqda avtomatik tətbiq olunan qaydalar dəsti yaratmağa imkan verir.
Zaman xətti URL nümunələrinə görə sorğuların qruplaşdırılmasını dəstəkləyir. Məsələn, /api/v2/users/* formasının bütün sorğularını bir qrupda yığmaq olar. Bu, tətbiq qısa müddətdə yüzlərlə sorğu etdikdə təhlili sadələşdirir. Qonşu sorğuların müqayisəsi funksiyası təkrar çağırışlar zamanı server cavablarında dəyişiklikləri aşkar etməyə kömək edir.
Network Inspector-un praktiki istifadəsi tipik debug ssenarilərini əhatə edir: məlumat formatının yoxlanılması, yavaş endpointlərin aşkar edilməsi, bağlanmamış birləşmələr səbəbindən yaddaş sızmalarının tapılması və keşləmənin təhlili.
Tez-tez rast gəlinən tapşırıq — serverin məlumatları gözlənilən formatda qaytardığına əmin olmaqdır. Network Inspector sintaksis vurğulaması da daxil olmaqla JSON formatlaşdırması ilə cavab məzmununu göstərir. Cavab müştəri tərəfindən pars edilmirsə, inspektorda dərhal səbəb görünür: sahənin olmaması, səhv məlumat tipi (rəqəm əvəzinə sətir) və ya artıq iç-içəlik. Server xəta qaytarırsa, inspektor kod və mesajla xəta strukturunu göstərir. İkili formatlar (Protocol Buffers, şəkillər) üçün ölçü və content-type göstərilir.
Timing sekmesi sorğunun icrasını fazalara ayırır: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Ümumi vaxt 1–2 saniyəni keçərsə, faza bölgüsü əsasında səbəbi müəyyən etmək olar. Məsələn, uzun DNS resolver problemlərini, uzun TLS Handshake serverdə protokolun köhnəlmiş versiyasını, uzun Response isə yavaş server kodu və ya artıq məlumatlarla səmərəsiz sorğunu göstərir. Timing təhlili server hissəsinin optimallaşdırılmasına başlamazdan əvvəl dar boğazları aşkar etməyə kömək edir.
Network Inspector artıq sorğuları aşkar etməyə kömək edir — məsələn, ekran hər döndərildikdə Activity məlumatların yüklənməsini yenidən yaratdıqda. Zaman xəttində ardıcıl eyni sorğular problemi aydın şəkildə göstərir. Həll yolu keşləmə, vəziyyəti saxlayan ViewModel və ya birdəfəlik yükləmə üçün SingleLiveEvent istifadəsi ola bilər.
// Təkrarlanmanın qarşısını almaq üçün OkHttp ilə sorğuların keşlənməsi
val cache = Cache(
File(context.cacheDir, "http_cache"),
cacheSize = 10L * 1024 * 1024 // 10 MB
)
val cachedClient = OkHttpClient.Builder()
.cache(cache)
.addNetworkInterceptor(CacheInterceptor())
.build()
Geniş imkanlara baxmayaraq, Network Inspector-un bir sıra məhdudiyyətləri var ki, onları nəzərə almaq vacibdir. Bəzi ssenarilər — öz-özünə imzalanmış sertifikatlarla HTTPS-nin ələ keçirilməsi və ya üçüncü tərəf kitabxanalarının trafikinin təhlili kimi — alternativ alətlər tələb edə bilər.
Network Inspector yalnız Android tətbiqləri ilə işləyir və iOS-u dəstəkləmir. Kotlin Multiplatform (KMM) üçün sorğular native hissədə icra olunarsa, göstərilməyə bilər. Bəzi kitabxanalar — məsələn, gRPC, WebSocket (HTTP deyil), Apollo vasitəsilə GraphQL (3.x versiyasına qədər) — əlavə interceptor konfiqurasiyası olmadan qismən və ya ümumiyyətlə ələ keçirilə bilməz.
Şəbəkə trafikinin daha dərindən təhlili üçün üçüncü tərəf həlləri mövcuddur: Charles Proxy (HTTPS ələ keçirmə ilə tam proxy server), Proxyman (macOS üçün analoq), Wireshark (paket səviyyəsində təhlil), Facebook-dan Stetho (Chrome DevTools ilə inteqrasiya), Chucker (tətbiq daxilində sorğuların yoxlanılması üçün kitabxana). Hər alətin öz yeri var: Charles və Proxyman inkişafın erkən mərhələlərində serverlə qarşılıqlı əlaqənin debug edilməsində əvəzolunmazdır, Chucker isə test quruluşlarında məlumat toplamaq üçündür.
| Alət | Tip | Platforma | HTTPS | HAR |
|---|---|---|---|---|
| Network Inspector | Android Studio-ya daxildir | Android | Bəli | Bəli |
| Charles Proxy | Proxy server | Çoxplatformalı | Bəli | Bəli |
| Proxyman | Proxy server | macOS, iOS | Bəli | Bəli |
| Chucker | In-app inspektor | Android | Bəli | Xeyr |
| Wireshark | Paket analizatoru | Çoxplatformalı | Xeyr | Xeyr |
Tez-tez verilən suallar
Əmin olun ki, tətbiq Debug konfiqurasiyasında yığılıb və Android Profiler qoşulmuş halda işə salınıb. OkHttp 4.x istifadə olunursa, kitabxananı ən son versiyaya yeniləmək tələb oluna bilər. Ktor üçün sorğular yalnız interceptoru dəstəkləyən Engine ilə Ktor müştərisi istifadə edildikdə göstərilir.
Bəli, Network Inspector əlavə konfiqurasiya olmadan HTTPS trafikini dəstəkləyir. Charles Proxy-dən fərqli olaraq, kök sertifikatın quraşdırılması tələb olunmur. Alət debug sessiyası daxilində trafiki dekodlamaq üçün Android Profiler-in sistem mexanizmindən istifadə edir.
Network Inspector məlumatları HAR (HTTP Archive) formatında ixrac etməyə imkan verir. Panelin yuxarı sağ küncündə Export düyməsini klikləyin. HAR faylı istənilən HAR baxıcısında açıla və ya əlavə təhlil üçün Charles Proxy və Proxyman-a idxal edilə bilər.
Google məlumatlarına görə, aktiv profilləmə zamanı əlavə yük 3%-dən çox deyil. Network Inspector söndürüldükdə əlavə yük yoxdur. Alət release quruluşlarında istifadə üçün tövsiyə edilmir, lakin Debug sessiyalarında müasir cihazlarda təsir nəzərə çarpmır.
Cavab məzmunu oxunmayan raw məlumat kimi göstərilirsə, bu gzip sıxılması və ya ikili format (Protocol Buffers, MessagePack) ilə əlaqəli ola bilər. Network Inspector gzip-i avtomatik dekodlayır. Xüsusi formatlar üçün cavab başlıqlarında Content-Type göstərişindən istifadə edin.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun