Studia przypadków
Monzo zwiększa wskaźniki skuteczności nawet o 35% dzięki prostej aktualizacji R8
Czas czytania: 2 min
Monzo to brytyjski bank cyfrowy, który ma 15 milionów klientów i stale się rozwija. W miarę skalowania aplikacji zespół inżynierów uznał czas uruchamiania aplikacji za kluczowy obszar wymagający poprawy, ale obawiał się, że będzie to wymagało znacznych zmian w bazie kodu.
Dzięki pełnemu włączeniu optymalizacji R8 firma Monzo osiągnęła ogromną redukcję liczby błędów typu „Aplikacja nie odpowiada” (ANR) o 35%. Ta prosta zmiana pokazała, że skuteczne optymalizacje nie zawsze wymagają złożonych prac programistycznych.
Zwiększanie skuteczności dzięki pełnemu trybowi R8
Monzo uznał, że tryb pełny R8 jest łatwym do wdrożenia rozwiązaniem, które warto wypróbować. Okazało się, że działa i poprawia wydajność w każdym aspekcie:
- Niezawodność uruchamiania: uruchomienia „na zimno” zostały ulepszone o 30%, uruchomienia „na ciepło” o 24%, a uruchomienia z pamięci o 14%.
- Szybkość uruchamiania: czas uruchamiania P50 skrócił się o 11%, a czas uruchamiania P90 o 12%.
- Skuteczność: ogólny rozmiar aplikacji został zmniejszony o 9%.
- Stabilność: zmniejszenie liczby błędów ANR o 35%.
Włączanie optymalizacji za pomocą jednej zmiany
Wiele aplikacji na Androida używa nieaktualnego domyślnego pliku konfiguracyjnego, który wyłącza większość funkcji optymalizatora R8. Główną zmianą, jaką wprowadził Monzo, aby uzyskać poprawę wydajności, było zastąpienie domyślnego pliku proguard-android.txt plikiem proguard-android-optimize.txt. Ta zmiana usuwa instrukcję -dontoptimize i umożliwia prawidłowe działanie R8.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}
Po wprowadzeniu tej zmiany warto sprawdzić pliki konfiguracyjne Keep. Te pliki informują R8, które części kodu mają pozostać bez zmian (zwykle dlatego, że są wywoływane dynamicznie lub przez biblioteki zewnętrzne). Usuwanie niepotrzebnych reguł Keep oznacza, że R8 może zrobić więcej.
Poprawa wydajności przewijania dzięki profilom podstawowym
Aby jeszcze bardziej poprawić wrażenia użytkowników, firma Monzo wdrożyła profile podstawowe, które są ukierunkowane na wydajność przewijania i renderowania na głównym kanale. Dzięki tej strategii najczęstsze ścieżki użytkowników – otwieranie aplikacji i przewijanie kanału – były w pełni zoptymalizowane. Wpływ na renderowanie był znaczny: 90 centyl wydajności przewijania wzrósł o 71%, a 95 centyl o 87%. Teraz przewijanie aplikacji jest płynniejsze niż wcześniej.
Monzo włączył tę funkcję do procesu publikowania, aby z czasem utrzymać te ulepszenia. „Generowanie profilu bazowego uruchamiamy w każdy dzień roboczy (przed uruchomieniem kompilacji nocnych) i po zakończeniu procesu zatwierdzamy najnowsze zmiany” – wyjaśnia Neumayer.
Nadążanie za nowoczesnym rozwojem Androida
Przykład Monzo pokazuje, co można osiągnąć, gdy korzysta się z najnowszych rekomendacji dotyczących narzędzi do kompilacji Androida. Starsze aplikacje często mają problemy ze złożonym wykorzystaniem odbicia, ale Monzo uznał przejście za proste dzięki odpowiedniemu udokumentowaniu reguł Keep. „Zawsze dodajemy komentarz wyjaśniający, dlaczego obowiązują reguły przechowywania, dzięki czemu wiemy, kiedy można je bezpiecznie usunąć” – zauważa Neumayer.
Jaką radę ma Neumayer dla innych zespołów? Regularnie sprawdzaj swoje działania pod kątem aktualnych standardów: „Zapoznaj się z najnowszymi rekomendacjami Google dotyczącymi wydajności aplikacji i sprawdź, czy stosujesz wszystkie najnowsze porady”.
Aby rozpocząć i dowiedzieć się więcej o R8, wejdź na stronę https://d.android.com/r8
Czytaj dalej
-
Studia przypadków
Podczas współpracy z zespołem ds. relacji z programistami Androida zespół inżynierów z Reddita używał oceny wydajności aplikacji do oceny swojej aplikacji.
Ben Weiss • Czas czytania: 4 minuty
-
Studia przypadków
TikTok to globalna platforma z krótkimi filmami, która jest znana z ogromnej bazy użytkowników i innowacyjnych funkcji.
Ben Trengrove, Ajesh Pai • Czas czytania: 2 minuty
-
Studia przypadków
W dynamicznym świecie mediów społecznościowych uwaga użytkowników jest szybko zdobywana i tracona. Aplikacje Meta (Facebook i Instagram) należą do największych platform społecznościowych na świecie i obsługują miliardy użytkowników na całym świecie.
Mayuri Khinvasara Khabya • Czas czytania: 4 minuty
Bądź na bieżąco
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.