Few notes about proguard
I thought I would also add my $0.02 about proguard. One big gotcha with proguard obfuscation is it can screw up reflection. This is because proguard can change class and method names, so if in your code you're looking for class "Foo" with method "Bar", by the time proguard is done "Foo" may be named something like AAB and "Bar" AF". So trying to find them with hard-coded strings will fail.
Luckily you can tell progard to not obfuscate certain classes and methods.
Check this out for more information, or post questions here .. ;-)