ProGuard detects and removes unused classes, fields, methods, and attributes from Java bytecode. It optimizes the bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. And it preverifies the processed code for Java 6+ and Java Micro Edition.

WWW: https://www.guardsquare.com/proguard
