Panduan Leveling untuk Perjalanan Performa Anda
Selamat datang di hari ke-4 Pekan Sorotan Performa. Setelah mempelajari beberapa alat dan praktik terbaik luar biasa yang baru-baru ini kami perkenalkan seperti Pengoptimal R8, dan Pengoptimalan yang Dipandu Profil dengan Profil Dasar Pengukuran dan Profil Startup, Anda mungkin bertanya-tanya dari mana harus memulai perjalanan peningkatan performa.
Kami telah membuat panduan perataan performa langkah demi langkah untuk memenuhi kebutuhan tim pengembangan seluler Anda—baik Anda adalah aplikasi dengan satu developer yang ingin mulai menggunakan performa, atau Anda memiliki seluruh tim yang berdedikasi untuk meningkatkan performa Android.
Panduan penentuan tingkat performa menampilkan 5 tingkat. Kita akan mulai dengan level 1, yang memperkenalkan alat performa dengan upaya adopsi minimal, dan kita akan naik ke level 5, yang ideal untuk aplikasi yang memiliki sumber daya untuk mempertahankan framework performa khusus.
Silakan buka level yang paling sesuai dengan Anda:
- Level 1: Menggunakan pemantauan kolom yang disediakan Konsol Play
- Level 2: Ikuti item tindakan Skor Performa Aplikasi
- Tingkat 3: Memanfaatkan framework pengujian performa lokal
- Level 4: Menggunakan alat analisis rekaman aktivitas seperti Perfetto
- Level 5: Buat framework pelacakan performa Anda sendiri
Level 1: Menggunakan pemantauan kolom yang disediakan Konsol Play
Sebaiknya manfaatkan terlebih dahulu Android vitals dalam Konsol Play untuk melihat data pemantauan kolom yang dikumpulkan secara otomatis, sehingga Anda mendapatkan insight tentang aplikasi dengan upaya minimal.
Android vitals adalah inisiatif Google untuk mengumpulkan dan menampilkan data kolom ini secara otomatis untuk Anda.
Berikut penjelasan tentang cara kami mengirimkan data ini:
- Mengumpulkan Data: Saat pengguna memilih ikut serta, perangkat Android mereka akan otomatis mencatat peristiwa performa dan stabilitas utama dari semua aplikasi, termasuk aplikasi Anda.
- Data Gabungan: Google Play mengumpulkan dan menganonimkan data ini dari pengguna aplikasi Anda.
- Menampilkan Insight: Data ditampilkan kepada Anda di dasbor Android vitals dalam Konsol Google Play.
Dasbor Android vitals melacak banyak metrik, tetapi beberapa di antaranya ditetapkan sebagai Vitals Inti. Data ini adalah yang paling penting karena dapat memengaruhi visibilitas dan peringkat aplikasi Anda di Google Play Store.
Data Vital Inti
METRIK KUALITAS TEKNIS INTI GOOGLE PLAY Untuk memaksimalkan visibilitas di Google Play, pastikan aplikasi Anda berada di bawah batas perilaku buruk untuk metrik ini. | |
| Rasio error yang dirasakan pengguna | Persentase pengguna aktif harian yang mengalami setidaknya satu error yang kemungkinan terlihat |
| Rasio ANR yang dirasakan pengguna | Persentase pengguna aktif harian yang mengalami setidaknya satu ANR yang kemungkinan terlihat |
| Penggunaan baterai yang berlebihan | Persentase sesi tampilan jam yang menghabiskan daya baterai lebih dari 4,44% per jam |
| Baru: Penguncian layar saat aktif parsial yang berlebihan | Persentase sesi pengguna saat penggunaan penguncian layar saat aktif kumulatif yang tidak dikecualikan melebihi 2 jam |
Data vital inti mencakup rasio error yang dirasakan pengguna, rasio ANR, penggunaan baterai berlebihan, dan metrik yang baru diperkenalkan tentang penguncian layar saat aktif sebagian yang berlebihan.
Rasio ANR yang Dirasakan Pengguna
Anda dapat menggunakan dasbor ANR Android Vitals untuk melihat rekaman aktivitas tumpukan masalah yang terjadi di lapangan serta mendapatkan insight dan rekomendasi tentang cara memperbaiki masalah tersebut.
Anda dapat melihat perincian ANR tertentu yang terjadi, untuk melihat stack trace serta insight tentang kemungkinan penyebab masalah.
Selain itu, lihat panduan ANR kami untuk membantu Anda mendiagnosis dan memperbaiki skenario umum yang dapat menyebabkan ANR.
Rasio Error yang Dirasakan Pengguna
Gunakan dasbor error Android vitals untuk men-debug error lebih lanjut dan melihat contoh pelacakan tumpukan yang terjadi dalam aplikasi Anda.
Dokumentasi kami juga memiliki panduan seputar pemecahan masalah error tertentu. Misalnya, Panduan pemecahan masalah layanan latar depan membahas cara mengidentifikasi dan memperbaiki skenario umum terjadinya error.
Penggunaan Baterai yang Berlebihan
Untuk mengurangi sesi tampilan jam dengan penggunaan baterai yang berlebihan di Wear OS, lihat panduan Wear tentang cara meningkatkan dan menghemat baterai.
[Baru] Penguncian Layar Saat Aktif Parsial yang Berlebihan
Baru-baru ini kami mengumumkan bahwa aplikasi yang melampaui batas penguncian layar saat aktif parsial yang berlebihan dapat dikenai perlakuan tambahan mulai 1 Maret 2026.
Untuk perangkat seluler, metrik penting Android berlaku untuk fitur penguncian layar saat aktif yang tidak dikecualikan dan diperoleh saat layar nonaktif dan aplikasi berada di latar belakang atau menjalankan layanan latar depan. Android vitals menganggap penggunaan penguncian layar saat aktif parsial berlebihan jika penguncian layar saat aktif dipertahankan selama minimal dua jam dalam periode 24 jam dan memengaruhi lebih dari 5% sesi aplikasi Anda, yang dirata-ratakan selama 28 hari.
Untuk men-debug dan memperbaiki masalah wake lock yang berlebihan, lihat postingan blog teknis kami.
Lihat dokumentasi Android vitals kami dan lanjutkan perjalanan Anda untuk memanfaatkan Android vitals dengan lebih baik.
Level 2: Ikuti item tindakan Skor Performa Aplikasi
Selanjutnya, gunakan Skor Performa Aplikasi untuk menemukan item tindakan yang sangat berpengaruh dalam meningkatkan performa aplikasi Anda.
Skor Performa Aplikasi Android adalah framework standar untuk mengukur performa teknis aplikasi Anda. Alat ini memberi Anda skor antara 0 dan 100, dengan angka yang lebih rendah menunjukkan lebih banyak ruang untuk peningkatan.
Untuk mendapatkan kemenangan mudah, Anda harus memulai dengan Skor Performa Statis terlebih dahulu. Perubahan ini sering kali berupa perubahan konfigurasi atau update alat yang memberikan peningkatan performa yang signifikan.
Langkah 1: Lakukan Penilaian Statis
Penilaian statis mengevaluasi konfigurasi project dan adopsi alat Anda. Cara ini sering kali merupakan cara tercepat untuk meningkatkan performa.
Buka bagian Skor Statis di halaman papan skor dan lakukan hal berikut:
- Menilai Versi Plugin Android Gradle (AGP).
- Terapkan Pengecilan R8 secara bertahap atau idealnya, gunakan R8 dalam mode penuh untuk mengecilkan dan mengoptimalkan kode aplikasi.
- Gunakan Profil Dasar Pengukuran yang meningkatkan kecepatan eksekusi kode sejak peluncuran pertama, sehingga memberikan peningkatan performa untuk setiap penginstalan aplikasi baru dan setiap update aplikasi.
- Terapkan Profil Startup untuk meningkatkan Tata Letak Dex. Profil Startup digunakan oleh sistem build untuk lebih mengoptimalkan class dan metode yang dimuatnya dengan meningkatkan tata letak kode dalam file DEX APK Anda.
- Mengupgrade ke Jetpack Compose versi terbaru
Langkah 2: Lakukan Penilaian Dinamis
Setelah Anda menerapkan peningkatan statis yang mudah, gunakan penilaian dinamis untuk memvalidasi peningkatan pada perangkat sebenarnya. Anda dapat melakukannya secara manual terlebih dahulu dengan perangkat fisik dan stopwatch.
Buka bagian Skor Dinamis di halaman papan skor dan lakukan hal berikut:
- Siapkan lingkungan pengujian Anda dengan perangkat fisik. Pertimbangkan untuk menggunakan perangkat kelas bawah untuk memperjelas masalah performa, sehingga lebih mudah ditemukan.
- Mengukur waktu mulai dari peluncur. Mulai aplikasi Anda dari ikon peluncur dan ukur waktu hingga aplikasi dapat berinteraksi.
- Ukur waktu mulai aplikasi dari notifikasi, dengan tujuan untuk mengurangi waktu mulai notifikasi menjadi di bawah beberapa detik.
- Ukur performa rendering dengan men-scroll layar dan animasi inti Anda.
Setelah menyelesaikan langkah-langkah ini, Anda akan menerima skor antara 1 - 100 untuk skor statis dan dinamis, sehingga Anda dapat memahami performa aplikasi dan area yang perlu difokuskan.
Tingkat 3: Memanfaatkan framework pengujian performa lokal
Setelah mulai menilai performa dinamis, Anda mungkin merasa terlalu sulit untuk mengukur performa secara manual. Pertimbangkan untuk mengotomatiskan pengujian performa menggunakan framework pengujian performa seperti Macrobenchmark dan UiAutomator.
Macrobenchmark 💚 UiAutomator
Anggap Macrobenchmark dan UiAutomator sebagai dua alat yang bekerja bersama: Macrobenchmark adalah alat pengukuran. Ini seperti stopwatch dan penghitung kecepatan frame yang berjalan di luar aplikasi Anda. Alat ini bertanggung jawab untuk memulai aplikasi Anda, merekam metrik (seperti waktu mulai atau frame yang terlewat), dan menghentikan aplikasi. UiAutomator adalah pengguna robot. Library ini memungkinkan Anda menulis kode untuk berinteraksi dengan layar perangkat. Fitur ini dapat menemukan ikon, mengetuk tombol, men-scroll daftar, dan lainnya.
Cara menulis pengujian
Saat menulis pengujian, Anda akan membungkus kode UiAutomator di dalam blok Macrobenchmark.
- Tentukan Pengujian: Gunakan
@MacrobenchmarkRule - Mulai Mengukur: Panggilan
benchmarkRule.measureRepeated. - Mengoperasikan UI: Di dalam blok tersebut, gunakan kode UiAutomator untuk meluncurkan aplikasi, menemukan elemen UI, dan berinteraksi dengannya.
Berikut adalah contoh cuplikan kode tampilannya saat menguji daftar compose untuk jank scrolling.
benchmarkRule.measureRepeated(
// ...
metrics = listOf(
FrameTimingMetric(),
),
startupMode = StartupMode.COLD,
iterations = 10,
) {
// 1. Launch the app's main activity
startApp()
// 2. Find the list using its resource ID and scroll down
onElement { viewIdResourceName == "$packageName.my_list" }
.fling(Direction.DOWN)
}4. Tinjau hasilnya: Setiap proses pengujian memberikan informasi yang diukur secara tepat untuk memberi Anda data terbaik tentang performa aplikasi.
timeToInitialDisplayMs min 1894.4, median 2847.4, max 3355.6 frameOverrunMs P50 -3.2, P90 6.2, P95 10.4, P99 119.5
Kasus penggunaan umum
Macrobenchmark menyediakan beberapa metrik inti secara langsung. StartupTimingMetric memungkinkan Anda mengukur startup aplikasi secara akurat. FrameTimingMetric memungkinkan Anda memahami performa rendering aplikasi selama pengujian.
Kami memiliki panduan mendetail dan lengkap untuk menggunakan Macrobenchmark dan UiAutomator bersama contoh kode yang tersedia untuk Anda terus pelajari.
Level 4: Menggunakan alat analisis rekaman aktivitas seperti Perfetto
Alat analisis rekaman aktivitas seperti Perfetto digunakan saat Anda perlu melihat di luar kode aplikasi Anda sendiri. Tidak seperti debugger atau profiler standar yang hanya melihat proses Anda, Perfetto merekam seluruh status perangkat—penjadwalan kernel, frekuensi CPU, proses lain, dan layanan sistem—sehingga memberi Anda konteks lengkap untuk masalah performa.
Lihat playlist YouTube Proses Debug Performa kami untuk melihat petunjuk video tentang proses debug performa menggunakan rekaman aktivitas sistem, Profiler Android Studio, dan Perfetto.
Cara menggunakan Perfetto untuk men-debug performa
Alur kerja umum untuk men-debug performa menggunakan alat analisis rekaman aktivitas adalah merekam, memuat, dan menganalisis rekaman aktivitas.
Langkah 1: Merekam rekaman aktivitas
Anda dapat merekam rekaman aktivitas sistem menggunakan beberapa metode:
- Merekam rekaman aktivitas secara manual di perangkat langsung dari opsi developer.
- Menggunakan CPU Profiler Android Studio
- Menggunakan UI Perfetto
Langkah 2: Muat rekaman aktivitas
Setelah memiliki file rekaman aktivitas, Anda perlu memuatnya ke alat analisis.
- Buka Chrome, lalu buka ui.perfetto.dev.
- Tarik lalu lepas file
.perfetto-trace(atau.pftrace) langsung ke jendela browser. - UI akan memproses file dan menampilkan linimasa.
Langkah 3: Analisis rekaman aktivitas
Anda dapat menggunakan UI Perfetto atau Profiler Android Studio untuk menyelidiki masalah performa. Tonton episode seri MAD Skills tentang Performa ini, tempat engineer performa kami, Carmen Jackson, membahas traceviewer Perfetto.
Skenario untuk memeriksa rekaman aktivitas sistem menggunakan Perfetto
Perfetto adalah alat ahli dan dapat memberikan informasi tentang semua yang terjadi di perangkat Android saat rekaman aktivitas diambil. Hal ini sangat membantu jika Anda tidak dapat mengidentifikasi penyebab utama perlambatan menggunakan log standar atau profiler dasar.
Men-debug Jank (Frame yang Terputus)
Jika aplikasi Anda tersendat saat men-scroll, Perfetto dapat menunjukkan dengan tepat mengapa frame tertentu terlambat.
Jika disebabkan oleh aplikasi, Anda mungkin melihat thread utama berjalan dalam durasi yang lama untuk melakukan parsing berat; hal ini menunjukkan skenario saat Anda harus memindahkan pekerjaan ke pemrosesan asinkron.
Jika hal ini disebabkan oleh sistem, Anda mungkin melihat thread utama Anda siap dijalankan, tetapi penjadwal kernel CPU memberikan prioritas ke layanan sistem lain, sehingga aplikasi Anda menunggu (persaingan CPU). Hal ini menunjukkan skenario saat Anda mungkin perlu mengoptimalkan penggunaan API platform.
Menganalisis Peluncuran Aplikasi Lambat
Startup bersifat kompleks, yang melibatkan inisialisasi sistem, forking proses, dan pemuatan resource. Perfetto memvisualisasikan linimasa ini dengan tepat.
Anda dapat melihat apakah Anda sedang menunggu panggilan Binder (komunikasi antarproses). Jika onCreate menunggu lama untuk mendapatkan respons dari sistem PackageManager, Perfetto akan menampilkan status yang diblokir tersebut dengan jelas.
Anda juga dapat melihat apakah aplikasi Anda melakukan lebih banyak pekerjaan daripada yang diperlukan selama startup aplikasi. Misalnya, jika Anda membuat dan menata lebih banyak tampilan daripada yang perlu ditampilkan aplikasi, Anda dapat melihat operasi ini dalam rekaman aktivitas.
Menyelidiki Pengurasan Baterai & Penggunaan CPU
Karena Perfetto melihat seluruh sistem, alat ini sangat cocok untuk menemukan pengurasan daya yang tidak terlihat.
Anda dapat mengidentifikasi proses mana yang menahan penguncian layar saat aktif, sehingga mencegah perangkat tidur di bagian “Status Perangkat”. Pelajari lebih lanjut di postingan blog kunci tetap aktif kami. Selain itu, gunakan Perfetto untuk melihat apakah tugas latar belakang Anda berjalan terlalu sering atau mengaktifkan CPU secara tidak perlu.
Level 5: Buat framework pelacakan performa Anda sendiri
Tingkat terakhir adalah untuk aplikasi yang memiliki tim dengan sumber daya untuk mempertahankan framework pelacakan performa.
Membangun framework pelacakan performa kustom di Android melibatkan penggunaan beberapa API sistem untuk mengambil data di seluruh siklus proses aplikasi, dari mulai hingga keluar, dan selama skenario beban tinggi tertentu.
Dengan menggunakan ApplicationStartInfo, ProfilingManager, dan ApplicationExitInfo, Anda dapat membuat sistem telemetri yang andal yang melaporkan cara aplikasi Anda dimulai, info mendetail tentang apa yang dilakukan saat berjalan, dan alasan aplikasi berhenti.
ApplicationStartInfo: Melacak cara aplikasi dimulai
Tersedia mulai dari Android 15 (API 35), ApplicationStartInfo memberikan metrik mendetail tentang peluncuran aplikasi di lapangan. Data ini mencakup apakah itu merupakan cold start, warm start, atau hot start, dan durasi berbagai fase mulai.
Hal ini membantu Anda mengembangkan metrik startup dasar menggunakan data produksi untuk mengoptimalkan lebih lanjut apa yang mungkin sulit direproduksi secara lokal. Anda dapat menggunakan metrik ini untuk menjalankan pengujian A/B yang mengoptimalkan alur pengaktifan.
Tujuannya adalah untuk mencatat metrik peluncuran secara akurat tanpa melakukan instrumentasi setiap fase inisialisasi secara manual.
Anda dapat mengkueri data ini secara lambat beberapa saat setelah peluncuran aplikasi.
ProfilingManager: Merekam alasan mengapa lambat
ProfilingManager (API 35) memungkinkan aplikasi Anda memicu rekaman aktivitas sistem secara terprogram di perangkat pengguna. Hal ini sangat berguna untuk mendeteksi masalah performa sementara di lingkungan produksi yang tidak dapat Anda reproduksi secara lokal.
Tujuannya adalah merekam rekaman aktivitas secara otomatis saat perjalanan pengguna yang sangat penting tertentu terdeteksi berjalan lambat atau mengalami masalah performa.
Anda dapat mendaftarkan pemroses yang dipicu saat kondisi tertentu terpenuhi atau memicunya secara manual saat mendeteksi masalah performa seperti jank, penggunaan memori yang berlebihan, atau pengurasan baterai.
Lihat dokumentasi kami tentang cara merekam profil, mengambil dan menganalisis data pembuatan profil, serta menggunakan perintah debug.
ApplicationExitInfo: Melacak alasan aplikasi berhenti
ApplicationExitInfo (API 30) memberi tahu Anda alasan proses sebelumnya dihentikan. Hal ini sangat penting untuk menemukan error native, ANR, atau penghentian sistem karena penggunaan memori yang berlebihan (OOM). Anda juga dapat memperoleh rekaman aktivitas tombstone mendetail menggunakan API getTraceInputStream.
Tujuan API ini adalah untuk memahami masalah stabilitas yang tidak memicu pelaporan error Java standar (seperti Low Memory Kills).
Anda harus memicu API ini pada peluncuran aplikasi berikutnya.
Langkah Berikutnya
Meningkatkan performa Android adalah perjalanan langkah demi langkah. Kami sangat antusias untuk melihat peningkatan performa Anda menggunakan alat ini.
Tonton Ask Android besok
Anda telah menyusutkan aplikasi dengan R8 dan mengoptimalkan runtime dengan Pengoptimalan yang Dipandu Profil. Dan ukur performa aplikasi Anda.
Bergabunglah dengan kami besok untuk sesi Tanya Android live. Ajukan pertanyaan Anda sekarang menggunakan #AskAndroid dan dapatkan jawaban dari para pakar.
Lanjutkan membaca
-
Petunjuk
Sebagai pengakuan bahwa pengurasan baterai yang berlebihan menjadi perhatian utama bagi pengguna Android, Google telah mengambil langkah-langkah signifikan untuk membantu developer membangun aplikasi yang lebih hemat daya.
Alice Yuan • Waktu baca: 8 menit
-
Petunjuk
Kami ingin memberi Anda contoh fitur yang didukung AI menggunakan model di perangkat dan Cloud, serta menginspirasi Anda untuk menciptakan pengalaman yang menyenangkan bagi pengguna Anda.
Thomas Ezan, Ivy Knight • Waktu baca: 2 menit
-
Petunjuk
Kami membahas Pengoptimalan yang Dipandu Profil, peningkatan performa Jetpack Compose, dan pertimbangan untuk bekerja di balik layar.
Ben Weiss, Breana Tate, Jossi Wolf • Waktu baca: 8 menit
Terus dapatkan informasi
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.