3 Repos
Tools that modify the structure and instructions of compiled bytecode to achieve specific functional goals.
Distinct from Bytecode Converters: Distinct from Bytecode Converters which typically change VM formats; transformers modify instructions within a format.
Explore 3 awesome GitHub repositories matching development tools & productivity · Bytecode Transformers. Refine with filters or upvote what's useful.
gradle-retrolambda ist ein Gradle-Plugin und Bytecode-Transformer, mit dem moderne Java-Lambda-Ausdrücke in älteren Java- und Android-Laufzeitumgebungen verwendet werden können. Es fungiert als Backporting-Tool, das sicherstellt, dass moderne funktionale Programmiersyntax mit älteren virtuellen Maschinen kompatibel bleibt. Das Projekt transformiert kompilierte Klassendateien, um sie mit Java 6- und 7-Umgebungen kompatibel zu machen. Dies ermöglicht die Nutzung moderner Java-Features in Projekten, die eine Abwärtskompatibilität zu älteren API-Levels und Legacy-Android-Geräten wahren müssen. Das Tool integriert sich in den Gradle-Build-Prozess und wendet nach der Kompilierung Transformationen an, um die Binärausgabe anzupassen. Es nutzt Bytecode-Desugaring, um Lambda-Ausdrücke in anonyme innere Klassen umzuwandeln und kompatible Laufzeit-Bridges zu generieren.
Gradle plugin that converts Java lambda expressions into bytecode compatible with Java 6 and 7 environments.
cglib ist eine Suite von Tools für JVM-Bytecode-Generierung, Klassentransformation und dynamisches Proxying. Sie bietet eine High-Level-API zum Erstellen und Transformieren von Java-Bytecode zur Laufzeit, um das Klassenverhalten zu modifizieren, sowie ein Framework zum Abfangen von Methodenaufrufen und Feldzugriffen. Das Projekt implementiert dynamische Proxy-Generierung zur Unterstützung aspektorientierter Programmierung und benutzerdefinierter Datenzugriffsmuster. Es enthält zudem einen Serialisierungsmanager, um Serialisierungsverträge durch das Hinzufügen spezifischer Methoden und die Steuerung des Objektaustauschs innerhalb von Proxy-Klassen zu implementieren. Die Bibliothek deckt Bytecode-Manipulation und Laufzeit-Codetransformation ab, um Klassenstrukturen vor dem Laden zu verändern. Sie beinhaltet zudem Performance-Optimierungstechniken, um Proxy-Overhead durch Methodenfilterung und leichtgewichtige Callbacks zu reduzieren.
Modifies the structure and instructions of compiled bytecode to change behavior before classes load.
Dieses Projekt ist ein Android-Gradle-Build-Plugin, das darauf ausgelegt ist, die Erstellung mehrerer kanalspezifischer Anwendungspakete aus einem einzigen Build-Prozess zu automatisieren. Es fungiert als APK-Varianten-Generator, der eindeutige Distributionskennungen in Anwendungspakete injiziert, um Installationsquellen über verschiedene App-Stores hinweg zu verfolgen. Das Tool verwaltet den gesamten Distributions-Lebenszyklus, von der Definition der Zielkanäle über externe Konfiguration bis hin zur Generierung der entsprechenden Paketvarianten. Es verwendet template-basierte Artefakt-Benennung mit dynamischen Platzhaltern, um Ausgabedateien zu organisieren, und enthält ein System zum Hochladen signierter Binärdateien und Metadaten auf entfernte Maven-Repositories via Release- und Snapshot-Endpunkte. Das Plugin handhabt Post-Build-Pakettransformationen, um Distributionsmarker einzubetten, ohne eine vollständige Neukompilierung zu erfordern. Es bietet zudem Funktionen zur Laufzeit-Kanalidentifizierung, um umgebungsspezifisches Verhalten auszulösen, sowie Validierungs-Utilities, um zu verifizieren, dass die korrekten Kanal-Tags während des Builds eingebettet wurden.
Modifies compiled application files after the build to embed metadata without requiring a full recompilation.