Network Inspector di Android Studio adalah alat profiling bawaan yang dirancang untuk memantau dan menganalisis lalu lintas jaringan aplikasi seluler secara real-time. Menurut dokumentasi resmi Android Developers (2025), alat ini memungkinkan pelacakan waktu eksekusi permintaan, volume data yang dikirim, dan status HTTP setiap panggilan. Alat ini tidak memerlukan perubahan pada kode aplikasi dan bekerja "langsung jadi" dengan proyek apa pun di API Level 14 dan lebih tinggi.
Poin Utama
Network Inspector adalah alat profiling aktivitas jaringan yang tertanam di Android Studio. Alat ini memungkinkan pengembang untuk melihat semua permintaan HTTP dan HTTPS yang dikirim oleh aplikasi secara real-time, termasuk header, body permintaan dan respons, kode status, dan durasi eksekusi. Tersedia melalui panel Android Profiler sejak Android Studio 3.0.
Tugas utama Network Inspector adalah men-debug interaksi jaringan aplikasi seluler dengan server. Alat ini digunakan untuk memeriksa kebenaran data yang dikirim, menganalisis waktu respons, mencari kesalahan API, serta mendeteksi pola jaringan yang tidak optimal — misalnya, banyak permintaan saat memuat satu layar. Network Inspector bekerja di perangkat apa pun dengan API Level 14.
Alat ini mendukung semua klien HTTP Android utama: OkHttp (mulai versi 2.x), Retrofit, Ktor (KMM), UrlConnection, Apache HttpClient (usang), dan WebView. Untuk OkHttp dan Retrofit diperlukan pustaka OkHttp Profiler — ditambahkan secara otomatis saat menggunakan Android Studio 4.1+. Untuk Ktor diperlukan konfigurasi interceptor terpisah.
Network Inspector menangkap panggilan jaringan di tingkat sistem menggunakan mekanisme Profiler Agent, yang dimasukkan bersama Android Profiler. Untuk kerja yang benar diperlukan build debug aplikasi. Alat tidak mengubah kode aplikasi dan tidak memerlukan penambahan dependensi untuk fungsionalitas dasar.
Saat profiling dimulai, Network Inspector terhubung ke proses Debug aplikasi dan mendengarkan semua panggilan HTTP yang melalui OkHttp Client, UrlConnection, atau pustaka lain yang didukung. Setiap permintaan dicatat dengan stempel waktu, memungkinkan pembuatan garis waktu aktivitas jaringan. Untuk HTTPS, digunakan lapisan perantara sistem yang mempertahankan enkripsi selama transmisi, tetapi memungkinkan melihat konten yang didekode di dalam Studio.
Pengumpulan data dilakukan melalui Profiler Service Android Studio, yang berjalan di proses host terpisah. Di perangkat, berjalan agen ringan yang mengirimkan metadata permintaan melalui saluran ADB. Ini meminimalkan dampak pada kinerja aplikasi — overhead kurang dari 3% menurut data Google. Data permintaan itu sendiri (body, header) hanya dikirim saat tampilan detail aktif.
// Menghubungkan OkHttp untuk integrasi dengan Network Inspector
val client = OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().apply {
level = HttpLoggingInterceptor.Level.BASIC
})
.build()
// Network Inspector secara otomatis menangkap semua panggilan melalui client
client.newCall(Request.Builder()
.url("https://api.example.com/data")
.build()).execute()
Network Inspector menyediakan seperangkat alat untuk analisis lalu lintas jaringan yang komprehensif. Setiap fitur ditujukan untuk memecahkan tugas debug tertentu — dari memeriksa header hingga menganalisis kinerja API.
Layar utama Network Inspector menampilkan kronologi semua permintaan dalam bentuk garis waktu. Setiap permintaan direpresentasikan dengan bilah berwarna: hijau — respons sukses (2xx), biru — pengalihan (3xx), kuning — kesalahan klien (4xx), merah — kesalahan server (5xx). Panjang bilah sesuai dengan waktu eksekusi permintaan dari koneksi hingga penerimaan respons penuh. Ini memungkinkan identifikasi langsung permintaan lambat atau yang mengalami kesalahan.
| Parameter | Deskripsi | Contoh nilai |
|---|---|---|
| URL | Alamat lengkap permintaan | https://api.example.com/v2/users |
| Method | Metode HTTP permintaan | POST |
| Status | Kode respons HTTP | 200 OK |
| Size | Ukuran permintaan + respons dalam byte | 12.4 KB |
| Time | Total waktu eksekusi | 342 ms |
Saat memilih permintaan tertentu, panel detail terbuka: Headers (semua header permintaan dan respons), Request Body (body permintaan dalam format teks atau biner), Response Body (body respons dengan kemampuan format JSON), Cookies (dikirim dan diterima), Timing (pembagian waktu per fase: DNS, Connection, TLS Handshake, Request, Response).
Network Inspector mendukung pemfilteran permintaan berdasarkan URL, metode HTTP, kode status, dan jenis konten. Permintaan ke domain tertentu dapat dikecualikan untuk fokus hanya pada API yang diperlukan. Pencarian berfungsi di semua bidang permintaan, termasuk body dan header, yang berguna saat men-debug fungsi aplikasi tertentu. Filter gabungan memungkinkan pembuatan seperangkat aturan yang diterapkan secara otomatis setiap kali profiling dimulai.
Garis waktu mendukung pengelompokan permintaan berdasarkan pola URL. Misalnya, semua permintaan berbentuk /api/v2/users/* dapat digabungkan dalam satu grup. Ini menyederhanakan analisis ketika aplikasi melakukan ratusan permintaan dalam waktu singkat. Fungsi perbandingan permintaan yang berdekatan membantu mendeteksi perubahan dalam respons server pada panggilan berulang.
Penggunaan praktis Network Inspector mencakup skenario debug tipikal: memeriksa format data, mendeteksi endpoint lambat, menemukan kebocoran memori karena koneksi tidak ditutup, dan menganalisis caching.
Tugas umum — memastikan server mengembalikan data dalam format yang diharapkan. Network Inspector menampilkan body respons dengan format JSON, termasuk penyorotan sintaks. Jika respons tidak dapat diurai di klien, di inspector langsung terlihat penyebabnya: bidang hilang, tipe data salah (string bukan angka), atau nesting berlebihan. Jika server mengembalikan kesalahan, inspector menampilkan struktur kesalahan dengan kode dan pesan. Untuk format biner (Protocol Buffers, gambar), ukuran dan content-type ditampilkan.
Tab Timing membagi eksekusi permintaan menjadi fase: DNS Resolution, TCP Connection, TLS Handshake, Request Send, Response Receive. Jika total waktu melebihi 1-2 detik, berdasarkan pembagian fase dapat ditentukan penyebabnya. Misalnya, DNS panjang menunjukkan masalah dengan resolver, TLS Handshake panjang — versi protokol usang di server, Response panjang — kode server lambat atau permintaan tidak efisien dengan data berlebihan. Analisis Timing membantu mengidentifikasi kemacetan bahkan sebelum optimasi sisi server dimulai.
Network Inspector membantu mendeteksi permintaan redundan — misalnya, ketika setiap rotasi layar Activity memuat ulang data. Di garis waktu, rangkaian permintaan identik berturut-turut dengan jelas menunjukkan masalah. Solusinya bisa berupa caching, penggunaan ViewModel dengan penyimpanan status, atau SingleLiveEvent untuk pemuatan satu kali.
// Cache permintaan dengan OkHttp untuk menghilangkan duplikasi
val cache = Cache(
File(context.cacheDir, "http_cache"),
cacheSize = 10L * 1024 * 1024 // 10 MB
)
val cachedClient = OkHttpClient.Builder()
.cache(cache)
.addNetworkInterceptor(CacheInterceptor())
.build()
Meskipun memiliki kemampuan luas, Network Inspector memiliki sejumlah keterbatasan yang perlu dipertimbangkan. Untuk beberapa skenario — seperti penangkapan HTTPS dengan sertifikat yang ditandatangani sendiri atau analisis lalu lintas pustaka pihak ketiga — mungkin diperlukan alat alternatif.
Network Inspector hanya berfungsi dengan aplikasi Android dan tidak mendukung iOS. Untuk Kotlin Multiplatform (KMM) beberapa permintaan mungkin tidak ditampilkan jika dijalankan di bagian native. Beberapa pustaka — misalnya, gRPC, WebSocket (bukan HTTP), GraphQL melalui Apollo (hingga versi 3.x) — mungkin ditangkap sebagian atau sama sekali tidak tanpa konfigurasi interceptor tambahan.
Untuk analisis lalu lintas jaringan yang lebih dalam, ada solusi pihak ketiga: Charles Proxy (server proxy lengkap dengan penangkapan HTTPS), Proxyman (setara untuk macOS), Wireshark (analisis tingkat paket), Stetho by Facebook (integrasi dengan Chrome DevTools), Chucker (pustaka untuk inspeksi permintaan di dalam aplikasi). Setiap alat memiliki ceruknya: Charles dan Proxyman sangat diperlukan saat men-debug interaksi server di tahap awal pengembangan, dan Chucker — untuk mengumpulkan informasi di build tes.
| Alat | Tipe | Platform | HTTPS | HAR |
|---|---|---|---|---|
| Network Inspector | Bawaan Android Studio | Android | Ya | Ya |
| Charles Proxy | Server proxy | Lintas platform | Ya | Ya |
| Proxyman | Server proxy | macOS, iOS | Ya | Ya |
| Chucker | Inspektor in-app | Android | Ya | Tidak |
| Wireshark | Analis paket | Lintas platform | Tidak | Tidak |
Pertanyaan yang sering diajukan
Pastikan aplikasi dikompilasi dalam konfigurasi Debug dan dijalankan dengan Android Profiler terhubung. Jika menggunakan OkHttp 4.x, mungkin perlu memperbarui pustaka ke versi terbaru. Untuk Ktor, permintaan hanya ditampilkan saat menggunakan klien Ktor dengan Engine yang mendukung penangkapan.
Ya, Network Inspector mendukung lalu lintas HTTPS tanpa konfigurasi tambahan. Tidak seperti Charles Proxy, tidak perlu menginstal sertifikat root. Alat ini menggunakan mekanisme sistem Android Profiler untuk mendekode lalu lintas dalam sesi debug.
Network Inspector memungkinkan mengekspor data dalam format HAR (HTTP Archive). Klik tombol Export di sudut kanan atas panel. File HAR dapat dibuka di penampil HAR mana pun atau diimpor ke Charles Proxy dan Proxyman untuk analisis lebih lanjut.
Menurut data Google, overhead tidak melebihi 3% saat profiling aktif. Saat Network Inspector dimatikan, tidak ada overhead. Alat ini tidak disarankan untuk digunakan di build rilis, tetapi di sesi Debug dampaknya tidak terlihat pada perangkat modern.
Jika body respons ditampilkan sebagai data mentah yang tidak terbaca, ini mungkin terkait dengan kompresi gzip atau format biner (Protocol Buffers, MessagePack). Network Inspector secara otomatis mendekode gzip. Untuk format khusus, gunakan petunjuk Content-Type di header respons.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga