Membuat Profil Dasar Pengukuran
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Profil Dasar Pengukuran sangat penting untuk memaksimalkan performa Jetpack Compose.
Mengompilasi terlebih dahulu perjalanan pengguna penting akan membantu memastikan bahwa UI Compose Anda dirender dengan lancar.
Buat profil secara otomatis untuk setiap rilis aplikasi menggunakan library Jetpack
Macrobenchmark dan BaselineProfileRule. Sebaiknya gunakan
com.android.tools.build:gradle:8.0.0 atau versi lebih baru untuk memanfaatkan peningkatan
build saat menggunakan Profil Dasar Pengukuran.
Berikut adalah langkah umum untuk membuat Profil Dasar Pengukuran baru:
Menyiapkan modul Profil Dasar Pengukuran.
Menentukan pengujian JUnit yang membantu membuat Profil Dasar Pengukuran.
Tambahkan perjalanan penting pengguna (CUJ) yang ingin Anda optimalkan.
Membuat Profil Dasar Pengukuran.
Setelah Anda membuat Profil Dasar Pengukuran, lakukan benchmark menggunakan perangkat fisik untuk
mengukur peningkatan kecepatan.
Membuat Profil Dasar Pengukuran baru dengan AGP 8.2 atau yang lebih baru
Cara termudah untuk membuat Profil Dasar Pengukuran baru adalah dengan menggunakan template modul
Profil Dasar Pengukuran, yang tersedia mulai Android Studio Iguana dan Plugin
Android Gradle (AGP) 8.2.
Template modul Generator Profil Dasar Pengukuran Android Studio mengotomatiskan
pembuatan modul baru untuk membuat dan
menjalankan benchmark
Profil Dasar Pengukuran. Menjalankan template ini akan menghasilkan sebagian besar konfigurasi
build standar, pembuatan Profil Dasar Pengukuran, dan kode verifikasi. Template ini
membuat kode untuk menghasilkan dan menjalankan benchmark Profil Dasar Pengukuran guna mengukur startup aplikasi.
Menyiapkan modul Profil Dasar Pengukuran
Untuk menjalankan template modul Profil Dasar Pengukuran, ikuti langkah-langkah berikut:
Pilih File > New > New Module.
Pilih template Baseline Profile Generator di panel Templates
dan konfigurasikan:
Gambar 1. Template modul Generator Profil Dasar Pengukuran.
Kolom dalam template adalah sebagai berikut:
Target application: aplikasi yang menjadi tujuan pembuatan Profil Dasar Pengukuran. Jika Anda hanya memiliki satu modul aplikasi dalam project, hanya ada satu item dalam daftar ini.
Module name: nama yang Anda inginkan untuk modul Profil Dasar Pengukuran yang sedang dibuat.
Package name: nama paket yang Anda inginkan untuk modul
Profil Dasar Pengukuran.
Language: apakah Anda menginginkan kode yang dihasilkan berupa Kotlin atau Java.
Build configuration language: apakah Anda ingin menggunakan Skrip Kotlin (KTS) atau Groovy untuk skrip konfigurasi build Anda.
Gunakan perangkat yang dikelola Gradle: apakah Anda menggunakan perangkat yang dikelola
Gradle untuk menguji aplikasi Anda.
Klik Finish, dan modul baru akan dibuat. Jika menggunakan kontrol
sumber, Anda mungkin diminta untuk menambahkan file modul yang baru dibuat ke
kontrol sumber.
Menentukan generator Profil Dasar Pengukuran
Modul yang baru dibuat berisi pengujian untuk membuat dan melakukan benchmark
Profil Dasar Pengukuran serta hanya menguji startup aplikasi dasar. Sebaiknya, Anda menambahkannya untuk menyertakan CUJ dan alur kerja startup lanjutan. Pastikan semua pengujian
yang terkait dengan peluncuran aplikasi berada dalam blok rule dengan includeInStartupProfile yang ditetapkan
ke true; sebaliknya, untuk performa yang optimal, pastikan semua pengujian yang tidak
terkait dengan peluncuran aplikasi tidak disertakan dalam Profil Startup. Pengoptimalan
startup aplikasi digunakan untuk menentukan bagian khusus Profil Dasar Pengukuran yang disebut
Profil Startup.
Hal ini membantu pemeliharaan jika Anda memisahkan CUJ ini di luar Profil Dasar Pengukuran dan kode benchmark yang dihasilkan sehingga dapat digunakan untuk keduanya. Ini berarti perubahan pada CUJ Anda digunakan secara konsisten.
Membuat dan menginstal Profil Dasar Pengukuran
Template modul Profil Dasar Pengukuran menambahkan konfigurasi run baru untuk membuat
Profil Dasar Pengukuran. Jika Anda menggunakan ragam produk, Android Studio akan membuat
beberapa konfigurasi run sehingga Anda dapat membuat Profil Dasar Pengukuran
terpisah untuk setiap ragam.
Gambar 2. Menjalankan konfigurasi ini akan menghasilkan Profil
Dasar Pengukuran.
Saat konfigurasi run Buat Profil Dasar Pengukuran selesai, konfigurasi ini akan menyalin
Profil Dasar Pengukuran yang dihasilkan ke file
src/variant/generated/baselineProfiles/baseline-prof.txt
dalam modul yang sedang dibuat profilnya. Opsi varian dapat berupa
jenis build rilis atau varian build yang melibatkan jenis build rilis.
Profil Dasar Pengukuran yang dihasilkan dibuat di build/outputs. Jalur
lengkap ditentukan oleh varian atau ragam aplikasi yang sedang dibuat profilnya, dan
ditentukan oleh apakah Anda menggunakan perangkat yang dikelola Gradle atau perangkat yang terhubung untuk pembuatan profil. Jika
Anda menggunakan nama yang digunakan oleh kode dan konfigurasi build yang dihasilkan oleh
template, Profil Dasar Pengukuran akan dibuat dalam
file build/outputs/managed_device_android_test_additional_output/nonminifiedrelease/pixel6Api31/BaselineProfileGenerator_generate-baseline-prof.txt. Anda mungkin tidak perlu berinteraksi dengan versi Profil Dasar Pengukuran yang dihasilkan ini secara langsung, kecuali jika Anda menyalinnya secara manual ke modul target (tidak direkomendasikan).
Membuat Profil Dasar Pengukuran baru dengan AGP 8.1
Jika Anda tidak dapat menggunakan template modul Profil Dasar Pengukuran, gunakan
template modul Macrobenchmark dan plugin Gradle Profil Dasar Pengukuran untuk membuat
Profil Dasar Pengukuran baru. Sebaiknya, gunakan alat ini mulai dari
Android Studio Giraffe dan AGP 8.1.
Berikut adalah langkah-langkah untuk membuat Profil Dasar Pengukuran baru menggunakan template modul
Macrobenchmark dan plugin Gradle Profil Dasar Pengukuran:
Generator dapat berisi interaksi dengan aplikasi Anda di luar startup aplikasi.
Hal ini memungkinkan Anda mengoptimalkan performa runtime aplikasi, seperti
men-scroll daftar, menjalankan animasi, dan menavigasi dalam Activity.
Lihat contoh lain pengujian yang menggunakan @BaselineProfileRule untuk meningkatkan kualitas
perjalanan penting pengguna.
Tambahkan plugin Gradle Profil Dasar Pengukuran
(libs.plugins.androidx.baselineprofile). Plugin ini memudahkan
pembuatan Profil Dasar Pengukuran dan pengelolaannya di masa mendatang.
Untuk membuat Profil Dasar Pengukuran, jalankan tugas Gradle :app:generateBaselineProfile atau
:app:generateVariantBaselineProfile di
terminal.
Jalankan generator sebagai pengujian berinstrumen pada perangkat fisik yang di-root,
emulator, atau Perangkat yang Dikelola Gradle. Jika Anda menggunakan Perangkat yang Dikelola Gradle,
setel aosp sebagai systemImageSource, karena Anda memerlukan akses root untuk
generator Profil Dasar Pengukuran.
Di akhir tugas pembuatan, Profil Dasar Pengukuran disalin ke
app/src//generated/baselineProfiles.
Membuat Profil Dasar Pengukuran baru tanpa template
Berikut cara membuat Profil Dasar Pengukuran menggunakan plugin Gradle Profil Dasar Pengukuran
secara langsung:
Buat modul com.android.test baru—misalnya,
:baseline-profile.
Konfigurasi file build.gradle.kts untuk :baseline-profile:
Terapkan plugin androidx.baselineprofile.
Pastikan targetProjectPath mengarah ke modul :app.
Secara opsional, tambahkan perangkat yang dikelola Gradle (GMD). Dalam contoh
berikut, nilainya adalah pixel6Api31. Jika tidak ditentukan, plugin akan menggunakan perangkat terhubung, baik yang diemulasikan maupun fisik.
Terapkan konfigurasi yang Anda inginkan, seperti yang ditunjukkan dalam contoh berikut.
Kotlin
plugins{id("com.android.test")id("androidx.baselineprofile")}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath=":app"// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device="Pixel 6"apiLevel=31systemImageSource="aosp"}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices+="pixel6Api31"// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevices=false}
Groovy
plugins{id'com.android.test'id'androidx.baselineprofile'}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath':app'// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device'Pixel 6'apiLevel31systemImageSource'aosp'}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices['pixel6Api31']// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevicesfalse}
Buat pengujian Profil Dasar Pengukuran dalam modul pengujian :baseline-profile. Contoh
berikut adalah pengujian yang membuat Profil Dasar Pengukuran untuk startup
aplikasi.
Update file build.gradle.kts di modul aplikasi, misalnya :app.
Terapkan plugin androidx.baselineprofile.
Tambahkan dependensi baselineProfile ke
modul :baseline-profile.
Kotlin
plugins{id("com.android.application")id("androidx.baselineprofile")}android{// There are no changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile(project(":baseline-profile"))}
Groovy
plugins{id'com.android.application'id'androidx.baselineprofile'}android{// No changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile':baseline-profile'}
Buat profil dengan menjalankan tugas Gradle :app:generateBaselineProfile atau
:app:generateVariantBaselineProfile.
Di akhir tugas pembuatan, Profil Dasar Pengukuran disalin ke
app/src/variant/generated/baselineProfiles.
Gambar 3. Menjalankan Pengujian Android dari tindakan
gutter.
Saat Anda menjalankan ini dalam Android Studio, output build akan berisi detail
peningkatan kecepatan yang disediakan oleh Profil Dasar Pengukuran:
StartupBenchmarks_startupCompilationBaselineProfiles
timeToInitialDisplayMs min 161.8, median 178.9, max 194.6
StartupBenchmarks_startupCompilationNone
timeToInitialDisplayMs min 184.7, median 196.9, max 202.9
Merekam semua jalur kode yang diperlukan
Dua metrik utama untuk mengukur waktu startup aplikasi adalah sebagai berikut:
Waktu hingga tampilan penuh (TTFD): TTID ditambah waktu untuk menampilkan konten
yang dimuat secara asinkron setelah frame awal ditampilkan.
TTFD dilaporkan setelah metode reportFullyDrawn dari
ComponentActivity dipanggil. Jika reportFullyDrawn tidak pernah dipanggil, TTID akan dilaporkan. Anda mungkin harus menunda saat reportFullyDrawn dipanggil hingga pemuatan asinkron selesai. Misalnya, jika UI
berisi daftar lambat dinamis, daftar tersebut mungkin diisi oleh tugas
latar belakang yang selesai setelah daftar pertama kali digambar, sehingga setelah UI
ditandai sebagai digambar sepenuhnya. Dalam kasus tersebut, kode yang berjalan setelah UI mencapai
status sepenuhnya digambar tidak disertakan dalam Profil Dasar Pengukuran.
Untuk menyertakan populasi daftar sebagai bagian dari Profil Dasar Pengukuran Anda, dapatkan
FullyDrawnReporter dengan menggunakan getFullyDrawnReporter dan tambahkan reporter
ke profil tersebut di kode aplikasi Anda. Rilis reporter setelah tugas latar belakang selesai
mengisi daftar. FullyDrawnReporter tidak memanggil
metode reportFullyDrawn hingga semua reporter dirilis. Dengan melakukan ini,
Profil Dasar Pengukuran menyertakan jalur kode yang diperlukan untuk mengisi daftar. Tindakan ini tidak mengubah perilaku aplikasi bagi pengguna, tetapi memungkinkan Profil Dasar Pengukuran menyertakan semua jalur kode yang diperlukan.
Untuk menunjukkan status yang sepenuhnya digambar, gunakan Compose API berikut:
ReportDrawn menunjukkan bahwa composable Anda langsung siap untuk
berinteraksi.
ReportDrawnWhen mengambil predikat, seperti list.count > 0, untuk
menunjukkan kapan composable Anda siap berinteraksi.
ReportDrawnAfter mengambil metode penangguhan yang, setelah selesai,
menunjukkan bahwa composable Anda siap untuk berinteraksi.
Direkomendasikan untuk Anda
Catatan: teks link ditampilkan saat JavaScript nonaktif
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2026-08-24 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2026-08-24 UTC."],[],[]]