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, uygulama başlatma 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, genel olarak performansı artırarak işe yaradı:
- 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 ana feed'lerindeki kaydırma ve oluşturma performansını hedefleyen Baseline Profiles'ı uyguladı. Bu strateji, en yaygın kullanıcı yolculuklarının (uygulamayı açma ve feed'de gezinme) tam olarak 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 arttı. 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) tetikliyoruz ve tamamlandıktan sonra en son değişiklikleri uyguluyoruz" 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 tamamına 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.
-
Başarılı ÖrneklerKarrot, kullanıcıların diğer doğrulanmış kullanıcılarla ürün alıp satmasına ve takas etmesine olanak tanıyan, topluluk odaklı, yakın çevreye özel bir eşler arası pazar yeri uygulamasıdır. 2015 yılında Güney Kore'de kullanıma sunulan platform, küresel pazarlara açılarak 43 milyondan fazla kayıtlı kullanıcıya ulaştı.
Thomas Ezan, Tracy Agyemang • Okuma süresi 2 dakika -
Başarılı ÖrneklerSosyal 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, Tracy Agyemang • Okuma süresi 4 dakika -
Başarılı ÖrneklerGiyilebilir cihazlar için Android uygulaması geliştirirken ekran kapandığında asıl çalışma başlar.
Breana Tate, Tracy Agyemang • Okuma süresi 4 dakika
Android geliştirmeyle ilgili en son analizleri her hafta gelen kutunuza alın.