`
lvjun106
  • 浏览: 429830 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖
社区版块
存档分类
最新评论

proguard 参数 简介

 
阅读更多

proguard.jar是proguard的主程序,proguardgui.jar为图形界面,用这个可以很方便的生成proguard的配置文件,Retrace为反追踪。

Proguard的具体功能和效果就不多 说,网上有很多介绍,主要说下图形界面的各项操作,通过图形界面生成Proguard混淆前的配置文件。

java -jar proguardgui.jar [-nosplash][configuration_file]

-nosplash参数:运行ProGuard时不显示开头动画。

configuration_file: ProGuard运行时加载的配置文件(如果你已经有一个通用的Proguard的配置文件,在这里调用,再针对项目做些修改)。

Input/Output标签:

这里选择需要混淆的代码目录和输出混淆后代码的目录以及项目所有需要的lib包。需混淆的代码可以已jar、war、ear、zip等格式打包,或者直接指定代码目录(此时注意要指定到代码的最上成package所在目录)。

“Add Input”添加需要混淆的代码。

“Add Output”指定输出路径和格式

“Edit”编辑设定

“Filter”过滤不需要的文件和包

“Remove”删除不需要的文件和包

“Move Up”“Move Down”将设定移动显示位置

“Move to libraries”移动到项目所需要的lib中

“Move to program”移动到项目中

下部的“Add”为添加项目所需要的lib包,如果是web项目把j2ee包也添加到lib中。

Shrinking、Optimization标签:

Proguard可以压缩和优化代码,将一些无用 类、字段和方法删除和优化代码。这里就不多说,

主要解释下Obfuscation标签。

“obfuscate”选上混淆机制才可用。

“Print mapping”输出映射文件,混淆前后的类名、方法名,属性名的对照。

“Apply mapping”应用映射文件,可以指定混淆后的类名、方法名,属性名。

“Obfuscation dictionary”混淆字典,指定混淆使用的字符。

“Overlord aggressively”优先重载

“Use unique class member names”使用唯一的类成员名称

“Default package”默认包名

“Use mixed-case class names”使用混合的类名,这样不同的类混淆后将使用同一类名。

“Keep attributes”指定需要保留属性的资源文件

“Rename SourceFile attribute”重命名资源文件属性

“Keep names”保留的名称

“Native method names”本地方法名称

“.class method names”指定需要保存方法名称的类

“Keep additional class names and class member names”保留(不需要混淆)的类名和成员名

点击“Add”或“Edit”编辑需要保留的类

Comments文本域可以对当前条目加上可选的注释。这个注释将标识列表中的这个条目并作为注释出现在配置文件中

“Keep classes and class members”保留类名和成员名

“Keep class members only”只保留成员名

“Keep classes and class members, if members are present”

“Access”访问修饰符,指定需要保留类的修饰符

“Class”指定类名,可以用“*”通配符进行指定比如“*Number*”

“Extends/implements class”继承和实现的类,此处需要指定类的完整路径,包括包名。

“Class members”要保留的成员

“Add field”添加需要保留的属性,通过指定修饰符,类型和名称来配置。

“Add method”添 加需要保留的属方法,通过指定修饰符,返回类型和名称来配置

Information(参数信息)标签:

“Consistency and correctness”连贯性和正确性

“Print seeds”打印日志

“verbose”详细信息

“Warn about missing libraries”缺少类库时发出警告

“Ignore warnings about missing libraries”忽略缺少类库的警告,有时缺少某些类库也可以混淆,Proguard提倡先消除所有的警告,然后混淆。

“Skip non-public library classes”跳过所有非公有类,加快加载lib速度。

“Skip non-public library class members”跳过所有非共有方法,加快解析lib速度

“Why are u keeping”

Process标签:

“View configuration”查看配置

“Save configuration”保存配置

Retrace(反追踪)标签

 

简单说下keep参数,这个是设定要保留不参与混淆的类和成员。

keepclass_specification保留指定的类和成员名称和内容

keepclassmembersclass_specification只保留指定的类成员名称和内容

keepclasseswithmembersclass_specification

keepnamesclass_specification保留类和成员名称,混淆内容

keepclassmembernamesclass_specification只保留成员名称,混淆内容

keepclasseswithmembernames class_specification

 

在使用过程中,我比较 喜欢建立几个抽象类,Keep,KeepClassMembers

KeepClassesWithMembersKeepNamesKeepClassMemberNames

KeepClassesWithMemberNames,把需要混淆的核心代码单独打包,需要保留特定属性的类分别继承各个方法,这样设定混淆配置时就比较容易。

分享到:
评论

相关推荐

    Java代码混淆工具 Proguard4.10(官方免费下载)

    4、proguard常见参数标签的用法在《proguard标签的用法.pdf》 5、混淆只是 proguard 功能之一,其它还有压缩、优化等 6、proguard混淆首先得根据自己工程具体情况 来决定,哪些类需要混淆,哪些 类不能混淆,对包名...

    Proguard下载|Proguard 5.3.1 官方最新版

    ProGuard是一款免费的Java类文件的压缩、优化、混肴器。它删除没有用的类,字段,方法与属性。使字节码最大程度地优化,使用简短且无意义的名字来重命名类、字段和方法,截至2016-11-28号,5.3.1是最新版本 新的...

    proguard界面混淆版

    proguard界面混淆版4.2,能够混淆JAVA程序,非常优秀的东西

    使用Proguard混淆Java源代码

    java代码很容易被反编译,可通过混淆技术来保护源码,此处我们应用开源项目proguard来进行混淆。操作使用详见:http://blog.csdn.net/odian1/article/details/8282799

    java混淆器ProGuard4.7

     删除未使用的方法参数  像push/pop简化一样的各种各样的peephole优化  在可能的情况下为类添加static和final修饰符  在可能的情况下为方法添加private, static和final修饰符  在可能的情况下使get/set方法成为...

    proguard入门

    对如何使用proguard以及配置文件参数都进行了详细的说明

    通过proguard5.2.1代码混淆工具和简单说明

    本实例使用的是把web项目中的源码(src)所有文件打包成jar文件,使用proguard混淆后再把jar文件以及jar解压后的混淆class类文件替换原war项目的相应位置即可。 混淆过程中需要使用keep参数来保持原有一些属性、注解...

    ant修改参数重新编译的 Proguard 4.7

    用于解决android混淆冲突,替换方法自行搜索

    proguard5.3.1

    proguard 5.3.1 避免与库类混淆的名称冲突。 带有内部类的泛型签名的固定处理。 固定处理的通用签名与数组类型作为界限。 固定处理的宽分支指令。 固定参数属性的不确定参数的收缩。 固定的代码优化与遥不可...

    使用ant批量打包并且实现proguard-project.txt混淆代码

    使用ant批量打包并且实现proguard-project.txt混淆代码需要在项目里面配置一些参数,这个zip文件里有比较好的参考,虽然里面可能有些混淆配置有出入,但可以拿来借鉴,不过实际问题多看warn提示然后对应解决

    AHibernate1.1

    参数替换为了传入的变量,sql能直接运行. 4.实现功能:实现了主键自增和不自增控制方法的重载.默认使用主键自增, //insert(entity)方法Id会自增,相当于调用insert(entity,true); //使用insert(entity,false)这样方式...

    基于windwos服务的看守进程

    在VS2003平台上编写,分为ProGuard、SrvManage两个程序,前者是一个windows服务,后者用来安装并启动服务以及配置进程守护的相关参数,如看守对象等

    Bugly Android SDK 使用

    参数配置 在AndroidManifest.xml中添加权限: 注:如果您的App需要上传到google play store,您需要将READ_PHONE_STATE权限屏蔽掉或者移除,否则可能会被下架。 请避免混淆Bugly,在Proguard混淆文件中增加以下...

    tengge手机端j2me编程教程完整版

    5.手机端j2me预审核、混淆、代码优化软件proguard.jar及插件。 6.手机端j2me综合代码编写、编译、预审核环境j2me_SDK_MOBILE_PRO.jar。 7.反编译的j2me类库,可以查看每个类的属性、方法参数。 目录 ┌第一章、...

Global site tag (gtag.js) - Google Analytics