<!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>
<script type="text/javascript" language="JavaScript">
<!--
if (window.self==window.top)
  window.top.location.replace("index.html#"+window.location.pathname+window.location.hash);
else {
  if (window.top.location.hash!="")
    window.top.location.hash="";
}
//-->
</script>
</head>
<body>

<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.
Finally, it preverifies the processed code for Java 6 or higher, or for Java
Micro Edition.
</p>
Some uses of <b>ProGuard</b> are:
<ul>

<li>Creating more compact code, for smaller code archives, faster transfer
    across networks, faster loading, and smaller memory footprints.</li>

<li>Making programs and libraries harder to reverse-engineer.</li>

<li>Listing dead code, so it can be removed from the source code.</li>

<li>Retargeting and preverifying existing class files for Java 6 or higher, to
    take full advantage of their faster class loading.</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.
<p>
<p class="intro">
<a href="http://www.saikoa.com/dexguard" target="_top">
<img align="left" src="android_shades.png" width="64" height="64" /></a>
<b>ProGuard</b> now has a sibling optimizer and obfuscator for Android:
<a href="http://www.saikoa.com/dexguard" target="_top"><b>DexGuard</b></a>. It
focuses on code protection, with additional features like string encryption
and class encryption. It directly targets Dalvik bytecode and streamlines the
Android build process.
</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 />
<noscript><div><a target="_top" href="index.html" class="button">Show menu</a></div></noscript>
<address>
Copyright &copy; 2002-2013
<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
</address>
</body>
</html>
