Örnek Olaylar
Monzo, basit bir R8 güncellemesiyle performans metriklerini% 35'e kadar artırdı
Okuma süresi: 2 dakika
Monzo, Birleşik Krallık'ta 15 milyon müşterisi olan ve büyümeye devam eden bir dijital bankadır. Uygulama ölçeklendikçe mühendislik ekibi, uygulamanın başlatılma süresinin iyileştirilmesi gereken kritik bir alan olduğunu belirledi ancak bunun kod tabanlarında önemli değişiklikler yapmayı gerektireceğinden endişelendi.
Monzo, R8 optimizasyonlarını tam olarak etkinleştirerek Uygulama Yanıt Vermiyor (ANR) oranında% 35'lik büyük bir düşüş elde etti. Bu basit değişiklik, etkili optimizasyonların her zaman karmaşık mühendislik çalışmaları gerektirmediğini kanıtladı.
R8 tam modu ile geniş kapsamlı performans artışları elde etme
Monzo, R8 tam modunu denemeye değer kolay bir çözüm olarak belirledi. Bu çözüm işe yaradı ve performansı genel olarak iyileştirdi:
- Başlatma güvenilirliği: Baştan başlatma %30, hazırda başlatma %24 ve çalışır durumda başlatma %14 oranında iyileştirildi.
- Yayınlama Hızı: P50 yayınlama süreleri% 11, P90 yayınlama süreleri ise %12 iyileştirildi.
- Verimlilik: Uygulamanın genel boyutu %9 oranında küçültüldü.
- Kararlılık: ANR'de %35 azalma.
Tek bir değişiklikle optimizasyonları etkinleştirme
Birçok Android uygulaması, R8 optimizasyon aracının işlevlerinin çoğunu devre dışı bırakan eski bir varsayılan yapılandırma dosyası kullanır. Monzo'nun bu performans iyileştirmelerini etkinleştirmek için yaptığı temel değişiklik, proguard-android.txt varsayılan dosyasını proguard-android-optimize.txt ile değiştirmek oldu. Bu değişiklik, -dontoptimize talimatını kaldırır ve R8'in işini düzgün bir şekilde yapmasına olanak tanır.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Bu değişikliği yaptıktan sonra Keep yapılandırma dosyalarınızı incelemeniz önerilir. Bu dosyalar, R8'e kodunuzun hangi bölümlerinin değiştirilmemesi gerektiğini (genellikle dinamik olarak veya harici kitaplıklar tarafından çağrıldıkları için) bildirir. Gereksiz Keep kurallarını temizlemek, R8'in daha fazla iş yapabileceği anlamına gelir.
Temel profillerle kaydırma performansını iyileştirme
Monzo, kullanıcı deneyimini daha da iyileştirmek için Baseline Profiles'ı uyguladı. Bu özellik, özellikle ana feed'lerindeki kaydırma ve oluşturma performansını hedefliyordu. Bu strateji, en yaygın kullanıcı yolculuklarının (uygulamayı açma ve feed'de gezinme) tamamen optimize edilmesini sağladı. Oluşturma üzerindeki etkisi önemliydi: P90 kaydırma performansı% 71 daha hızlı hale geldi ve P95 kaydırma performansı %87 iyileşti. Artık uygulamada kaydırma işlemi daha sorunsuz.
Monzo, bu iyileştirmelerin zaman içinde korunması için bu özelliği yayın sürecine dahil etti. Neumayer,"Temel profil oluşturma işlemini her hafta içi (gece derlemelerimizi çalıştırmadan önce) tetikliyor ve tamamlandıktan sonra en son değişiklikleri işliyoruz" diyor.
Modern Android geliştirmeyle ilgili gelişmeleri takip etme
Monzo'nun deneyimi, Android derleme araçlarıyla ilgili önerileri takip ettiğinizde neler yapabileceğinizi gösteriyor. Eski uygulamalar genellikle karmaşık yansıtma kullanımıyla ilgili sorunlar yaşasa da Monzo, Keep Kurallarını düzgün bir şekilde belgeleyerek geçişi kolayca tamamladı. Neumayer, "Kuralların neden uygulandığını açıklayan bir yorum ekliyoruz. Böylece kuralları ne zaman güvenle kaldırabileceğimizi biliyoruz" diyor.
Neumayer'in diğer ekiplere tavsiyesi ne? Uygulamalarınızı mevcut standartlara göre düzenli olarak kontrol edin: "Google'ın uygulama performansıyla ilgili en son önerilerine göz atın ve en son tavsiyelerin tümüne uyup uymadığınızı kontrol edin."
Başlamak ve R8 hakkında daha fazla bilgi edinmek için https://d.android.com/r8 adresini ziyaret edin.
Okumaya devam edin
-
Örnek Olaylar
Reddit'teki mühendislik ekibi, Android Geliştirici İlişkileri ekibiyle çalışırken uygulamasını değerlendirmek için Uygulama Performansı Puanı'nı kullandı.
Ben Weiss • Okuma süresi: 4 dakika
-
Örnek Olaylar
TikTok, geniş kullanıcı tabanı ve yenilikçi özellikleriyle bilinen, dünya genelinde kullanılan bir kısa video platformudur.
Ben Trengrove, Ajesh Pai • Okuma süresi: 2 dakika
-
Örnek Olaylar
Sosyal medyanın dinamik dünyasında kullanıcıların ilgisi hızla kazanılır veya kaybedilir. Meta uygulamaları (Facebook ve Instagram), dünyanın en büyük sosyal platformları arasında yer alır ve dünya genelinde milyarlarca kullanıcıya hizmet verir.
Mayuri Khinvasara Khabya • Okuma süresi: 4 dakika
Gelişmelerden haberdar olun
Android geliştirmeyle ilgili en son analizleri her hafta gelen kutunuza alın.