Başlangıç Profili Oluşturma

Startup Profilleri, Temel Profillerin alt kümesidir. APK'nızın DEX dosyalarındaki kod düzenini iyileştirerek, yapı sistemi, içerdikleri sınıfları ve yöntemleri daha da optimize etmek için başlangıç profillerini kullanır. 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.

Şekil 1. DEX düzeni optimizasyonundan kod yerelliği iyileştirme

Şartlar

Açılış Profilleri'ni aşağıdaki araçlarla kullanmanızı öneririz:

  • Jetpack Macrobenchmark 1.2.0 veya üstü
  • 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 ayarlara da ihtiyacınız vardır:

  • R8 etkin. Yayın derlemeniz için isMinifyEnabled = true değerini ayarlayın.
  • DEX düzen optimizasyonları etkin. Uygulama modülünün derleme dosyasının baselineProfile {} bloğunda dexLayoutOptimization = true değerini ayarlayın.

Startup Profili Oluşturma

Android Studio, varsayılan Temel Profil Oluşturucu şablonunu kullandığınızda Temel Profil ile birlikte bir Başlangıç Profili oluşturur.

Startup Profili oluşturmak ve oluşturmak için gereken genel adımlar, Referans Profili oluşturmak için gereken adımlarla aynıdır.

Başlangıç Profili oluşturmanın varsayılan yolu, Android Studio'dan Temel Profil Oluşturucu modülü şablonunu kullanmaktır. Buna, temel bir girişim profili oluşturan girişim etkileşimleri de dahildir. Bu Başlangıç Profili'ni daha fazla Kritik Kullanıcı Yolculuğu (CUJ) ile geliştirmek için uygulamanızın başlangıç CUJ'larını, includeInStartupProfile'nın true olarak ayarlandığı bir rule bloğuna ekleyin. Basit uygulamalar için uygulamanın MainActivity başlatılması yeterli olabilir. Daha karmaşık uygulamalar için uygulamanıza en yaygın giriş noktalarını ekleyebilirsiniz. Örneğin, uygulamayı ana ekrandan başlatma veya derin bağlantı ile başlatma gibi.

Aşağıdaki kod snippet'inde, uygulamanızı ana ekrandan başlatmayı ve derin bağlantıya yönlendirmeyi içeren bir Temel Profil oluşturucu (varsayılan olarak BaselineProfileGenerator.kt dosyası) gösterilmektedir. Derin bağlantı, kullanıcıları uygulamanın ana ekranına değil, doğrudan uygulamanın haber özet akışında yönlendiriyor.

@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 referans profil oluşturma yapılandırmasını çalıştırın ve src/<variant>/generated/baselineProfiles/startup-prof.txt adresinde Başlangıç Profili kurallarını bulun.

Startup profili oluştururken dikkat edilmesi gereken noktalar

Bir başlangıç profilinin sınıf ve yöntemlerinin çıkışı, ilk classes.dex dosyasının boyutuyla sınırlıdır. Bu nedenle, tüm temel profil yolculukları aynı zamanda başlangıç profili yolculukları da olmamalıdır.

Başlangıç profili oluştururken hangi kullanıcı yolculuklarının kapsanacağına karar vermek için çoğu kullanıcının uygulamayı nerede başlattığını göz önünde bulundurun. Genellikle başlatıcıdan ve kullanıcı giriş yaptıktan sonra yapılır. 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şlatma dönüşüm hunileri çoğu durumda aşağıdaki listeyi izler:

  1. Ana başlatıcı etkinliği
  2. Uygulamanın başlatılmasını tetikleyen bildirimler
  3. İsteğe bağlı başlatıcı etkinlikleri

Bu listeyi en baştan başlayarak inceleyin ve classes.dex dolmadan önce durun. Daha sonra daha fazla yolculuğu kapsayacak şekilde kodu başlangıç yolundan çıkarın ve daha fazla yolculuk ekleyin. Kodu başlangıç yolundan çıkarmak için uygulamanın başlatılması sırasında Perfetto izlerini inceleyin ve uzun süre çalışan işlemleri arayın. Uygulamanın başlatılması sırasındaki yöntem çağrılarının otomatikleştirilebilir ve eksiksiz bir görünümü için yöntem izlemenin etkinleştirildiği bir makro karşılaştırma da kullanabilirsiniz.

Şu anda öneri yok.

Google Hesabınızda deneyin.