ProfilYükleyici
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.
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 uygulamadaandroidx.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çinProfileInstaller
'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
'daNullPointerException
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 veCompilationMode.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 veCompilationMode.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çinProfileInstallReceiver
'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çinProfileInstallReceiver
'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çinProfileInstaller
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çinH
,S
veP
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
üzerindekifun 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.