Profil Startup adalah subset dari Profil Dasar Pengukuran. Profil Startup digunakan oleh sistem build untuk lebih mengoptimalkan class dan metode yang dimuatnya dengan meningkatkan tata letak kode dalam file DEX APK Anda. Dengan Profil Startup, startup aplikasi Anda biasanya 15% hingga 30% lebih cepat daripada hanya dengan Profil Dasar Pengukuran.

Persyaratan
Sebaiknya gunakan Profil Startup dengan alat berikut:
- Jetpack Macrobenchmark 1.2.0 atau yang lebih tinggi
- Plugin Android Gradle 8.2 atau yang lebih tinggi
- Android Studio Iguana atau yang lebih baru
Selain itu, Anda memerlukan setelan berikut di aplikasi:
- R8 diaktifkan. Untuk build rilis, tetapkan
isMinifyEnabled = true
. - Pengoptimalan tata letak DEX diaktifkan. Dalam blok
baselineProfile {}
file build modul aplikasi, tetapkandexLayoutOptimization = true
.
Membuat Profil Startup
Android Studio membuat Profil Peluncuran bersama Profil Dasar Pengukuran saat Anda menggunakan template Generator Profil Dasar Pengukuran default.
Langkah-langkah umum untuk membuat dan menghasilkan Profil Startup sama dengan langkah-langkah untuk membuat Profil Dasar Pengukuran.
Cara default untuk membuat Profil Startup adalah dengan menggunakan template modul
Generator Profil Dasar Pengukuran dari dalam Android Studio. Hal ini mencakup interaksi
startup yang membentuk Profil Startup dasar. Untuk menambah Profil Startup ini
dengan Perjalanan Penting Pengguna (CUJ) lainnya, tambahkan CUJ startup aplikasi Anda ke blok rule
dengan includeInStartupProfile
yang ditetapkan ke true
. Untuk aplikasi sederhana, meluncurkan
MainActivity
aplikasi mungkin sudah cukup. Untuk aplikasi yang lebih kompleks, pertimbangkan untuk menambahkan titik entri yang paling umum ke dalam aplikasi Anda, seperti memulai aplikasi dari layar utama atau meluncurkan ke deep link.
Cuplikan kode berikut menunjukkan generator Profil Dasar Pengukuran (secara default file
BaselineProfileGenerator.kt
) yang mencakup memulai aplikasi Anda dari
layar utama dan meluncurkan ke deep link. Deep link langsung menuju ke feed berita aplikasi, bukan layar utama aplikasi.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
// Launch directly into the NEWS_FEED.
startActivityAndWait(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
Jalankan konfigurasi Generate Baseline Profile for app dan temukan
aturan Profil Startup di
src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Pertimbangan untuk membuat profil startup
Untuk memutuskan perjalanan pengguna mana yang akan dicakup saat membuat profil startup, pertimbangkan tempat sebagian besar pengguna memulai aplikasi. Biasanya dari peluncur dan setelah mereka login. Ini juga merupakan perjalanan profil dasar pengukuran yang paling mendasar.
Setelah kasus penggunaan pertama tercakup, ikuti funnel pengguna untuk peluncuran aplikasi. Dalam banyak kasus, funnel peluncuran aplikasi mengikuti daftar ini:
- Aktivitas peluncur utama
- Notifikasi yang memicu peluncuran aplikasi
- Aktivitas peluncur opsional
Kerjakan daftar ini dari atas dan berhenti sebelum classes.dex penuh. Untuk mencakup lebih banyak perjalanan setelahnya, pindahkan kode dari jalur startup dan tambahkan lebih banyak perjalanan. Untuk memindahkan kode dari jalur startup, periksa rekaman aktivitas Perfetto selama startup aplikasi dan cari operasi yang berjalan lama. Anda juga dapat menggunakan macrobenchmark dengan pelacakan metode diaktifkan untuk tampilan panggilan metode yang dapat diotomatiskan dan lengkap selama pengaktifan aplikasi.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Membuat Profil Dasar Pengukuran {:#creating-profile-rules}
- Profil Dasar Pengukuran {:#baseline-profiles}
- Menulis Microbenchmark