ProGuard is a shrinker, optimizer, obfuscator, and preverifier for Java bytecode. It detects and removes unused classes, fields, methods, and attributes. It optimizes methods and removes dead code. It renames the remaining classes, fields, and methods using short, meaningless names. Finally, it preverifies the processed code for Java 6 or higher, or for Java Micro Edition. The resulting code is more compact, more efficient, and more difficult to reverse-engineer. Advantages of ProGuard compared to other Java shrinkers and obfuscators are compact template-based configuration, memory efficiency, and speed. It is mostly popular for embedded development and for commercial development, and is integrated in Oracle's Wireless Toolkit, in Intel's TXE SDK, and in Google's Android SDK.
|Tags||Obfuscator Java Android|
|Operating Systems||OS Independent|
Release Notes: The optimization step can now simplify enum types, replacing the synthetic classes that the compiler generates by plain integer constants. This release also fixes a number of bugs, notably in class merging and method inlining.
Release Notes: This release mainly updates the Gradle task, for easier integration in the Android SDK. ProGuard's notes and warnings now point to the relevant paragraphs on the Troubleshooting page in the documentation. The Troubleshooting page has additional specific information on Android issues.
Release Notes: The most prominent new feature of this release is a custom ProGuard task for the Gradle build system. It provides clean integration, with full support for ProGuard's options in Gradle's configuration language. The optimization step contains internal improvements for optimizing static initializers and optimizing away unnecessary string operations. This release also contains various bugfixes collected since the previous release. The documentation and examples have been extended. This version is compatible with previous versions, so upgrading is as simple as switching to the new jars.
Release Notes: This release mostly fixes a series of minor problems in configuration parsing, optimization, and obfuscation. It also adds a few string optimizations to the optimization step, and small enhancements for configuration with the Ant task. This version is entirely compatible with previous versions, so upgrading is simply a matter of switching to the new jars.
Release Notes: This release adds support for processing Java 7 code. It shrinks class files slightly better. It fixes a number of issues in the optimization and obfuscation steps and in the GUI. For Android developers, it works around a problem with spaces in path names in the Android SDK.