ProfilYükleyici

  
Kitaplıkların, ART tarafından okunacak derleme izlerini önceden doldurmasını sağlar.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
2 Ekim 2024 1.4.1 - - -

Bağımlılıkları beyan etme

ProfileInstaller'a bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Eski

dependencies {
    implementation "androidx.profileinstaller:profileinstaller:1.3.1"
}

Kotlin

dependencies {
    implementation("androidx.profileinstaller:profileinstaller:1.3.1")
}

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.4

Sürüm 1.4.1

2 Ekim 2024

androidx.profileinstaller:profileinstaller:1.4.1 yayınlanır. 1.4.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Birden fazla işlemi sırayla işaretleyerek çok işlemli temel profil kaydı desteği düzeltildi. Bu düzeltme için hem makro karşılaştırma/temel profil modülünüzde androidx.benchmark:benchmark-macro:1.4.0-alpha02 hem de uygulamada androidx.profileinstaller:profileinstaller:1.4.1 güncellemesi yapmanız gerekir. (I0f519, b/366231469)

1.4.0 sürümü

18 Eylül 2024

androidx.profileinstaller:profileinstaller:1.4.0 yayınlanır. 1.4.0 sürümü bu taahhütleri içerir.

1.3.0 sürümünden bu yana yapılan önemli değişiklikler

  • ProfileInstaller artık API 35 ve sonraki sürümlerde profil yakalamayı/yüklemeyi destekliyor. Platform sürümü güncellemeleri için ProfileInstaller'te güncelleme yapılması artık gerekmiyor. (6f9f6fa)
  • Android U (API 34) ve emülatörlerde gölgelendirici bırakıldığında oluşan kilitlenmeyi düzeltir. (I031ca, b/274314544)
  • V_015S profil biçiminde yöntem işareti kod dönüştürme sorununu düzeltin. (aosp/2906631, aosp/2847740)

Sürüm 1.4.0-rc01

4 Eylül 2024

androidx.profileinstaller:profileinstaller:1.4.0-rc01, son beta sürümden herhangi bir değişiklik yapılmadan yayınlandı. 1.4.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 1.4.0-beta01

21 Ağustos 2024

androidx.profileinstaller:profileinstaller:1.4.0-beta01, son alfa sürümünden herhangi bir değişiklik içermeden yayınlanır. 1.4.0-beta01 sürümü bu taahhütleri içerir.

Sürüm 1.4.0-alpha02

7 Ağustos 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha02 yayınlanır. Sürüm 1.4.0-alpha02 bu kaydetmeleri içerir.

Yeni Özellikler

  • Profil Yükleyici'ye api 35 desteği eklendi. (6f9f6fa)

Hata Düzeltmeleri

  • Yeni platform API'lerine erişim manuel olarak belirtilmemiştir. Bunun nedeni, AGP 7.3 veya sonraki sürümlerde R8 kullanıldığında (ör. R8 3.3 sürümü) ve AGP 8.1 veya sonraki sürümlerde tüm derlemelerde (ör. D8 8.1 sürümü) API modelleme aracılığıyla otomatik olarak gerçekleşmesidir. AGP kullanmayan müşterilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleyi inceleyin. (If6b4c, b/345472586)

Sürüm 1.4.0-alpha01

7 Şubat 2024

androidx.profileinstaller:profileinstaller:1.4.0-alpha01 yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Profil doğrulayıcıya yerleştirilmiş profil olmadığında hata kodu eklendi. (Ifb109, b/313928520)
  • Android U (API 34) ve emülatörlerde gölgelendirici bırakıldığında oluşan kilitlenmeyi düzeltir. (I031ca, b/274314544)
  • Profil yükleyicide Android U desteği etkinleştirildi. (Iaf177)
  • İşlem başladığında mevcut profilin boş oluşturulmaması nedeniyle Android U'daki profil yükleyicinin başarısız olması sorunu düzeltildi. (Ie3899)
  • V_015S profil biçiminde yöntem bitmap kod dönüştürme sorununu düzeltin. (aosp/2906631) ve (aosp/2847740)

Sürüm 1.3

Sürüm 1.3.1

3 Mayıs 2023

androidx.profileinstaller:profileinstaller:1.3.1 yayınlandı. 1.3.1 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Profil yükleyicide Android U desteği etkinleştirildi (Iaf177)
  • Android U'daki profil yükleyicinin, işlem başladığında mevcut profilin boş oluşturulmaması nedeniyle başarısız olması sorunu düzeltildi. (Ie3899)

1.3.0 sürümü

22 Mart 2023

androidx.profileinstaller:profileinstaller:1.3.0 yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.

1.2.0 sürümünden bu yana yapılan önemli değişiklikler

  • ProfileInstallReceiver'da NullPointerException sorunu düzeltildi. (b/243851384)
  • Bir temel profilin derlenip derlenmediğini, planlanıp planlanmadığını veya eksik olup olmadığını uygulama içinden kontrol etmek için ProfileVerifier API'si eklendi (I263a4, b/246653809)
  • Temel profil oluşturma işlemine dahil edilmek üzere Macrobenchmark'in bellek içi profil verilerini diske tamamen boşaltmasını sağlayan yeni bir kabuk yayını ekler. Bu, BaselineProfileRule ile temel profilleri yakalamak ve CompilationMode.Partial(warmupIterations)'ü kullanarak profil performansını değerlendirmek için makro karşılaştırma kitaplığının kullanılması için gereklidir.
  • Sıkıştırılmış temel profilleri algılamak için teşhis kodu eklendi. Sıkıştırılmış temel profiller, CPU yükü nedeniyle Profileinstaller tarafından makro karşılaştırmalarda veya üretimde yüklenemez. Ayrıca, uygulamanızı oluştururken Studio/AGP Electric Eel veya bundletool 1.13.1 sürümüne(I86413, b/261998144) güncelleyerek sıkıştırılmış temel profillerden kaçınılmalıdır.
  • Köklendirilmemiş cihazlarda temel profiller oluşturmak veya makro karşılaştırma yapmak için gereken profilleri yakalamak ve gölgelendirici önbelleğini bırakmak amacıyla makro karşılaştırma için kanca eklendi (Ie0a7d, b/250083467, b/253094958) (Ia5171, b/231455742)

Sürüm 1.3.0-rc01

8 Mart 2023

androidx.profileinstaller:profileinstaller:1.3.0-rc01, son beta sürümden bu yana herhangi bir değişiklik içermeden yayınlanmıştır. 1.3.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 1.3.0-beta01

8 Şubat 2023

androidx.profileinstaller:profileinstaller:1.3.0-beta01 yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Sıkıştırılmış profilleri işleme desteği kaldırıldı. Sıkıştırılmış profillerin açılması ve sıkıştırmasının kaldırılması, başlangıç sırasında CPU kullanımında 10 milisaniyelik bir gerilemeyle sonuçlanır. Bu nedenle, yanlış sıkıştırılmış ana profilleri tespit etmek için bir teşhis eklendi. (I86413, b/261998144)

Sürüm 1.3.0-alpha03

11 Ocak 2023

androidx.profileinstaller:profileinstaller:1.3.0-alpha03 yayınlandı. 1.3.0-alpha03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Sıkıştırılmış veya sıkıştırılmamış temel profillerin işlenmesini sağlar (Ic61a0)
  • Profil yükleyici manifestindeki (I5c728, b/258619948) yayın kaydını düzelterek MacrobenchmarkScope.dropShaderCache() sorununun artık kilitlenmemesi için sorunu giderin

Sürüm 1.3.0-alpha02

9 Kasım 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha02 yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Özellikle ısınma iterasyonlarından alınan profillerle derleme yaparken, soğuk başlatmalarda tutarlı performans sağlamak için gölge önbelleğini bırakan karşılaştırmalar için bir kanca eklendi. benchmark-macro-junit4:1.2.0-alpha05 veya sonraki sürümleri kullanan soğuk başlatmaları ölçmek için bu güncelleme gereklidir. Karşılaştırma kitaplığının API değişiklikleri için lütfen Karşılaştırma 1.2.0-alpha07 sayfasına bakın. (Ia5171, b/231455742)

Sürüm 1.3.0-alpha01

24 Ekim 2022

androidx.profileinstaller:profileinstaller:1.3.0-alpha01 yayınlandı. 1.3.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Bir temel profilin derlenmiş, planlanmış veya eksik olup olmadığını uygulama içinden kontrol etmek için ProfileVerifier API'si eklendi (I263a4, b/246653809)
  • Temel profil oluşturma işlemine dahil edilmek üzere Macrobenchmark'in bellek içi profil verilerini diske tamamen boşaltmasını sağlayan yeni bir kabuk yayını ekler. Bu, BaselineProfileRule ile temel profilleri yakalamak ve CompilationMode.Partial(warmupIterations)'ü kullanarak profil performansını değerlendirmek için makro karşılaştırma kitaplığının kullanılması için gereklidir. (Ie0a7d, b/250083467, b/253094958)

1.2.2 sürümü

1.2.2 sürümü

11 Ocak 2023

androidx.profileinstaller:profileinstaller:1.2.2 yayınlanır. 1.2.2 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Sıkıştırılmış veya sıkıştırılmamış temel profillerin işlenmesini sağlar (Ic61a0)

Sürüm 1.2.1

Sürüm 1.2.1

7 Aralık 2022

androidx.profileinstaller:profileinstaller:1.2.1 yayınlanır. 1.2.1 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • S_V2 (API 32) ve TIRAMISU (API 33) için profileinstaller'ı etkinleştirin (b/254900303).

Sürüm 1.2.0

Sürüm 1.2.0

27 Temmuz 2022

androidx.profileinstaller:profileinstaller:1.2.0 yayınlanır. 1.2.0 sürümü bu taahhütleri içerir.

1.1.0 sürümünden bu yana yapılan önemli değişiklikler

  • Android 12 ve sonraki sürümlerde kullanılan ART profil biçimi için destek eklendi.
  • Referans profilleri kullanırken Macrobenchmarks ile daha tutarlı sonuçlar elde etmek için ProfileInstallReceiver'e yeni API'ler ekleyin.

Sürüm 1.2.0-rc01

15 Haziran 2022

androidx.profileinstaller:profileinstaller:1.2.0-rc01 yayınlandı. 1.2.0-rc01 sürümü bu taahhütleri içerir.

  • Bu sürüm androidx.profileinstaller:profileinstaller:1.2.0-beta03 ile aynıdır.

Sürüm 1.2.0-beta03

1 Haziran 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta03 yayınlandı. 1.2.0-beta03 sürümü bu taahhütleri içerir.

Sürüm 1.2.0-beta02

18 Mayıs 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta02 yayınlanır. Sürüm 1.2.0-beta02 bu kaydetmeleri içerir.

  • Değişiklik yok. Compose 1.2.0-beta02 sürümlerini desteklemek için gerekti.

Sürüm 1.2.0-beta01

11 Mayıs 2022

androidx.profileinstaller:profileinstaller:1.2.0-beta01 yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Referans profilleri kullanırken Macrobenchmarks ile daha tutarlı sonuçlar elde etmek için ProfileInstallReceiver'e yeni API'ler ekleyin. (If2ae5, b/215740637)

Hata Düzeltmeleri

  • Profil Yükleyici, Android 12 ve sonraki sürümlerde meta veri V_001 biçimini kullanmaya çalışırken faydalı bir mesaj gösterir. (aosp/1978526, b/217502387)
  • Profil Yükleyici artık androidx.startup 1.1.1 sürümünü kullanıyor. (aosp/2077099, b/229828376)

Sürüm 1.2.0-alpha02

26 Ocak 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha02 yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri içerir.

Bu sürüm, 1.2.0-alpha01 sürümüyle aynı.

Sürüm 1.2.0-alpha01

12 Ocak 2022

androidx.profileinstaller:profileinstaller:1.2.0-alpha01 yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Android 12 ve sonraki sürümlerde kullanılan ART profil biçimi için destek ekleyin.

1.1.0 sürümü

1.1.0 sürümü

9 Şubat 2022

androidx.profileinstaller:profileinstaller:1.1.0 yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.

Sürüm 1.1.0-rc01

15 Aralık 2021

androidx.profileinstaller:profileinstaller:1.1.0-rc01, 1.1.0-beta04 sürümünden bu yana güncelleme olmadan yayınlandı. 1.1.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 1.1.0-beta04

1 Aralık 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta04 yayınlandı. 1.1.0-beta04 sürümü bu taahhütleri içerir.

Sürüm 1.1.0-beta03

17 Kasım 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta03 yayınlanır. 1.1.0-beta03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Oluştur 1.1.0-beta03'ü desteklemek için güncellendi

Sürüm 1.1.0-beta02

3 Kasım 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta02 yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Compose 1.1.0-beta02'yi desteklemek için güncellendi

Sürüm 1.1.0-beta01

27 Ekim 2021

androidx.profileinstaller:profileinstaller:1.1.0-beta01 yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.

  • 1.1.0-alpha07'den beri değişiklik yok.

Sürüm 1.1.0-alpha07

13 Ekim 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha07 yayınlanır. 1.1.0-alpha07 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Android N'de profm desteği eklendi

Sürüm 1.1.0-alpha06

29 Eylül 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha06 yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • N, O ve O_MR1'de profil yükleyici kod dönüştürme sorunlarını düzeltme (I12d75)

Sürüm 1.1.0-alpha05

15 Eylül 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha05 yayınlanır. 1.1.0-alpha05 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Çoklu APK'lar için Android Nougat ve Android Oreo profil kod dönüştürme işlemi düzeltildi.

Sürüm 1.1.0-alpha04

1 Eylül 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha04 yayınlandı. 1.1.0-alpha04 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Referans profilleri kullanan uygulamaların CompilationMode.BaselineProfile ile MacroBenchmarks çalıştırmasını kolaylaştırmak için ProfileInstaller hatasını düzeltin. (I42657, b/196074999)

Sürüm 1.1.0-alpha03

18 Ağustos 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha03 yayınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • PackageInfo.lastUpdatedTime öğesini uygulamanın dosya dizinindeki bir dosyaya kaydetmek için profil yükleyici atlama davranışını değiştirin ve bir sonraki çalıştırmada profili yüklemeden önce bunu karşılaştırın. (Ib93d1)
  • P, Q, R cihazlardaki profil biçimini ART şartlarına uygun olacak şekilde ayarlama (I84e89)

Sürüm 1.1.0-alpha02

4 Ağustos 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha02 yayınlanır. 1.1.0-alpha02 sürümü bu kaydetmeleri içerir.

Compose 1.1.0-alpha01 ile uyumlu olacak şekilde güncellendi.

Sürüm 1.1.0-alpha01

21 Temmuz 2021

androidx.profileinstaller:profileinstaller:1.1.0-alpha01 yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.

Hata Düzeltmeleri

  • Bazı durumlarda katı modu tetikleyen hata düzeltildi.

Sürüm 1.0

Sürüm 1.0.4

13 Ekim 2021

androidx.profileinstaller:profileinstaller:1.0.4 yayınlanır. 1.0.4 sürümü bu taahhütleri içerir.

  • Oluştur 1.0.4'ü destekleyecek şekilde güncellendi

Sürüm 1.0.3

29 Eylül 2021

androidx.profileinstaller:profileinstaller:1.0.3 yayınlandı. 1.0.3 sürümü bu taahhütleri içerir.

  • Oluştur 1.0.3'ü destekleyecek şekilde güncellendi

Sürüm 1.0.2

1 Eylül 2021

androidx.profileinstaller:profileinstaller:1.0.2 yayınlanır. 1.0.2 sürümü bu kaydetmeleri içerir.

Hata Düzeltmeleri

  • P, Q ve R cihazlar için profil kod dönüştürme özelliği eklendi. Bu değişiklik, bu cihazların profili kod dönüştüreceği ve yazılı profilin her zaman ART tarafından kullanılabilmesini sağlayacağı anlamına gelir. Daha önce bu platformlarda kod dönüştürme atlanır ve bu da bazen ART'ın kaynak profili işleyememesine neden olurdu. Geliştirici API'lerinde değişiklik yapılmamıştır.

1.0.1 sürümü

4 Ağustos 2021

androidx.profileinstaller:profileinstaller:1.0.1 yayınlanır. 1.0.1 sürümü bu kaydetmeleri içerir.

Compose 1.0.1 ile uyumlu olacak şekilde güncellendi.

Sürüm 1.0.0

28 Temmuz 2021

androidx.profileinstaller:profileinstaller:1.0.0 yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.

1.0.0 sürümünün önemli özellikleri

Profil yükleyici, kitaplıkların ve uygulamaların "Profil Kuralları" tanımlamasına ve ART profil bilgilerini bir APK ile paketlemesine olanak tanıyan yeni bir kitaplıktır. Bu kitaplık, uygulama başlatıldıktan sonra bu profilleri yükler. Bu, uygulama performansını iyileştirmek için kullanılabilir.

Bu profil kurallarının ne olduğu ve nasıl çalıştığı hakkında daha fazla bilgi için lütfen 1.0.0-beta01 sürümünün ayrıntılı sürüm notlarına bakın.

Sürüm 1.0.0-rc02

14 Temmuz 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc02 yayınlanır. 1.0.0-rc02 sürümü bu taahhütleri içerir.

Sürüm 1.0.0-rc01

1 Temmuz 2021

androidx.profileinstaller:profileinstaller:1.0.0-rc01 yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.

Bu, beta sürümünden farklı olmayan bir RC sürümüdür.

Sürüm 1.0.0-beta01

16 Haziran 2021

androidx.profileinstaller:profileinstaller:1.0.0-beta01 yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.

Kitaplığın Amacı

Profil yükleyici, kitaplıkların ve uygulamaların "Profil Kuralları" tanımlamasına ve ART profil bilgilerini bir APK ile paketlemesine olanak tanıyan yeni bir kitaplıktır. Bu kitaplık, uygulama başlatıldıktan sonra bu profilleri yükler. Bu, uygulama performansını iyileştirmek için kullanılabilir.

Bu profil yükleme işlemi, androidx.startup kitaplığıyla yapılır. Herhangi bir nedenle profil yüklemeyi devre dışı bırakmak isteyen kullanıcılar, manifest dosyasını değiştirerek bu özelliği kaldırabilir:


       <provider
           android:name="androidx.startup.InitializationProvider"
           android:authorities="${applicationId}.androidx-startup"
           android:exported="false"
           tools:node="merge">
           <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer"
                     tools:node="remove" />
       </provider>

Bu, özellikle uygulamanızın basit olmayan başlangıç koşulları varsa ve profil yüklemesini ProfileInstaller.writeProfile API'yi kullanarak manuel olarak tetiklemek istiyorsanız kullanışlıdır.

Profil kuralları nedir?

  • Bir kitaplığa ilişkin profil kuralları, src/main veya eşdeğer dizinde bulunan bir metin dosyasında (baseline-prof.txt) belirtilir. Dosyada satır başına bir kural belirtilir. Bu durumda kural, kitaplıktaki yöntemler veya sınıflarla eşleştirme için kullanılan bir kalıptır. Bu kuralların söz dizimi, adb shell profman --dump-classes-and-methods ... kullanılırken kullanılan, okunabilir ART profili biçiminin üst kümesidir. Bu kurallar, yöntemleri veya sınıfları hedeflemek için iki biçimden birini alır.

  • Yöntem kuralları aşağıdaki kalıba sahiptir:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • Sınıf kuralları ise aşağıdaki kalıba sahiptir:

    <CLASS_DESCRIPTOR>
    
  • Burada <FLAGS>, bu yöntemin "Popüler", "Başlangıç" veya "Başlangıç Sonrası" olarak işaretlenip işaretlenmeyeceğini belirtmek için H, S ve P karakterlerinden biri veya daha fazlasıdır.

  • <CLASS_DESCRIPTOR>, hedeflenen yöntemin ait olduğu sınıfın tanımlayıcısıdır. Örneğin, androidx.compose.runtime.SlotTable sınıfının tanımlayıcısı Landroidx/compose/runtime/SlotTable; olur.

  • <METHOD_SIGNATURE>, yöntemin imzasıdır ve yöntemin adını, parametre türlerini ve döndürülen türlerini içerir. Örneğin, LayoutNode üzerindeki fun isPlaced(): Boolean yönteminin imzası isPlaced()Z'dir.

  • Tek bir kuralın birden fazla yöntemi veya sınıfı kapsayabilmesi için bu kalıplarda joker karakterler (**, * ve ?) bulunabilir.

Kurallar ne işe yarar?

  • H işareti bulunan bir yöntem, bu yöntemin "sıcak" bir yöntem olduğunu ve önceden derlenmesi gerektiğini gösterir.

  • S işareti bulunan bir yöntem, başlangıçta çağrılan bir yöntem olduğunu gösterir ve yöntemin başlangıçta derleme ve yorumlama maliyetini önlemek için önceden derlenmesi gerekir.

  • P işareti olan bir yöntem, başlangıçtan sonra çağrılan bir yöntem olduğunu gösterir.

  • Bu dosyada bulunan bir sınıf, başlangıç sırasında kullanıldığını ve sınıf yükleme maliyetini önlemek için yığınta önceden ayrılması gerektiğini gösterir.

Nasıl çalışır?

  • Kitaplıklar, AAR yapılarında paketlenecek bu kuralları tanımlayabilir. Ardından, bu yapıları içeren bir APK derlendiğinde bu kurallar birleştirilir ve birleştirilen kurallar, APK'ya özel kompakt bir ikili ART profili oluşturmak için kullanılır. Ardından ART, APK cihazlara yüklendiğinde bu profilden yararlanarak uygulamanın performansını (özellikle de ilk çalıştırmayı) iyileştirmek için uygulamanın belirli bir alt kümesini önceden derleyebilir. Bu durumun, hata ayıklama yapılabilir uygulamaları etkilemeyeceğini unutmayın.

  • Kural dosyaları baseline-prof.txt olarak adlandırılmalı ve ana kaynak grubunuzun kök dizinine yerleştirilmelidir (AndroidManifset.xml dosyanızın kardeş dosyası olmalıdır).

  • Şu anda bu dosyalar yalnızca Android Gradle Eklentisi 7.0 veya sonraki bir sürümü kullanıyorsanız ve yalnızca gradle.properties dosyanızda bir işaretle etkinleştirildiyse kullanılır:

    # Enable adding baseline-prof.txt files to AAR artifacts, and binary profiles to APKs
    android.experimental.enableArtProfiles=true
    

Profiller için bakiye gerekir

  • Başlangıç yolunda olacak ve performans açısından kritik olan yöntemlere ve sınıflara doğru şekilde öncelik veren, doğru şekilde oluşturulmuş profiller en iyi sonuçları verir. Ancak profillere çok fazla yöntem veya sınıf eklemek, bellek tüketimi ve disk kullanımı açısından net bir olumsuz etkiye neden olabilir. Bu nedenle, kendi profil kurallarınızı tanımlarken muhafazakar bir şekilde başlamanız önerilir.