Spotify hat sein Ruler-Tool als Open-Source-Lösung bereitgestellt, um App-Entwicklern bei der Analyse ihrer App-Größen zu helfen. Dies ist eine einfache Möglichkeit, große Abhängigkeiten zu identifizieren.
Bei der Installation von Apps im Google Play Store bevorzugen Benutzer normalerweise kleinere App-Größen. Das kann am begrenzten Speicherplatz oder der begrenzten Download-Bandbreite liegen, oder einige Benutzer bevorzugen einfach eine schnellere Installation. Dennoch verfügt Spotify über ein Tool namens „Ruler“, mit dem es die Größe seiner Android-Apps misst und analysiert, um herauszufinden, wie man sie verkleinern kann. Jetzt stellt das Unternehmen dieses Tool als Open Source zur Verfügung und ist für jeden Entwickler, der es nutzen möchte, kostenlos nutzbar.
Im Google Play Store veröffentlichte Apps werden heute typischerweise in Form eines Android App Bundles hochgeladen. Wenn ein Benutzer die Installation einer App anfordert, generiert der Google Play Store eine optimierte APK für den Endbenutzer, der die App installiert. Ruler ahmt diesen Prozess nach, um eine APK zu erstellen, die genau dem entspricht, was der Endbenutzer erhalten soll. Für jede Datei erfasst Ruler dann zwei Messungen:
- Downloadgröße: Über das Netzwerk übertragene Bytes, wenn ein Benutzer die App herunterlädt
- Installationsgröße: Bytes, die eine Datei nach der Installation der App auf dem Gerät einnimmt
Ruler kann dann eine App durchsuchen und die Liste der darin enthaltenen Dateien und deren Größe finden. Außerdem können alle Gradle-Module und Abhängigkeiten gefunden werden, die zur Größe der App beitragen. Dadurch wird eine zweite Liste aller Komponenten und deren Inhalte erstellt. Durch die Kombination beider Listen ist es möglich, alle Dateien der App nach ihrer Quelle zu gruppieren und zu bestimmen, wie viel jedes Modul und jede Abhängigkeit zur Gesamtgröße der App beiträgt. Es gibt auch andere Methoden, und es lohnt sich, einen Blick auf die des Unternehmens zu werfen Ingenieur-Blogbeitrag um mehr zu lernen.
Spotify gibt an, dass die Haupt-Spotify-App über 1.000 Gradle-Module und Hunderte von Abhängigkeiten von Drittanbietern verfügt und dass Ruler dazu beigetragen hat, die App-Größe in den letzten sechs Monaten um etwas mehr als 9 % zu reduzieren. Das Unternehmen gibt an, einmal täglich Daten zur App-Größe zu exportieren und dabei den neuesten Hauptbuild zu verwenden. Mithilfe dieser Daten lassen sich historische Trends verfolgen, sowohl der gesamten App als auch einzelner Module und Abhängigkeiten von Drittanbietern. Außerdem wird der Einfluss jeder Pull-Anfrage auf die App-Größe analysiert, sodass den Entwicklern frühzeitig Feedback gegeben werden kann.
Ruler ist vollständig in Kotlin geschrieben. Um es zu verwenden, müssen Sie lediglich das Plugin auf Ihr Android-Projekt anwenden und eine einzelne Gradle-Aufgabe ausführen. Sie können sich Rulers ansehen GitHub um zu erfahren, wie Sie es in Ihr Projekt integrieren können.