Membuat Profil Startup

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.

Gambar 1. Peningkatan lokalitas kode dari pengoptimalan tata letak DEX.

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, tetapkan dexLayoutOptimization = 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:

  1. Aktivitas peluncur utama
  2. Notifikasi yang memicu startup aplikasi
  3. 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.