Monzo steigert Leistungsmesswerte mit einfachem R8-Update um bis zu 35 %
Lesezeit: 2 Minuten
Monzo ist eine digitale Bank im Vereinigten Königreich mit 15 Millionen Kunden. Als die App skaliert wurde, stellte das Entwicklerteam fest, dass die Startzeit der App ein kritischer Bereich war, der verbessert werden musste. Sie befürchteten jedoch, dass dies erhebliche Änderungen an ihrer Codebasis erfordern würde.
Durch die vollständige Aktivierung der R8-Optimierungen konnte Monzo die Anzahl der „App antwortet nicht“-Fehler um 35% reduzieren. Diese einfache Änderung hat gezeigt, dass wirkungsvolle Optimierungen nicht immer komplexen technischen Aufwand erfordern.
Mit dem vollständigen R8-Modus die Leistung steigern
Monzo hat den R8-Vollmodus als einfache Lösung identifiziert, die es wert war, ausprobiert zu werden. Und es hat funktioniert: Die Leistung wurde insgesamt verbessert.
- Zuverlässigkeit beim Start:Kaltstarts wurden um 30%, Warmstarts um 24 % und Heißstarts um 14 % verbessert.
- Startgeschwindigkeit:Die P50-Startzeiten haben sich um 11% und die P90-Startzeiten um 12 % verbessert.
- Effizienz:Die Gesamtgröße der App wurde um 9 % reduziert.
- Stabilität:Die ANR-Rate wurde um 35 % gesenkt.
Optimierungen mit einer einzigen Änderung aktivieren
Viele Android-Apps verwenden eine veraltete Standardkonfigurationsdatei, die die meisten Funktionen des R8-Optimierers deaktiviert. Die wichtigste Änderung, die Monzo vorgenommen hat, um diese Leistungsverbesserungen zu erzielen, war, die Standarddatei proguard-android.txt durch proguard-android-optimize.txt zu ersetzen. Durch diese Änderung wird die -dontoptimize-Anweisung entfernt und R8 kann seine Aufgabe ordnungsgemäß ausführen.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Nachdem Sie diese Änderung vorgenommen haben, sollten Sie sich Ihre Keep-Konfigurationsdateien ansehen. Diese Dateien teilen R8 mit, welche Teile Ihres Codes nicht geändert werden sollen (in der Regel, weil sie dynamisch oder von externen Bibliotheken aufgerufen werden). Wenn Sie unnötige Keep-Regeln entfernen, kann R8 mehr leisten.
Scrollleistung mit Baseline-Profilen verbessern
Um die Nutzerfreundlichkeit weiter zu verbessern, hat Monzo Baseline Profiles implementiert, die speziell auf die Scroll- und Rendering-Leistung im Hauptfeed ausgerichtet sind. So konnten die häufigsten Nutzeraktionen wie das Öffnen der App und das Scrollen durch den Feed vollständig optimiert werden. Die Auswirkungen auf das Rendern waren erheblich: Die P90-Scrollleistung wurde um 71% und die P95-Scrollleistung um 87 % verbessert. Das Scrollen in der App ist jetzt flüssiger als zuvor.
Monzo hat diese Funktion in den Releaseprozess integriert, um diese Verbesserungen langfristig beizubehalten. „Wir starten die Generierung des Baseline-Profils jeden Wochentag (bevor wir unsere nächtlichen Builds ausführen) und übernehmen die neuesten Änderungen nach Abschluss“, erklärt Neumayer.
Mit der modernen Android-Entwicklung Schritt halten
Monzo zeigt, was möglich ist, wenn Sie die Empfehlungen für Android-Build-Tools berücksichtigen. Bei Legacy-Apps kann die Verwendung komplexer Reflektionen oft schwierig sein. Monzo hat die Umstellung jedoch als unkompliziert empfunden, da die Keep-Regeln ordnungsgemäß dokumentiert wurden. „Wir fügen immer einen Kommentar hinzu, in dem erklärt wird, warum Aufbewahrungsregeln vorhanden sind. So wissen wir, wann es sicher ist, die Regeln zu entfernen“, erklärt Neumayer.
Was rät Neumayer anderen Teams? Regelmäßig prüfen, ob Ihre Praktiken den aktuellen Standards entsprechen: „Sehen Sie sich die neuesten Empfehlungen von Google zur App-Leistung an und prüfen Sie, ob Sie alle aktuellen Ratschläge befolgen.“
Weitere Informationen zu R8 finden Sie unter https://d.android.com/r8.
-
FallstudienKarrot ist eine hyperlokale, communitybasierte P2P-Marktplatz-App, mit der Nutzer Artikel von anderen verifizierten Nutzern kaufen, an sie verkaufen oder mit ihnen tauschen können. Seit der Einführung in Südkorea im Jahr 2015 hat sich die Plattform auf globale Märkte ausgeweitet und zählt über 43 Millionen registrierte Nutzer.
Thomas Ezan, Tracy Agyemang • Lesezeit: 2 Minuten -
FallstudienIn der dynamischen Welt der sozialen Medien lässt sich die Aufmerksamkeit der Nutzer schnell gewinnen oder verlieren. Meta-Apps (Facebook und Instagram) gehören zu den weltweit größten sozialen Plattformen und werden von Milliarden Nutzern auf der ganzen Welt verwendet.
Mayuri Khinvasara Khabya, Tracy Agyemang • Lesezeit: 4 Minuten -
FallstudienWenn Sie eine Android-App für ein Wearable entwickeln, beginnt die eigentliche Arbeit, wenn das Display ausgeschaltet wird.
Breana Tate, Tracy Agyemang • Lesezeit: 4 Minuten
Lassen Sie sich Woche für Woche die neuesten Informationen zur Android-Entwicklung zusenden.