blob: 97a817d2afb60a8f965b6513908389484c8c086e [file] [log] [blame]
<!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 &copy; 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>