Java class file shrinker, optimizer, obfuscator, and preverifier
...It renames the remaining classes, fields, and methods using short meaningless names.
ProGuard is useful for making code more compact and more efficient, on the desktop, on tablets, on smartphones, and on embedded devices. It also makes code more difficult to reverse engineer.