指定代码的压缩级别
1 | -optimizationpasses 5 |
包明不混合大小写
1 | -dontusemixedcaseclassnames |
不去忽略非公共的库类
1 | -dontskipnonpubliclibraryclasses |
优化不优化输入的类文件
1 | -dontoptimize |
预校验
1 | -dontpreverify |
混淆时是否记录日志
1 | -verbose |
混淆时所采用的算法
1 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* |
保护注解
1 | -keepattributes *Annotation* |
保持哪些类不被混淆
1 | -keep public class * extends android.app.Fragment |
如果有引用v4包可以添加下面这行
1 | -keep public class * extends android.support.v4.app.Fragment |
apk 包内所有 class 的内部结构
1 | -dump class_files.txt |
未混淆的类和成员
1 | -printseeds seeds.txt |
列出从 apk 中删除的代码
1 | -printusage unused.txt |
混淆前后的映射
1 | -printmapping mapping.txt |
保持 native 方法不被混淆
1 | -keepclasseswithmembernames class * { |
保持自定义控件类不被混淆
1 | -keepclasseswithmembers class * { |
保持自定义控件类不被混淆
1 | -keepclasseswithmembers class * { |
保持自定义控件类不被混淆
1 | -keepclassmembers class * extends android.app.Activity { |
保持 Parcelable 不被混淆
1 | -keep class * implements android.os.Parcelable { |
保持 Serializable 不被混淆
1 | -keepnames class * implements java.io.Serializable |
保持 Serializable 不被混淆并且enum 类也不被混淆
1 | -keepclassmembers class * implements java.io.Serializable { |
不混淆资源类
1 | -keepclassmembers class **.R$* { |
support-v4
1 | -dontwarn android.support.v4.** |
support-v7
1 | -dontwarn android.support.v7.** |