Java代码保密技术之(一)Proguard配置选项说明

ProGuard是一个开源的Java类文件(.class)处理工具,它同时提供了命令行和图形界面。

ProGuard能够:

  1. 压缩(Shrunk ):检测未使用的类、字段、方法、属性,并移除
  2. 优化(Optimization):分析并优化方法的字节码,可以进行多步骤的优化
  3. 混淆(Obfuscation ):重命名类、字段、方法,使用更短且无意义的名字
  4. 预校验(Preverification ):为字节码添加预校验信息,预校验信息对Java 6+是需要的

上述功能可以单独使用,也可以在一次调用中按照下面的步骤一次性完成:

参数选项说明:

 选项

说明 

-injars classpath

指定输入的压缩包或者目录

-outjars classpath

指定输出的压缩包或者目录

-libraryjars classpath

指定输入所依赖的库。

需要注意的是,程序使用的运行时库需要明确指定(例如rt.jar)

-skipnonpubliclibraryclasses

是否跳过依赖库中非public类,默认不跳过,跳过可以提升性能,因为库的非公共类一般与程序无关

-dontskipnonpubliclibraryclasses

不跳过依赖库中的非public类

-dontskipnonpubliclibraryclassmembers

不跳过依赖库中的非public类的成员,包括字段、方法

-keepdirectories filter

指定要保留的目录。

默认情况下所有目录都被移除

-target version

指定输出class的版本,默认保持和输入版本一致。

保留选项说明

选项

说明

-keepclassmembers

-keepclassmembers [,modifier,...] class_spec  指定要保留的类成员,如果它们所属的类被保留的话

-keepclasseswithmembers

-keepclasseswithmembers [,modifier,...] class_spec 指定需要保留的类及其成员,包括方法和变量

-keepnames class_spec

指定需要保留的类和类成员,如果在压缩阶段这些类没有被删除的话。该选项仅用于混淆阶段

-keepclassmembernames

指定名称要保留的类成员,如果在压缩阶段这些类没有被删除的话。该选项仅用于混淆阶段

-keepclasseswithmembernames

指定要保留的类和类成员,如果所有指定的类成员在经历了压缩阶段还存在

-printseeds [filename]

打印所有匹配-keep的类和类成员,默认打印到标准输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值