ProGuard 使用方法(图形界面)

去官方网站下载,解压后,得到的lib包里有三个jar包文件,其中一个proguardgui.jar,是图形界面程序。 
  运行方法:在同样的目录中,建一个批处理文件(bat文件),内容就一句:java -jar proguardgui.jar,保存文件,双击鼠标运行这个文件,图形界面就出现了。 
  在图形界面中,只需简单的设置,就可以完成混淆的任务。 

  1.在"Input/Output"页签中,设置好要混淆的jar包,设置好混淆结果包的名字,指定好编译这个包需要的jar包,注意,jar包不要同一包含接口jar包及接口的实现jar包,Proguard会个定义重复的错。 
  2.在"Shriking"页签中,选择一个Keep的类型,如果是WEB工程,就选Library,应用程序就选Application,等。 
  3."Obfuscation"、"Optimization"页签中都选默认就可以了。有特殊要求,可以仔细研究一下文档。如果混淆结果使用程序功能不太正常,可以把Optimize选项关闭。反正我们最关心的是混淆,优化不优化无所谓。 
  4."Information"页签中,有个Ignore warnings about possibly erronous input,如果混淆的时候,因为警告无法继续,可以把这个选项勾上。其它的选默认就可以了。 
  5."Process"页签中,点"Process!"按钮进行混淆。也可以点"Save configuration..."按钮,保存配置文件。 

  混淆结果还不错,可以使用jd等反编译工具检查一下,效果确实不错。


原文地址: http://wallimn.iteye.com/blog/558978


 参数
-include {filename}    从给定的文件中读取配置参数 
 
-basedirectory {directoryname}    指定基础目录为以后相对的档案名称 
 
-injars {class_path}    指定要处理的应用程序jar,war,ear和目录 
 
-outjars {class_path}    指定处理完后要输出的jar,war,ear和目录的名称 
 
-libraryjars {classpath}    指定要处理的应用程序jar,war,ear和目录所需要的程序库文件 
 
-dontskipnonpubliclibraryclasses    指定不去忽略非公共的库类。 
 
-dontskipnonpubliclibraryclassmembers    指定不去忽略包可见的库类的成员。 


混淆 
-dontobfuscate    不混淆输入的类文件 
 
-printmapping {filename} 
 
-applymapping {filename}    重用映射增加混淆 
 
-obfuscationdictionary {filename}    使用给定文件中的关键字作为要混淆方法的名称 
 
-overloadaggressively    混淆时应用侵入式重载 
 
-useuniqueclassmembernames    确定统一的混淆类的成员名称来增加混淆 
 
-flattenpackagehierarchy {package_name}    重新包装所有重命名的包并放在给定的单一包中 
 
-repackageclass {package_name}    重新包装所有重命名的类文件中放在给定的单一包中 
 
-dontusemixedcaseclassnames    混淆时不会产生形形色色的类名 
 
-keepattributes {attribute_name,...}    保护给定的可选属性,例如LineNumberTable, LocalVariableTable, SourceFile, Deprecated, Synthetic, Signature, and InnerClasses. 
 
-renamesourcefileattribute {string}    设置源文件中给定的字符串常量


保留选项 
-keep {Modifier} {class_specification}    保护指定的类文件和类的成员 
 
-keepclassmembers {modifier} {class_specification}    保护指定类的成员,如果此类受到保护他们会保护的更好 
 
-keepclasseswithmembers {class_specification}    保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。 
 
-keepnames {class_specification}    保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除) 
 
-keepclassmembernames {class_specification}    保护指定的类的成员的名称(如果他们不会压缩步骤中删除) 
 
-keepclasseswithmembernames {class_specification}    保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后) 
 
-printseeds {filename}    列出类和类的成员-keep选项的清单,标准输出到给定的文件


其他资料: http://www.blogjava.net/DreamAngel/archive/2009/11/23/303380.html

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值