ProGuard kann kompilierte Java-Dateien (Bytecode) komprimieren (shrinker), optimieren (optimizer) und das Dekompilieren erschweren (obfuscator).
Wie in der Abbildung zu sehen ist, kann der Bytecode mit Hilfe eines Decompilers z.B. Jad recht einfach dekompilieren werden
Die Anwendung eines Opfuscators wie zum Beispiel ProGuard erschwert das Lesen des Dekompilierten Bytecodes.
Projektstruktur nach der Anwendung von ProGuard.