| <!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |
| <html> | |
| <head> | |
| <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> | |
| <meta http-equiv="content-style-type" content="text/css"> | |
| <meta name="author" content="Eric Lafortune"> | |
| <meta name="description" content="ProGuard: java shrinker, optimizer, obfuscator, and preverifier"> | |
| <meta name="keywords" content="java obfuscator, optimizer, shrinker, preverfier"> | |
| <link rel="stylesheet" type="text/css" href="style.css"> | |
| <title>ProGuard Main</title> | |
| </head> | |
| <body> | |
| <script type="text/javascript" language="JavaScript"> | |
| <!-- | |
| if (window.self==window.top) | |
| document.write('<a class="largebutton" target="_top" href="index.html#main.html">ProGuard index</a> <a class="largebutton" target="_top" href="http://www.guardsquare.com/dexguard">DexGuard</a> <a class="largebutton" target="_top" href="http://www.guardsquare.com/">GuardSquare</a> <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>') | |
| //--> | |
| </script> | |
| <noscript> | |
| <a class="largebutton" target="_top" href="index.html#main.html">ProGuard index</a> | |
| <a class="largebutton" target="_top" href="http://www.guardsquare.com/dexguard">DexGuard</a> | |
| <a class="largebutton" target="_top" href="http://www.guardsquare.com/">GuardSquare</a> | |
| <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a> | |
| </noscript> | |
| <h2>Main</h2> | |
| <p class="intro"> | |
| <b>ProGuard</b> is a free Java class file shrinker, optimizer, obfuscator, and | |
| preverifier. It detects and removes unused classes, fields, methods, and | |
| attributes. It optimizes bytecode and removes unused instructions. It renames | |
| the remaining classes, fields, and methods using short meaningless names. | |
| The resulting applications and libraries are smaller, faster, and a bit better | |
| hardened against reverse engineering. | |
| </p> | |
| Typical applications: | |
| <ul> | |
| <li>Reducing the size of Android apps for faster downloads from Google Play, | |
| shorter startup times, and smaller memory footprints.</li> | |
| <li>Optimizing code for better performance on mobile devices.</li> | |
| <li>Protecting applications and libraries against reverse-engineering and | |
| tampering.</li> | |
| </ul> | |
| <p> | |
| <b>ProGuard</b>'s main advantage compared to other Java obfuscators is | |
| probably its compact template-based configuration. A few intuitive command | |
| line options or a simple configuration file are usually sufficient. | |
| The user manual explains all available options and shows examples of this | |
| powerful configuration style. | |
| <p> | |
| <b>ProGuard</b> is fast. It only takes seconds to process programs and | |
| libraries of several megabytes. The results section presents actual figures | |
| for a number of applications. | |
| <p> | |
| <b>ProGuard</b> is a command-line tool with an optional graphical user | |
| interface. It also comes with plugins for Ant, for Gradle, and for the JME | |
| Wireless Toolkit. It is already part of Google's Android SDK, where it can be | |
| enabled with a simple flag. | |
| <p> | |
| <p class="intro"> | |
| <a href="http://www.guardsquare.com/dexguard" target="_top"> | |
| <img align="left" src="android_shades.png" width="64" height="64" /></a> | |
| <b>ProGuard</b> provides basic protection against reverse engineering and | |
| tampering, with basic name obfuscation. | |
| <a href="http://www.guardsquare.com/dexguard" | |
| target="_top"><b>DexGuard</b></a>, its specialized commercial extension for | |
| Android, focuses further on the protection of apps, additionally optimizing, | |
| obfuscating and encrypting strings, classes, resources, resource files, asset | |
| files, and native libraries. Professional developers should definitely | |
| consider it for security-sensitive apps. | |
| </p> | |
| The following sections provide more detailed information: | |
| <ul> | |
| <li><a href="main.html">Main</a>: this overview page.</li> | |
| <li><a href="results.html">Results</a>: some results obtained with | |
| <b>ProGuard</b>, including timings and memory usage.</li> | |
| <li><a href="FAQ.html">FAQ</a>: answers to some Frequently Asked Questions.</li> | |
| <li><a href="manual/index.html">Manual</a>: the complete <b>ProGuard</b> user | |
| manual, with examples and troubleshooting tips.</li> | |
| <li><a href="quality.html">Quality</a>: a discussion of the (excellent) quality | |
| of <b>ProGuard</b>'s code.</li> | |
| <li><a href="screenshots.html">Screenshots</a>: some impressions of what <b>ProGuard</b> looks like.</li> | |
| <li><a href="testimonials.html">Testimonials</a>: what users think of | |
| <b>ProGuard</b>.</li> | |
| <li><a href="license.html">License</a>: <b>ProGuard</b> is free, under a GPL | |
| license.</li> | |
| <li><a href="downloads.html">Downloads</a>: download the <b>ProGuard</b> | |
| package yourself.</li> | |
| <li><a href="feedback.html">Feedback</a>: tell me about your experiences, or | |
| learn from others on our forums.</li> | |
| <li><a href="acknowledgements.html">Acknowledgements</a>: people who have been | |
| helpful.</li> | |
| <li><a href="alternatives.html">Alternatives</a>: other Java obfuscators, | |
| optimizers, and shrinkers.</li> | |
| </ul> | |
| <hr /> | |
| <address> | |
| Copyright © 2002-2017 | |
| <a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a> @ <a target="top" href="http://www.guardsquare.com/">GuardSquare</a>. | |
| </address> | |
| </body> | |
| </html> |