Profil Startup adalah subkumpulan 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 antara 15% dan 30% lebih cepat daripada dengan Profil Dasar Pengukuran saja.

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. Di blok
baselineProfile {}
file build modul aplikasi, tetapkandexLayoutOptimization = true
.
Membuat Profil Startup
Android Studio membuat Profil Startup 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 lebih banyak Perjalanan Penting Pengguna (CUJ), tambahkan CUJ startup aplikasi Anda ke blok rule
dengan includeInStartupProfile
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 aplikasi Anda, seperti memulai aplikasi dari
layar utama atau meluncurkan ke deep link.
Cuplikan kode berikut menunjukkan generator Profil Dasar Pengukuran (file
BaselineProfileGenerator.kt
secara default) yang mencakup memulai aplikasi dari
layar utama dan meluncurkan ke deep link. Deep link langsung mengarah 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 Buat Profil Dasar Pengukuran untuk aplikasi dan temukan
aturan Profil Startup di
src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Pertimbangan untuk membuat profil startup
Output class dan metode profil startup dibatasi oleh ukuran file classes.dex pertama. Artinya, tidak semua perjalanan profil dasar pengukuran juga harus berupa perjalanan profil startup.
Untuk menentukan perjalanan pengguna mana yang akan dibahas saat membuat profil startup, pertimbangkan tempat sebagian besar pengguna memulai aplikasi. Biasanya, perintah tersebut berasal dari peluncur dan setelah pengguna login. Ini juga merupakan perjalanan profil dasar pengukuran yang paling dasar.
Setelah kasus penggunaan pertama telah dibahas, ikuti funnel pengguna untuk startup aplikasi. Dalam banyak kasus, funnel startup aplikasi mengikuti daftar ini:
- Aktivitas peluncur utama
- Notifikasi yang memicu startup 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 melihat panggilan metode secara otomatis 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