Başlangıç Profilleri, Temel Profillerin bir alt kümesidir. Başlangıç Profilleri kullanılıyor sınıfları ve yöntemleri daha da optimize etmek için derleme sistemi tarafından APK'nızın DEX dosyalarındaki kod düzenini iyileştirerek. Başlatma profilleri sayesinde uygulamanızın başlatılması genellikle yalnızca temel profillere kıyasla %15 ila %30 daha hızlıdır.
Gereksinimler
Başlangıç Profillerini aşağıdaki araçlarla kullanmanızı öneririz:
- Jetpack Macrobenchmark 1.2.0 veya üzeri
- Android Gradle Plugin 8.2 veya sonraki sürümler
- Android Studio Iguana veya sonraki sürümler
Ayrıca, uygulamanızda aşağıdaki ayarlara sahip olmanız gerekir:
- R8 etkinleştirildi. Sürüm derlemeniz için
isMinifyEnabled = true
- DEX düzen optimizasyonları etkin. Uygulama modülünün derleme dosyasının
baselineProfile {}
bloğundadexLayoutOptimization = true
değerini ayarlayın.
Başlangıç Profili oluşturun
Android Studio, aşağıdaki işlemleri yaptığınızda Temel Profil ile birlikte bir Başlangıç Profili oluşturur: Varsayılan Temel Profil Oluşturucu şablonunu kullanın.
Başlangıç Profili oluşturmaya ve oluşturmaya ilişkin genel adımlar aşağıdakilerle aynıdır: bir Temel Profil oluşturun.
Başlangıç Profili oluşturmanın varsayılan yolu Temel Profil kullanmaktır
Android Studio içinden oluşturma aracı modülü şablonu. Buna startup dahildir
etkileşimlerine değer katarlar. Bu Başlangıç Profili'ni genişletmek için
Daha fazla Kritik Kullanıcı Seyahati (CUJ) içeren uygulama başlatma CUJ'lerini rule
includeInStartupProfile
ile blok true
olarak ayarlandı. Basit uygulamalar için
uygulamanın MainActivity
değeri yeterli olabilir. Daha karmaşık uygulamalar için
en yaygın giriş noktalarını (ör. uygulamayı
ana ekranda veya derin bağlantıda oturum açarak.
Aşağıdaki kod snippet'i bir Temel Profil oluşturma aracını (varsayılan olarak
BaselineProfileGenerator.kt
dosyası)
derin bağlantı açılır. Derin bağlantı doğrudan
uygulamanın haber feed'inde yer alır.
@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")
})
}
}
}
Uygulama için Temel Profil oluştur yapılandırmasını çalıştırın ve
Başlangıç Profili kuralları:
src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Başlangıç Profilleri optimizasyonunu onaylama
DEX düzen optimizasyonunu onaylamak için Android Studio'yu kullanarak APK'yı açın ve
DEX dosyalarındaki sınıfları doğrular. Birincil classes.dex
şöyle olmadığından emin olun:
tamamen dolduruldu. Uygulamanız tek bir DEX dosyasından oluşuyorsa
Başlangıç Profili etkinleştirildikten sonra uygulamanın iki DEX dosyası içerip içermediğini kontrol edin.
Başlangıç sınıfları tek bir DEX dosyasına sığmıyorsa Android Studio sizi uyarır.
başlatma sınıfını kullanıyorsanız R8 derleyicisinin en az
settings.gradle
dosyasında aşağıdaki değişiklikleri yaparak
Başlangıç Profili'ni uygularsınız:
Kotlin
pluginManagement { buildscript { repositories { mavenCentral() maven { url = uri("https://storage.googleapis.com/r8-releases/raw") } } dependencies { classpath("com.android.tools:r8:8.3.6-dev") } } }
Eski
pluginManagement { buildscript { repositories { mavenCentral() maven { url uri('https://storage.googleapis.com/r8-releases/raw') } } dependencies { classpath 'com.android.tools:r8:8.3.6-dev" } } }
Şu tarihten sonra --info
eklediğinizden emin olun:
assembleRelease
kullanabilirsiniz.
./gradlew assembleRelease --info
Teşhis daha sonra terminale yazdırılır.
Uygulamanız veya kitaplıklar, azaltılmış API'lere başvuruda bulunuyorsa paket halinde bu sınıfların uyumluluk uygulamaları her zaman DEX dosyası olarak kaydedin. Bu sadeleştirilmiş son DEX dosyası, DEX düzeninde yer almıyor optimize edebilirsiniz.
Başlangıç profili oluştururken dikkat edilmesi gereken noktalar
Bir başlangıç profilinin sınıflarının ve yöntemlerinin çıktısı, ilk sınıflar.dex dosyasını seçin. Bu, tüm temel profil yolculuklarının startup profili yolculukları da olmalıdır.
Startup profili oluştururken hangi kullanıcı yolculuklarının kapsanacağına karar vermek için aşağıdakileri göz önünde bulundurun: uygulamayı başlatan platform. Bu genellikle başlatıcıdan ve kullanıcı giriş yaptıktan sonra aktif olur. Bu, en temel taban profil yolculuğudur.
İlk kullanım alanı ele alındıktan sonra uygulama başlatma için kullanıcı dönüşüm hunisini takip edin. Uygulama başlangıç dönüşüm hunileri birçok durumda aşağıdaki listeyi izler:
- Ana başlatıcı etkinliği
- Uygulama başlatmayı tetikleyen bildirimler
- İsteğe bağlı başlatıcı etkinlikleri
Bu listeyi en baştan başlatın ve sınıflar.dex dolmadan önce durun. Kapanacak daha fazla yolculuk yapmak isterseniz, kodu başlangıç yolundan teşekkür ederiz. Kodu başlangıç yolunun dışına taşımak için uygulama başlatılırken Perfetto izlerini inceleyin ve uzun süreli işlemlere odaklanın. Ayrıca, bir macrobenchmark da kullanabilirsiniz. yöntem izleme etkinken özelliğini kullanın.
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Temel Profiller Oluşturma {:#create-profile-rules}
- Temel Profiller {:#baseline-profile}
- Mikro karşılaştırma yazma