Menü
Developer

Google verabschiedet sich von der Jack-Toolchain für Android

Eigentlich sollte die neue Toolchain die Integration der Java-8-Features in das mobile Betriebssystem vereinfachen. Offensichtlich zieht Google die Notbremse, weil zu viele Werkzeuge von Drittanbietern nicht mehr funktionieren.

vorlesen Drucken Kommentare lesen 11 Beiträge

Google wird die Java-8-Features für das Android-Betriebssystem nun doch nicht wie ursprünglich vorgesehen mithilfe der Jack-Toolchain integrieren. Stattdessen will es die vorhandenen Werkzeuge wie den javac-Compiler an Java 8 anpassen. Jack (Java Android Compiler Kit) übersetzt den Quellcode direkt in Android Bytecode (dx-Dateien), während javac den Zwischenschritt über Java-Bytecode geht, aus dem das dx-Tool den Android-spezifischen Code erstellt.

Werkzeuge wie der Obfuscator ProGuard, die sich zwischen javac und dx einklinken, lassen sich nicht ohne weiteres mit Jack verwenden, das dafür jedoch einige der Aufgaben übernimmt und Optimierungs- und Obfuscator-Funktionen enthält. Externe Tools lassen sich mit dem Linker Jill (Jack Intermediate Library Linker) anbinden. Da Jill sich jedoch an einer anderen Stelle in den Prozess einschaltet, funktionieren nicht alle vorhandenen Werkzeuge. Beispielsweise lassen sich keine Lint-Tools verwenden, die direkten Zugriff auf den Java-Bytecode benötigen.

Offensichtlich hat Google die Schwierigkeiten erkannt und deshalb beschlossen, doch wieder auf die herkömmliche Kombination aus javac und dex zu setzen. So heißt es auf dem Android-Entwicklerblog:

"Anfangs haben wir versucht Java-8-Support über die Jack-Toolchain hinzuzufügen. Im Lauf der Zeit haben wir gemerkt, dass der Preis des Wechsels auf Jack für unsere Community zu hoch ist, wenn wir die betroffenen Annotationswerkzeuge, Bytecode Analyzer und Rewriter berücksichtigen."

Die Jack-Toolchain beendet damit ihr Gastspiel, das sie spätestens mit dem Einzug in Android Studio 2.1 im Frühjahr 2016 begonnen hatte. Laut dem Blogbeitrag plant Google einen sanften Übergang. Derzeit lässt sich Jack weiter verwenden, und die Migration soll "wenig bis gar keine Arbeit" erfordern. Offensichtlich sind die Macher bereits recht weit mit der Integration von Java 8 in das native Android-Build-System. Sie soll laut dem Blogbeitrag in den kommenden Wochen Einzug in Android Studio halten. (rme)