Kleinere Downloads: Google reduziert Größe von App-Updates um 65 Prozent
Google hat in den Play Store eine neue Methode für die Reduzierung der Größe von App-Updates implementiert. Updates fallen im Durchschnitt 65 Prozent kleiner aus, im Einzelfall können sie aber auch über 90 Prozent kleiner sein. Entwickler und Anwender müssen keine Veränderungen vornehmen, um von der Neuerung zu profitieren.
Bsdiff für komprimierte Daten schlecht geeignet
Seit mehr als vier Jahren bietet Google über den Play Store sogenannte Delta-Updates an, die beim Update einer App nur die abgeänderten Komponenten herunterladen anstatt einen neuen vollständigen Download vorzunehmen. Die letzte Ausbaustufe der Delta-Updates kommt seit Juli dieses Jahres zum Einsatz und erreicht mit Bsdiff deutlich kleinere Dateidownloads. Bsdiff funktioniert allerdings nur dann besonders effektiv, wenn native Bibliotheken der App unkomprimiert vorliegen. Ist dies nicht der Fall, kann kein wirkungsvolles Delta berechnet werden und die App-Updates fallen im Schnitt nur noch 5 Prozent kleiner aus, anstatt zuvor 50 Prozent oder mehr.
File-by-File patching entpackt Inhalt
Mit dem von Google entwickelten „File-by-File patching“ soll dieses Problem nun angegangen werden, indem die Komprimierung keine derart wichtige Rolle mehr spielt. Auch das „File-by-File patching“ ist auf die Erkennung von Unterschieden von unkomprimierten Inhalten einer APK-Datei spezialisiert.
Darum muss sich jetzt aber nicht mehr der Entwickler kümmern, sondern Google entpackt die Daten und berechnet das Delta, was weiterhin per Bsdiff stattfindet. Um das App-Update anzuwenden, wird die alte Datei dekomprimiert, der Patch angewandt und die Datei anschließend neu gepackt.
Delta-Version muss mit Google-Play-Version übereinstimmen
Aufgrund der Methodik, wie Google APK-Dateien im Play Store signiert, muss die nach der Delta-Anpassung neu komprimierte Datei mit der Version auf Google Play übereinstimmen, die bei einer Neuinstallation abgerufen würde. Das setzt voraus, dass Google die gleiche Version und die korrekten Einstellungen der zum Einsatz kommenden Deflate-Komprimierung der Version im Play Store kennt.
Gleiche Deflate-Einstellungen für Byte-genaue Komprimierung
Wie Google erklärt, nutzen jedoch fast alle Inhalte auf Google Play dieselbe aktuelle Deflate-Version und zudem auch dieselben Einstellungen bei der Komprimierung, sodass eine von Google per Delta-Update überarbeitete App im neu gepackten Zustand Byte-genau mit der auf Google Play angeboten Vollversion übereinstimmt.
Nachteil zusätzliche Last auf dem Endgerät
Wie die Tabelle mit Beispielen von Google zeigt, sorgt das „File-by-File patching“ in den konkreten Fällen für 31 bis 92 Prozent kleinere Updates gegenüber der Ausgangsgröße. Da die Veränderungen rein auf Googles Seite stattfinden, müssen Entwickler und Anwender nichts unternehmen, um von der Neuerung zu profitieren. Da die Neukomprimierung jedoch auf dem Smartphone oder Tablet ausgeführt wird, ist ein Nachteil der neuen Methode die zusätzliche Last auf dem Endgerät. Ein Megabyte benötigt etwa eine Sekunde auf aktuellen Geräten des Jahrgangs 2015 oder neuer.
Neue Methode vorerst nur bei Hintergrund-Updates
Bei Reduzierung der Update-Größte um die Hälfte dauert das Anwenden des Patches jetzt doppelt so lange. Deshalb beschränkt Google das neue „File-by-File patching“ derzeit ausschließlich auf Updates im Hintergrund, die beispielsweise bei Nacht durchgeführt werden, wenn des Endgerät geladen und nicht vom Anwender genutzt wird. Manuell angestoßene Updates nutzen weiterhin Bsdiff, sind deshalb auch etwas größer, aber werden nach dem größeren Download auch schneller eingespielt.