ProGuard is an open source Java code obfuscator that is supplied with the Android SDK. For those unfamiliar with obfuscators, they remove any information from the code that is not needed for execution, for example, unused code and debugging information. Also, identifiers are renamed from an easy-to-read, descriptive, and maintainable code you've written into an optimized, shorter, and very difficult-to-read one. Before, an object/method call might look something like this:
SecurityManager.encrypt(String text);, but after obfuscation, it could look like:
a.b(String c);. As you can see, it gives no clue about its purpose.
ProGuard also reduces the amount of code by removing unused methods, fields, and attributes, ...