Why default proguard configurations in android sdk use keep *Annotation* <p>There is one line in the default proguard configuration of android sdk:</p> <pre><code>-keepattributes *Annotation* </code></pre> <p>According to Proguard Manual, this line equals to:</p> <pre><code>-keepattributes RuntimeVisibleAnnotations,RuntimeInvisibleAnnotations,RuntimeVisibleParameterAnnotations,RuntimeInvisibleParameterAnnotations,RuntimeVisibleTypeAnnotations,RuntimeInvisibleTypeAnnotations,AnnotationDefault </code></pre> <p>In my opinion, maybe the configuration below is enough:</p> <pre><code>-keepattributes RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,RuntimeVisibleTypeAnnotations,AnnotationDefault </code></pre> <p>Have I missing something? Why the recommend configuration keep all this things?</p>