Android Profiler: apa itu, kemampuan CPU, Memory, dan Network

Penulis: IT Sectr Diterbitkan: 2026-03-30 Waktu membaca: 9 mnt

Android Profiler — adalah seperangkat alat bawaan di Android Studio untuk memantau kinerja aplikasi secara real-time. Ini memungkinkan Anda melacak beban CPU, konsumsi memori, lalu lintas jaringan, dan konsumsi energi tanpa menginstal pustaka pihak ketiga. Menurut Android Developers, profiler terintegrasi langsung ke IDE dan menyediakan metrik dengan akurasi milidetik untuk setiap proses pada perangkat yang terhubung.

Poin utama

  • Android Profiler — profiler bawaan Android Studio untuk CPU, Memory, Network, dan Energy.
  • CPU Profiler menunjukkan beban prosesor per utas dengan pohon panggilan metode yang akurat.
  • Memory Profiler melacak Java Heap, Native Heap, dan Graphics Memory secara real-time.
  • Network Profiler mencatat setiap permintaan HTTP dengan ukuran, durasi, dan header.
  • Energy Profiler mengidentifikasi operasi yang menguras baterai perangkat secara berlebihan.

Apa itu Android Profiler?

Android Profiler — adalah komponen Android Studio yang menggantikan Android Monitor dan DDMS yang sudah usang. Ini menyediakan antarmuka terpadu untuk memprofilkan semua aspek aplikasi: CPU Profiler untuk analisis prosesor, Memory Profiler untuk bekerja dengan memori, Network Profiler untuk permintaan jaringan, dan Energy Profiler untuk konsumsi energi. Data dikumpulkan secara otomatis saat aplikasi dijalankan melalui Android Studio.

Profiler bekerja baik di emulator maupun di perangkat fisik yang terhubung melalui USB. Menurut data Google I/O 2023, Android Profiler digunakan di lebih dari 70% proyek Android dan dianggap sebagai alat standar diagnostik kinerja. Keunggulan utama dibandingkan solusi pihak ketiga — integrasi nol: tidak perlu menambahkan dependensi di build.gradle atau memodifikasi kode aplikasi.

Arsitektur Android Profiler dibangun di atas Perfetto — pelacak sistem Android yang mengumpulkan data di tingkat kernel dan aplikasi. Perfetto memberikan overhead minimal (kurang dari 1% CPU) dan mendukung perekaman jangka panjang hingga 30 menit. Ini memungkinkan pemrofilan tidak hanya operasi cepat, tetapi juga skenario panjang — transisi antar layar, sinkronisasi latar belakang, konsumsi memori selama satu jam penggunaan.

Data apa yang dikumpulkan Android Profiler

Profiler mengumpulkan empat jenis data: CPU — beban setiap inti dan utas, Memory — Java Heap, Native Heap, Stack, Graphics, Network — semua permintaan masuk dan keluar, Energy — kategori konsumsi energi (Idle, Light, Medium, Heavy). Data disinkronkan pada sumbu waktu — Anda dapat melihat secara bersamaan bagaimana perubahan CPU memengaruhi memori dan konsumsi energi.

CPU Profiler: analisis prosesor dan utas

CPU Profiler menunjukkan beban prosesor secara real-time pada sumbu waktu, dibagi berdasarkan utas aplikasi. Setiap utas direpresentasikan sebagai garis atau area berwarna — semakin lebar area, semakin banyak waktu prosesor yang digunakan utas. Area merah berarti kerja aplikasi, biru — panggilan sistem, abu-abu — menunggu.

Untuk analisis terperinci, CPU Profiler mendukung tiga mode perekaman: Trace Java Methods (pelacakan semua metode Java), Trace C/C++ Functions (pelacakan fungsi native NDK), dan Sample Java Methods (pengambilan sampel, mode yang direkomendasikan). Pengambilan sampel memberikan overhead terkecil dan cocok untuk pemrofilan sehari-hari, sedangkan pelacakan lengkap untuk menemukan masalah kompleks.

kotlin
// Contoh: analisis CPU Profiler akan menunjukkan metode ini sebagai bottleneck
class DataProcessor {
    suspend fun processLargeDataset(items: List<Item>): List<Result> {
        // CPU Profiler akan menunjukkan beban CPU tinggi di inBackgroundThread
        return withContext(Dispatchers.Default) {
            items.map { it.computeHeavyTransformation() }
        }
    }
}

// Rekomendasi setelah pemrofilan:
// computeHeavyTransformation memakan 80% waktu — cache hasilnya
class DataProcessorOptimized {
    private val cache = LruCache<String, Result>(100)

    suspend fun processLargeDataset(items: List<Item>): List<Result> {
        return withContext(Dispatchers.Default) {
            items.mapNotNull { cache.get(it.id) ?: it.computeHeavyTransformation().also { cache.put(it.id, it) } }
        }
    }
}

Setelah perekaman, CPU Profiler menampilkan Top-Down Tree — pohon panggilan dengan waktu eksekusi setiap metode. Perhatikan kolom Self Time/Total: jika Self Time metode melebihi 16 md dan dipanggil dari utas UI — ini adalah jaminan frame drop. Solusinya — pindahkan komputasi berat ke utas latar belakang melalui Dispatchers.IO atau Default.

Mode pelacakan CPU

Sample Java Methods — mode yang direkomendasikan untuk pemrofilan sehari-hari dengan overhead 3–5%. Trace Java Methods — pelacakan lengkap setiap panggilan, overhead hingga 15%, digunakan untuk perekaman pendek (5–10 detik). Trace C/C++ Functions — pelacakan kode NDK melalui Linux Perf, sangat diperlukan untuk analisis game dan pustaka C++. Ganti mode tergantung pada jenis masalah.

Memory Profiler: bekerja dengan memori dan menemukan kebocoran

Memory Profiler melacak semua kategori memori aplikasi: Java Heap (objek JVM), Native Heap (alokasi C/C++ melalui JNI), Stack (tumpukan utas), dan Graphics (tekstur, buffer GPU). Visualisasi utama — grafik waktu konsumsi memori, di mana setiap kategori ditampilkan dengan warnanya sendiri. Jika grafik tidak turun setelah pengumpulan sampah (GC) — curigai kebocoran.

Untuk menemukan kebocoran, gunakan fungsi Capture Heap Dump. Pada saat dump, Android Profiler menghentikan aplikasi selama ~100 md dan membuat file HPROF — snapshot lengkap semua objek Java Heap yang hidup. Setelah membuka dump, Anda dapat mengurutkan objek berdasarkan Retained Size (volume memori yang akan dibebaskan saat objek dihapus) dan mencari instance Activity, Fragment, atau Bitmap yang seharusnya sudah dihancurkan.

Menurut data Google I/O 2022, Memory Profiler bersama dengan LeakCanary mencakup 95% skenario deteksi kebocoran memori di Android. LeakCanary bekerja secara otomatis — mendeteksi kebocoran di latar belakang. Memory Profiler diperlukan untuk analisis manual: Anda melihat gambaran lengkap alokasi, bukan hanya kebocoran.

Kategori memoriDeskripsiUkuran tipikal
Java HeapHeap JVM: objek Kotlin/Java5–200 MB
Native HeapAlokasi melalui JNI, NDK1–100 MB
GraphicsTekstur, buffer GPU10–200 MB
StackTumpukan semua utas1–10 MB

Cara menginterpretasikan dump HPROF

Setelah menangkap dump, urutkan objek berdasarkan Retained Size — ini adalah volume memori yang akan dibebaskan saat objek dihapus. Cari instance Activity, Fragment, dan Bitmap dengan Retained Size besar yang seharusnya tidak ada di memori. Buka tab Reference Tree untuk melihat rantai referensi yang menahan objek — paling sering ini adalah bidang statis singleton atau callback yang tidak dibersihkan. Metrik penting — Allocation rate (jumlah alokasi per detik). Jika allocation rate melebihi 10.000 objek/dtk, aplikasi menghabiskan terlalu banyak waktu untuk membuat dan menghapus objek sementara, yang membebani GC dan menyebabkan mikro-stutter. Dalam hal ini, gunakan alat View Inspector dan temukan tempat dengan pembuatan objek yang sering dalam perulangan.

Network Profiler: memantau permintaan jaringan

Network Profiler menampilkan semua permintaan jaringan aplikasi secara real-time pada sumbu waktu. Setiap permintaan ditampilkan sebagai bilah horizontal — panjangnya sesuai dengan waktu eksekusi, warnanya dengan jenis permintaan (GET, POST, PUT, DELETE). Menggulir sumbu memungkinkan Anda melihat bagaimana permintaan didistribusikan dari waktu ke waktu dan apakah ada duplikasi.

Semua pustaka populer didukung: OkHttp, Retrofit, Volley, Ktor. Untuk Ktor dan OkHttp, profiler menampilkan tumpukan panggilan lengkap termasuk interceptor dan konverter. Untuk setiap permintaan, tersedia Request Headers dan Response Headers, badan respons (hingga 1 MB), kode status, dan durasi.

Masalah umum yang terdeteksi oleh Network Profiler: kurangnya caching (URL yang sama diminta setiap kali dibuka), permintaan duplikat (dua komponen memuat data yang sama secara bersamaan), ukuran respons berlebihan (server mengirim 5 MB padahal perlu 50 KB). Network Profiler membantu melihat masalah seperti itu secara harfiah dalam satu pandangan pada sumbu waktu.

Untuk emulasi jaringan lambat, gunakan Network Conditioning di Android Studio — memungkinkan Anda membatasi bandwidth ke 3G/2G dan menambahkan penundaan. Ini sangat penting untuk menguji perilaku aplikasi dalam kondisi jaringan yang buruk, terutama untuk aplikasi yang beroperasi di wilayah dengan internet tidak stabil.

Energy Profiler: analisis konsumsi energi

Energy Profiler mengevaluasi dampak aplikasi pada daya baterai berdasarkan data Perfetto. Alat ini tidak mengukur konsumsi aktual dalam miliampere, tetapi mengklasifikasikan setiap operasi ke dalam salah satu dari lima kategori konsumsi energi: Idle, Light, Medium, High, dan Overloaded. Sumbu waktu Energy Profiler disorot dengan warna: hijau (beban ringan), kuning (sedang), merah (tinggi).

Penyebab utama munculnya zona merah: WakeLock (aplikasi menjaga prosesor tetap aktif), Location GPS (permintaan koordinat konstan dengan presisi tinggi), koneksi Keep-Alive (pertukaran data yang sering dengan server), transmisi data besar (pengiriman file, streaming). Energy Profiler menunjukkan dengan tepat operasi mana dan pada saat mana yang menyebabkan lonjakan konsumsi energi.

Menurut Android Developers, aplikasi tipikal tidak boleh menghabiskan lebih dari 5% waktu dalam kategori High. Jika Energy Profiler menunjukkan zona merah lebih dari 10% waktu pemrofilan — aplikasi tidak akan lulus review berdasarkan kriteria Battery Drain. Rekomendasi — gunakan WorkManager untuk tugas latar belakang, batasi permintaan Location ke presisi minimum yang diperlukan, dan agregat permintaan jaringan dalam batch.

Cara menggunakan Android Profiler: panduan praktis

Menjalankan Android Profiler dilakukan dengan satu klik: di Android Studio buka View → Tool Windows → Profiler atau klik dua kali ikon Profiler di panel kanan. Setelah aplikasi dijalankan pada perangkat yang terhubung, Android Studio akan secara otomatis terhubung ke proses dan mulai mengumpulkan data. Grafik CPU, Memory, Network, dan Energy akan segera muncul pada sumbu waktu.

Untuk analisis terperinci, pilih tab yang diinginkan (CPU, Memory, Network, atau Energy) dan mulai perekaman. Untuk CPU, saya merekomendasikan mode Sample Java Methods dengan durasi perekaman 30 detik — ini cukup untuk skenario tipikal. Untuk Memory — heap dump setelah menjalankan skenario (Capture Heap Dump). Untuk Network, perekaman dimulai secara otomatis, cukup tekan tombol Stop setelah skenario selesai.

Setelah menghentikan perekaman, ekspor data: File → Save As menyimpan seluruh sesi dalam file .perf. Ini berguna untuk membandingkan metrik sebelum dan sesudah optimasi. Buat sesi baseline pada versi stabil pertama dan bandingkan setiap sesi baru dengannya — ini adalah satu-satunya cara untuk mengevaluasi perubahan kinerja secara objektif.

Otomatisasi pemrofilan di CI

Android Profiler dapat dijalankan dari baris perintah melalui Android Studio CLI dan Firebase Test Lab. Firebase Test Lab mendukung pemrofilan kinerja sebagai bagian dari pengujian UI: Anda menerima metrik CPU, Memory, dan Network bersama dengan hasil pengujian. Konfigurasikan pipeline sehingga ketika metrik turun 10% relatif terhadap baseline, pipeline CI diblokir hingga diperiksa oleh pengembang.

Pertanyaan yang sering diajukan

Apakah Android Profiler memperlambat aplikasi?

Dampaknya minimal. Android Profiler menggunakan Perfetto untuk pengumpulan data, yang menambahkan kurang dari 1% overhead CPU. Dalam mode Sample Java Methods, overhead sekitar 3–5%, yang tidak signifikan untuk pemrofilan skenario. Pelacakan metode lengkap dapat memberikan overhead hingga 15%, oleh karena itu hanya digunakan untuk perekaman pendek.

Bisakah aplikasi diprofilkan tanpa Android Studio?

Ya, jejak sistem dapat direkam langsung dari perangkat melalui Perfetto CLI: adb shell perfetto --out /data/local/tmp/trace.perf. Kemudian buka file di antarmuka Perfetto UI (ui.perfetto.dev) atau impor ke Android Studio untuk dilihat dengan markup aplikasi lengkap.

Apa perbedaan Network Profiler dengan Charles Proxy?

Android Profiler — adalah alat sistem yang tidak memerlukan konfigurasi proxy. Menampilkan permintaan langsung di IDE dalam konteks kinerja. Charles Proxy — server proxy eksternal yang menyediakan analisis lebih terperinci (menyadap lalu lintas, memodifikasi permintaan, mengirim ulang). Untuk pemrofilan kinerja gunakan Android Profiler, untuk analisis kontrak API — Charles.

Bagaimana cara menemukan kebocoran memori melalui Memory Profiler?

Lakukan heap dump sebelum menjalankan skenario (misalnya, sebelum membuka Activity). Jalankan skenario — buka Activity dan tutup. Lakukan dump kedua. Bandingkan jumlah instance Activity yang hidup: jika di dump kedua lebih banyak — kebocoran. Urutkan berdasarkan Retained Size, temukan Activity berlebih dan periksa Reference Tree untuk menentukan penyebabnya.

Mengapa Energy Profiler tidak tersedia di beberapa perangkat?

Energy Profiler memerlukan dukungan Power Profiles di tingkat perangkat dan Android 8.0+. Di emulator dan beberapa firmware (terutama China) data mungkin tidak tersedia. Solusinya — profil konsumsi energi pada perangkat referensi Pixel atau Samsung dengan firmware Android bersih.

Kesimpulan

  • Android Profiler — profiler bawaan Android Studio untuk pemantauan CPU, Memory, Network, dan Energy.
  • CPU Profiler menganalisis beban inti dan utas menggunakan pelacakan Perfetto dengan overhead kurang dari 1%.
  • Memory Profiler melacak Java Heap, Native Heap, Graphics, dan Stack dengan dukungan dump HPROF.
  • Network Profiler mencatat semua permintaan OkHttp, Retrofit, dan Ktor dengan header, body, dan durasi.
  • Energy Profiler mengklasifikasikan konsumsi energi aplikasi dari Idle hingga Overloaded.
  • Profiler bekerja tanpa memodifikasi kode aplikasi — integrasi nol.
  • Tanamkan pemrofilan di CI melalui Firebase Test Lab dan simpan baseline untuk setiap rilis.

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.

Diskusikan proyek

Baca juga