Zum Hauptinhalt Zur Navigation

Bytecode-Optimierer: Kleinere, schnellere Android-Apps dank Facebook

25 Prozent kleiner und gar 30 Prozent schneller sei die Android-App von Facebook dank eines eigenen Bytecode-Optimierers. Das Werkzeug Redex stellt Facebook nun als Open Source bereit.
/ Sebastian Grüner
32 Kommentare News folgen (öffnet im neuen Fenster)
Bytecode-Optimierung scheint unter Android viel zu bringen. (Bild: Facebook)
Bytecode-Optimierung scheint unter Android viel zu bringen. Bild: Facebook

Die Android-App von Facebook wird immer wieder für ihre schiere Größe und die damit einhergehende langsame Startzeit kritisiert. Eine Verbesserung dafür verspricht unter anderem der von Facebook selbst entwickelte Bytecode-Optimierer Redex(öffnet im neuen Fenster) , der Apps kleiner und schneller machen soll und nun als Open Source bereitsteht.

In der Ankündigung heißt es(öffnet im neuen Fenster) , dass Facebook selbst den Umfang des Bytecodes in seiner App mit Redex um 25 Prozent verringert habe. Allein dadurch starte die App auch wesentlich schneller, was aber abhängig vom Gerät ist. Im Schnitt soll die App rund 20 Prozent schneller starten als bisher, auf Mittelklasse-Geräten sei diese Rate sogar auf 30 Prozent gesteigert worden.

Einfache und bekannte Optimierungen

Das Werkzeug verändert den Bytecode von Android-Apps, der mit dem Dateiformat Dex bezeichnet wird. Dafür werden verschiedene typische Umwandlungen vorgenommen, wie das Entfernen von nicht benutztem Code, Inlining von Funktionen oder auch das Verkürzen von Strings. Entfernt werden auch einige Metadaten sowie Schnittstellen, die nur einmal aufgerufen werden. Letztere werden dann in einfache Methoden transformiert. Die Reihenfolge der Dex-Dateien wird ebenfalls angepasst, um schneller starten zu können.

Um anderen die Arbeit mit Redex zu vereinfachen, haben die Entwickler Hilfsfunktionen erstellt, die eine Apk-Datei entpacken, analysieren und nach der vorgenommenen Optimierung des Bytecodes wieder zu einer Apk-Datei zusammenpacken. Für den gesamten Arbeitsschritt reicht so lediglich der Aufruf eines einzelnen Befehls. Über eine Json-Datei kann auch Einfluss auf die einzelnen Optimierungsschritte genommen werden.

Der Code von Redex(öffnet im neuen Fenster) steht auf Github zur Verfügung.


Relevante Themen