Monzo zwiększa wskaźniki wydajności nawet o 35% dzięki prostej aktualizacji R8
Czas czytania: 2 minuty
Monzo to brytyjski bank cyfrowy, który ma 15 milionów klientów i stale się rozwija. W miarę rozwoju 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ą skomplikowanych prac programistycznych.
Osiąganie lepszych wyników dzięki pełnemu trybowi R8
Firma Monzo uznała tryb pełny R8 za łatwe do wdrożenia rozwiązanie, które warto wypróbować. Okazało się ono skuteczne i poprawiło wydajność w każdym aspekcie:
- Niezawodność uruchamiania: uruchamianie „na zimno” zostało ulepszone o 30%, uruchamianie „na ciepło” o 24%, a uruchamianie 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 przestarzałego 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 należy pozostawić 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 bazowe, które są ukierunkowane na wydajność przewijania i renderowania w 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: wydajność przewijania P90 wzrosła o 71%, a wydajność przewijania P95 – o 87%. Teraz przewijanie aplikacji jest płynniejsze niż wcześniej.
Monzo włączył tę funkcję do procesu publikowania, aby utrzymać te ulepszenia na stałe. „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 na Androida. Starsze aplikacje często mają problemy ze złożonymi przypadkami użycia odbicia, ale Monzo uznało 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 praktyki 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
-
Studia przypadkówKarrot to hiperlokalna, oparta na społeczności aplikacja handlowa peer-to-peer, która umożliwia użytkownikom kupowanie, sprzedawanie i wymienianie produktów z innymi zweryfikowanymi użytkownikami. Od momentu uruchomienia w 2015 roku w Korei Południowej platforma rozszerzyła swoją działalność na rynki globalne i zgromadziła ponad 43 miliony zarejestrowanych użytkowników.
Thomas Ezan, Tracy Agyemang • Czas czytania: 2 minuty -
Studia przypadkówW dynamicznym świecie mediów społecznościowych uwaga użytkowników jest szybko przyciągana lub 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, Tracy Agyemang • Czas czytania: 4 minuty -
Studia przypadkówTworzenie aplikacji na Androida na urządzenia do noszenia oznacza, że prawdziwa praca zaczyna się, gdy ekran się wyłącza.
Breana Tate, Tracy Agyemang • Czas czytania: 4 minuty
Otrzymuj co tydzień najnowsze informacje o tworzeniu aplikacji na Androida na swoją skrzynkę odbiorczą.