Membuat Profil Startup

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.

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. Dalam blok baselineProfile {} file build modul aplikasi, tetapkan dexLayoutOptimization = 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:

  1. Aktivitas peluncur utama
  2. Notifikasi yang memicu peluncuran 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 tampilan panggilan metode yang dapat diotomatiskan dan lengkap selama pengaktifan aplikasi.