ProfilingManager API memungkinkan Anda mengumpulkan profil performa pengguna sungguhan,
seperti pelacakan sistem dan heap dump Java, dari perangkat produksi yang menjalankan
Android 15 (level API 35) dan yang lebih tinggi. API ini mendukung dua mekanisme pengumpulan: profil berbasis aplikasi, tempat aplikasi Anda mengontrol pengumpulan profil dari awal hingga akhir (Android 15 dan yang lebih tinggi), dan profil berbasis pemicu, tempat sistem menangani pengambilan sebagai respons terhadap peristiwa yang Anda daftarkan di Android 16 (level API 36) dan yang lebih tinggi.
Panduan ini mencakup topik berikut:
- Merekam profil: Cara memulai dan menghentikan perekaman profil berbasis aplikasi dan cara mendaftar untuk perekaman profil berbasis pemicu.
- Mengambil dan mengupload profil: Cara mengambil profil secara lokal
dengan
adbatau menguploadnya di latar belakang denganWorkManager. - Menganalisis profil: Cara memvisualisasikan profil di UI Perfetto, membuat kueri profil dengan PerfettoSQL, menganalisis rekaman aktivitas secara massal, dan menganalisis profil dengan AI.
- Studi kasus proses debug: Cara menerapkan
ProfilingManagersecara menyeluruh untuk men-debug ANR dan men-debug error OOM. - Pembatasan kapasitas dan perilaku pengumpulan: Cara memahami pembatasan kapasitas dan perilaku pengumpulan dalam produksi.
- Proses debug lokal: Cara menggunakan perintah debug untuk pembuatan profil lokal.
Jenis profil yang didukung
ProfilingManager mendukung pengumpulan beberapa jenis profil sehingga Anda dapat
menargetkan masalah performa tertentu di aplikasi. Anda dapat mengonfigurasi permintaan
secara langsung menggunakan API platform atau menggunakan builder AndroidX Core:
- Pelacakan sistem: Direkam menggunakan
PROFILING_TYPE_SYSTEM_TRACEatauSystemTraceRequestBuilder.- Berguna untuk mendiagnosis jank, menganalisis latensi, dan proses debug performa umum.
- Heap dump Java: Direkam menggunakan
PROFILING_TYPE_JAVA_HEAP_DUMPatauJavaHeapDumpRequestBuilder.- Mengambil snapshot grafik dan ukuran objek heap Java aplikasi Anda untuk mendeteksi kebocoran memori dan mengoptimalkan memori.
- Profil heap: Direkam menggunakan
PROFILING_TYPE_HEAP_PROFILEatauHeapProfileRequestBuilder.- Melacak alokasi memori native (atau Java, jika diinginkan) dari waktu ke waktu untuk membantu mengoptimalkan penggunaan memori.
- Pengambilan sampel stack: Diambil menggunakan
PROFILING_TYPE_STACK_SAMPLINGatauStackSamplingRequestBuilder.- Mengambil sampel stack panggilan thread untuk membantu Anda memahami eksekusi kode dan menganalisis penggunaan CPU.
Mengintegrasikan ProfilingManager dengan agen AI
Anda dapat menggunakan agen coding AI untuk mengintegrasikan ProfilingManager ke dalam aplikasi.
Misalnya, jalankan perintah berikut di agen coding AI untuk menyiapkan
pengumpulan pemicu Aplikasi Tidak Merespons (ANR), dengan mengganti
</path/to/codebase> dengan jalur ke aplikasi Anda:
Read https://developer.android.com/topic/performance/tracing/profiling-manager/trigger-based-capture
and https://developer.android.com/topic/performance/tracing/profiling-manager/upload-worker
and integrate ProfilingManager ANR trigger collection (TRIGGER_TYPE_ANR) into my
app at </path/to/codebase>, including registering the result listener after app
startup completes and scheduling a WorkManager upload job when a profile is
received.
Anda dapat menyesuaikan perintah ini untuk menyiapkan pemicu sistem lainnya (seperti
TRIGGER_TYPE_OOM), atau mengonfigurasi pengambilan profil berbasis aplikasi menggunakan
panduan pembuatan profil berbasis aplikasi. Setelah mengintegrasikan, uji penyiapan Anda secara lokal
menggunakan perintah debug untuk pembuatan profil lokal, dan analisis profil yang dikumpulkan
dengan agen AI.