| # | |
| # This ProGuard configuration file specifies how annotations can be used | |
| # to configure the processing of other code. | |
| # Usage: | |
| # java -jar proguard.jar @annotations.pro -libraryjars annotations.jar ... | |
| # | |
| # Note that the other input/output options still have to be specified. | |
| # If you specify them in a separate file, you can simply include this file: | |
| # -include annotations.pro | |
| # | |
| # You can add any other options that are required. For instance, if you are | |
| # processing a library, you can still include the options from library.pro. | |
| # The annotations are defined in the accompanying jar. For now, we'll start | |
| # with these. You can always define your own annotations, if necessary. | |
| -libraryjars annotations.jar | |
| # The following annotations can be specified with classes and with class | |
| # members. | |
| # @Keep specifies not to shrink, optimize, or obfuscate the annotated class | |
| # or class member as an entry point. | |
| -keep @proguard.annotation.Keep class * | |
| -keepclassmembers class * { | |
| @proguard.annotation.Keep *; | |
| } | |
| # @KeepName specifies not to optimize or obfuscate the annotated class or | |
| # class member as an entry point. | |
| -keepnames @proguard.annotation.KeepName class * | |
| -keepclassmembernames class * { | |
| @proguard.annotation.KeepName *; | |
| } | |
| # The following annotations can only be specified with classes. | |
| # @KeepImplementations and @KeepPublicImplementations specify to keep all, | |
| # resp. all public, implementations or extensions of the annotated class as | |
| # entry points. Note the extension of the java-like syntax, adding annotations | |
| # before the (wild-carded) interface name. | |
| -keep class * implements @proguard.annotation.KeepImplementations * | |
| -keep public class * implements @proguard.annotation.KeepPublicImplementations * | |
| # @KeepApplication specifies to keep the annotated class as an application, | |
| # together with its main method. | |
| -keepclasseswithmembers @proguard.annotation.KeepApplication public class * { | |
| public static void main(java.lang.String[]); | |
| } | |
| # @KeepClassMembers, @KeepPublicClassMembers, and | |
| # @KeepPublicProtectedClassMembers specify to keep all, all public, resp. | |
| # all public or protected, class members of the annotated class from being | |
| # shrunk, optimized, or obfuscated as entry points. | |
| -keepclassmembers @proguard.annotation.KeepClassMembers class * { | |
| *; | |
| } | |
| -keepclassmembers @proguard.annotation.KeepPublicClassMembers class * { | |
| public *; | |
| } | |
| -keepclassmembers @proguard.annotation.KeepPublicProtectedClassMembers class * { | |
| public protected *; | |
| } | |
| # @KeepClassMemberNames, @KeepPublicClassMemberNames, and | |
| # @KeepPublicProtectedClassMemberNames specify to keep all, all public, resp. | |
| # all public or protected, class members of the annotated class from being | |
| # optimized or obfuscated as entry points. | |
| -keepclassmembernames @proguard.annotation.KeepClassMemberNames class * { | |
| *; | |
| } | |
| -keepclassmembernames @proguard.annotation.KeepPublicClassMemberNames class * { | |
| public *; | |
| } | |
| -keepclassmembernames @proguard.annotation.KeepPublicProtectedClassMemberNames class * { | |
| public protected *; | |
| } | |
| # @KeepGettersSetters and @KeepPublicGettersSetters specify to keep all, resp. | |
| # all public, getters and setters of the annotated class from being shrunk, | |
| # optimized, or obfuscated as entry points. | |
| -keepclassmembers @proguard.annotation.KeepGettersSetters class * { | |
| void set*(***); | |
| void set*(int, ***); | |
| boolean is*(); | |
| boolean is*(int); | |
| *** get*(); | |
| *** get*(int); | |
| } | |
| -keepclassmembers @proguard.annotation.KeepPublicGettersSetters class * { | |
| public void set*(***); | |
| public void set*(int, ***); | |
| public boolean is*(); | |
| public boolean is*(int); | |
| public *** get*(); | |
| public *** get*(int); | |
| } |