JioSaavn wurde 2007 gegründet und ist ein führender Audio-Streamingdienst für Musik und Podcasts. Sie haben über 900 Label-Partnerschaften und streamen über 80 Millionen Titel in 16 Sprachen. Die JioSaavn App ist auch in 6 regionalen indischen Sprachen verfügbar.
Mit einem Technologie-Stack, der über 100 Millionen monatlich aktive Nutzer unterstützt, ist JioSaavn in der Lage, schnell und in großem Umfang zu agieren. Diese Nutzer haben in der Regel Android-Smartphones mit begrenzten Ressourcen. Daher ist die Nutzerfreundlichkeit für das JioSaavn-Team von größter Bedeutung.
Die Herausforderung
Die Optimierung in einer Umgebung mit Einschränkungen, wie sie bei Mobilgeräten im unteren und mittleren Preissegment vorkommen, kann aus technischer Sicht sowohl herausfordernd als auch spannend sein. JioSaavn stand vor der Herausforderung, die Nutzerfreundlichkeit für die Hauptzielgruppe zu optimieren, die Low- bis Mid-End-Mobilgeräte verwendet und hauptsächlich in Tier 2- und Tier 3-Städten in Indien zu finden ist.
Bei der Analyse des Trichters zeigte sich, dass ein erheblicher Teil der Nutzer die App zwar startete, aber kein Lied hörte. Das Team hat festgestellt, dass die App-Startzeit die Ursache dafür ist. Die Verbesserung der App-Startzeit führte also zu einer Steigerung der Anzahl der Hörer in der App.
Die Umsetzung
JioSaavn hat sich auf umfassende Analysen und eine robuste Reihe von Tools wie Perfetto und dumpsys verlassen, um dieses Problem zu analysieren und eine nachhaltige Lösung zu finden. Das Team ging diese Herausforderung mit zwei Prinzipien an: Arbeit parallelisieren und faul sein.
Mithilfe der Analyse von Google priorisierte das Team Aufgaben:
- Systrace und Perfetto wurden verwendet, um den App-Ablauf zu untersuchen, Probleme zu analysieren und Verbesserungen bei der App-Startzeit zu validieren.
- Verzögerte Initialisierung: Initialisierung von Fragmenten, Instanzen oder Klassen, die bis zur Anzeige der Startseite verzögert werden könnte –
- Werbung
- Musikdienst (Dienst im Vordergrund) und Player-Ressourcen (z. B. ExoPlayer, zwischengespeicherte Player-Warteschlange usw.)
- Player-Fragment, das zum Zeitpunkt des Starts minimiert ist.
- On-Demand-Initialisierung: Verschiedene Bibliotheken werden bei Bedarf initialisiert (z. B. die Facebook-Bibliothek).
- viewStubs: Die Inflation der Ansicht und das Laden von Ressourcen waren hoch. Das Team hat die Layouts mit viewStubs vereinfacht und die Bilder in WebP konvertiert.
- Worker-Thread: Einige Aufgaben, für die kein UI-Thread erforderlich war, wurden in Hintergrundthreads verschoben, um den UI-Thread freizugeben.
- Cache-Daten aufteilen: Das Lesen und Parsen großer Cache-Daten aus einer Datei dauert viel Zeit. Das Team hat die Daten in kritische (für die Anzeige der Startseite erforderlich) und nicht kritische Daten unterteilt.
- Async LayoutInflater: Einige der für den RecyclerView auf der Startseite erforderlichen Ansichten wurden mit Async LayoutInflater vorab gerendert.
Verwendete Tools: Perfetto, Systrace, Google Play Vitals, Android Studio Profiler, Firebase Performance SDK
Ergebnisse
Das JioSaavn-Team hat diese Änderungen in mehreren Versionen der App veröffentlicht, um die Stabilität der App zu gewährleisten. Sie erzielten die folgenden Ergebnisse:
- Die Startzeit der App wurde auf allen Geräten um 30% und auf Geräten im unteren bis mittleren Preissegment um 35–40% verbessert.
- 5% mehr Zuschauer auf dem Startbildschirm/ DAU, wodurch die Absprungrate gesenkt wird.
Diese Optimierung hat das gesamte Team zusammengebracht. Es wurden detaillierte Anleitungen erstellt, damit sich das Team mit den Änderungen vertraut machen und einen leistungsbezogenen Ansatz für die App entwickeln konnte.
„JioSaavn möchte das Hörerlebnis unserer Nutzer aus verschiedenen Regionen
und Städten in Indien verbessern, die sich in Bezug auf die Erschwinglichkeit über das gesamte Spektrum erstrecken. Die mobile Konnektivitätsinfrastruktur der jeweiligen Region zu überwinden und die Nutzerfreundlichkeit auf den Geräten der Nutzer zu optimieren, ist eine ständige Herausforderung, an der wir arbeiten. Dank der Richtlinien von Google für Entwickler konnten wir einen entscheidenden Schritt in diese Richtung unternehmen.“– Das JioSaavn-Produktteam