混淆规则

ProGuard一共包括四个功能1.压缩(Shrink) 2.优化(Optimize) 3.混淆(Obfuscate) 4.预检(Preveirfy)ProGuard是一个开源项目,在SourceForge上进行维护http://ProGuard.sourceforge.net 可以下载查看官方文档和示例一、基本指令防止被移除或者重命名防止被重命名类和类成员-keep-keep...
摘要由CSDN通过智能技术生成

ProGuard一共包括四个功能
1.压缩(Shrink) 2.优化(Optimize) 3.混淆(Obfuscate) 4.预检(Preveirfy)
ProGuard是一个开源项目,在SourceForge上进行维护
http://ProGuard.sourceforge.net  可以下载查看官方文档和示例
一、基本指令
防止被移除或者重命名
防止被重命名
类和类成员
-keep
-keepnames
仅类成员
-keepclassmembers
-keepclassmembernames
如果拥有某成员,保留类和类成员
-keepclasseswithmembers
-keepclasswithmembernames
<init>; 匹配所有构造器
<fields>; 匹配所有域
<methods>; 匹配所有方法
-keep class 包名.**{*;}  两星表示本包和所含子包下的类名都保持一星表示本包保持,包下子类还是会被混淆,大括号中*表示内容也不混

-keep {Modifier} {class_specification} 保护指定的类文件和类的成员
-keepclassmembers {Modifier} {class_specification} 保护指定类的成员,如果此类受到保护他们会保护得更好
-keepclasseswithmembers {class_specification} 保护指定的类和类的成员,但条件是所有指定的类和类的成员是要存在的
-keepnams {class_specification} 保护指定的类的成员和名称(如果他们不会在压缩的过程中被删除)
-keepclassmembernames {class_specification} 保护指定类的成员的名称(如果他们不会在压缩的过程中被删除)
-keepclasseswithmembersnams {class_specification} 保护指定的类和类成员的名称,如果所有指定的类成员出席(在压缩之后)
-printseeds {filename} 列出类和类成员-keep选项的清单,标准输出到给定的文件
例如:
# 指定Keep类名不被混淆,类中的方法和成员仍然会被混淆
-keep class 类名
# 指定Keep类名不被混淆,且Keep的sayHello方法和成员helloStr不被混淆
-keep class 类名{
      public void 方法名();
      private static final java.lang.String 属性名;
}
# 指定Keepclassmembers的sayHello方法不被混淆,注意Keepclassmembers的类名仍然会被混淆
-keepclassmembers class 类名 {
    public void 方法名();
}
# 通过成员来指定哪些类的类名和成员不被混淆,没有被指定的方法还是会被混淆
-keepclasseswithmembers public class 类名 {
    public static void main(java.lang.String[]);
}
# 指定 keepnames 类名以及 sayHello 方法不被混淆,但需要注意的是,若 sayHello 方法未被使用,会在压缩阶段被移除掉
-keepnames public class site.hanschen.proguard.keepnames {
    public void sayHello();
}

#========================基本不动区域=========================
# 指定代码的压缩级别 0 - 7(指定代码进行迭代优化的次数,在Android里面默认是5,这条指令也只有在可以优化时起作用。)
# -op

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值