Başlangıç Profilleri, Temel Profillerin bir alt kümesidir. Başlangıç profilleri, APK'nızın DEX dosyalarındaki kod düzenini iyileştirerek sınıfları ve içerdikleri yöntemleri daha da optimize etmek için derleme sistemi tarafından kullanılır. Başlangıç profilleri sayesinde, uygulama başlangıcınız genellikle temel profillerle olduğundan% 15 ila% 30 daha hızlıdır.
Şartlar
Başlangıç profillerini aşağıdaki araçlarla kullanmanızı öneririz:
- Jetpack Macrobenchmark 1.2.0 veya sonraki sürümler
- Android Gradle eklentisi 8.2 veya sonraki sürümler
- Android Studio Iguana veya sonraki sürümler
Ayrıca uygulamanızda aşağıdaki ayarların bulunması gerekir:
- R8 etkinleştirildi. Yayın derlemeniz için
isMinifyEnabled = trueayarını yapın. - DEX düzeni optimizasyonları etkinleştirildi. Uygulama modülünün derleme dosyasının
baselineProfile {}bloğundadexLayoutOptimization = truedeğerini ayarlayın.
Başlangıç Profili oluşturma
Android Studio, varsayılan temel profil oluşturucu şablonunu kullandığınızda temel profilin yanı sıra bir başlangıç profili de oluşturur.
Başlangıç profili oluşturma ve üretme adımları, temel profil oluşturma adımlarıyla aynıdır.
Başlangıç profili oluşturmanın varsayılan yolu, Android Studio'daki Baseline Profile
Generator modül şablonunu kullanmaktır. Buna temel bir Başlangıç Profili oluşturan başlangıç etkileşimleri dahildir. Bu Başlangıç Profili'ni daha fazla Kritik Kullanıcı Yolculuğu (CUJ) ile zenginleştirmek için uygulama başlangıcı CUJ'lerinizi rule olarak ayarlanmış includeInStartupProfile içeren bir true bloğuna ekleyin. Basit uygulamalar için uygulamanın MainActivity başlatılması yeterli olabilir. Daha karmaşık uygulamalar için en yaygın giriş noktalarını (ör. uygulamayı ana ekrandan başlatma veya derin bağlantı ile başlatma) eklemeyi düşünebilirsiniz.
Aşağıdaki kod snippet'inde, derin bağlantıya başlatmayı içeren bir Baseline Profile oluşturucu (varsayılan olarak BaselineProfileGenerator.kt dosyası) gösterilmektedir.
Derin bağlantı, uygulamanın ana ekranına değil doğrudan haber feed'ine gidiyor.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
uiAutomator {
// Launch directly into the NEWS_FEED using startActivityIntent
startIntent(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
}
Uygulama için temel profil oluştur yapılandırmasını çalıştırın ve Başlangıç Profili kurallarını src/<variant>/generated/baselineProfiles/startup-prof.txt konumunda bulun.
Başlangıç profili oluştururken dikkat edilmesi gerekenler
Bir başlangıç profili oluştururken hangi kullanıcı yolculuklarını ele alacağınıza karar vermek için kullanıcıların çoğunun uygulamayı nereden başlattığını göz önünde bulundurun. Genellikle başlatıcıdan ve kullanıcılar oturum açtıktan sonra yapılır. Bu, en temel başlangıç profili yolculuğudur.
İlk kullanım alanı ele alındıktan sonra uygulama başlatma için kullanıcı dönüşüm hunisini izleyin. Çoğu durumda, uygulama başlatma dönüşüm hunileri şu listeyi takip eder:
- Ana başlatıcı etkinliği
- Uygulama başlatmayı tetikleyen bildirimler
- İsteğe bağlı başlatıcı etkinlikleri
Bu listeyi en üstten başlayarak çalıştırın ve classes.dex dolmadan durdurun. Daha sonra daha fazla yolculuğu kapsamak için kodu başlangıç yolundan çıkarın ve daha fazla yolculuk ekleyin. Kodu başlangıç yolunun dışına taşımak için uygulama başlangıcı sırasında Perfetto izlerini inceleyin ve uzun süren işlemleri arayın. Uygulama başlangıcı sırasında yöntem çağrılarıyla ilgili otomatikleştirilebilir ve eksiksiz bir görünüm için yöntem izleme etkinleştirilmiş bir makro karşılaştırma testi de kullanabilirsiniz.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir.
- Temel profiller oluşturma {:#creating-profile-rules}
- Temel Profiller {:#baseline-profiles}
- Mikro karşılaştırma yazma