`

proguard使用

阅读更多
proguard的常见配置参数
-include {filename}    从给定的文件中读取配置参数

-basedirectory {directoryname}    指定基础目录为以后相对的档案名称

-injars {class_path}    指定要处理的应用程序jar,war,ear和目录

-outjars {class_path}    指定处理完后要输出的jar,war,ear和目录的名称

-libraryjars {classpath}    指定所引用的库文件(指定为库文件的不会被处理)

-dontskipnonpubliclibraryclasses    指定不去忽略非公共的库类。

-dontskipnonpubliclibraryclassmembers    指定不去忽略包可见的库类的成员。

保留选项
-keep {Modifier} {class_specification}    保护指定的类文件和类的成员

-keepclassmembers {modifier} {class_specification}    保护指定类的成员,如果此类受到保护他们会保护的更好

-keepclasseswithmembers {class_specification}    保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。

-keepnames {class_specification}    保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除)

-keepclassmembernames {class_specification}    保护指定的类的成员的名称(如果他们不会压缩步骤中删除)

-keepclasseswithmembernames {class_specification}    保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后)

-printseeds {filename}    列出类和类的成员-keep选项的清单,标准输出到给定的文件

压缩选项
-dontshrink    不压缩输入的类文件

-printusage {filename}

-whyareyoukeeping {class_specification}    

优化选项
-dontoptimize    不优化输入的类文件

-assumenosideeffects {class_specification}    优化时假设指定的方法,没有任何副作用

-allowaccessmodification    优化时允许访问并修改有修饰符的类和类的成员

混淆选项
-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}    设置源文件中给定的字符串常量


用于android的proguard配置
可以查看android-sdk-windows\tools\proguard\proguard-android.txt


proguard常见错误及解决
1. conversion to dalvik format failed with error 1
网上主要有这几种解决方案:
1. 编辑eclipse项目下的.classpath文件,改为
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>即可
2. 下载最新版本的proguard,替换android sdk下的tools\proguard(我用的就是这个方法解决的,我的android sdk是r20,其中带的proguard是4.7的,我把它更新到4.8后就好了)
3. 将tools\proguard\bin\proguard.bat文件中的call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %×替换为:
call %java_exe% -jar "%PROGUARD_HOME%"\lib\proguard.jar %1 %2 %3 %4 %5 %6 %7 %8 %9(我也试了这种方式,不过当时导致了另外一个错误"Expecting class path separator ';' before ... in argument number 7")


proguard4.7的官方文档(已将大部分内容翻译为中文)
分享到:
评论

相关推荐

    proguard 、使用说明

    **ProGuard 使用详解** ProGuard 是一款强大的 Java 字节码混淆工具,由 Eric Lafortune 开发,主要用于优化、压缩、混淆和预校验 Java 类文件。在 Android 开发中,ProGuard 被广泛应用于保护应用源代码,避免逆向...

    proguard6.2.2版本,里面附上了中文的使用教程

    资源是proguard6.2.2版本,里面附上了中文的使用教程,一看就懂,非常简单,不懂的可以私信问我。

    proguard使用指南.doc

    本文将详细介绍如何使用ProGuard及其混淆原理。 ### ProGuard的下载与安装 1. **下载**:ProGuard可以从官方网站[http://proguard.sourceforge.net/](http://proguard.sourceforge.net/)获取最新版本。 2. **安装*...

    springboot工程(单个maven工程)利用proguard实现代码混淆 java demo案例

    要在Spring Boot的Maven工程中使用ProGuard,我们需要添加`maven-proguard-plugin`插件到`pom.xml`文件中。配置大致如下: ```xml &lt;groupId&gt;com.github.wvengen&lt;/groupId&gt; &lt;artifactId&gt;proguard-maven-...

    proguard4.4 完整版

    4. **文档生成**:在描述中提到 ProGuard 4.4 版本带有文档,这意味着可能包含了详细的用户指南和API参考,这对于开发者理解和使用 ProGuard 非常有帮助。文档通常会解释如何配置 ProGuard 脚本,如何处理特定的警告...

    java代码混淆工具proguard及教程讲解

    java代码混淆工具 简单使用docx 字典文件 生成的配置示例

    Proguard最新版6.0.3

    ProGuard 是一款广泛使用的 Java 字节码混淆、优化、预校验和分析工具。在Java和Android开发中,它主要用于提高代码的安全性和优化性能。ProGuard 6.0.3是该工具的一个较新版本,提供了增强的功能和改进。 **1. ...

    proguard6.1.1.zip

    ProGuard使用了一套算法,使得混淆后的代码仍能保持可运行性,但难以理解。 2. **优化**:优化过程旨在减小程序大小和提高运行效率。它会删除未使用的类、字段和方法,优化剩余的字节码,以及合并和内联某些代码,...

    Java Jar包混淆器proguard.v3.8

    5. **配置文件**:ProGuard使用配置文件来指定混淆、优化、压缩和预校验的具体规则。开发者可以根据需求自定义规则,例如保留特定类或方法的原始名称,以便于调试。 6. **proguard.jar**:这是ProGuard的主要库文件...

    proguard使用指南

    ProGuard的主要功能是压缩、优化和混淆,下面我就先介绍一下这些概念,然后再介绍ProGuard的基本使用方法。

    11-Proguard简要语法手册1

    ProGuard 是 Android 开发中常用的一个工具,用于对 ...理解和正确使用 ProGuard 规则对于开发高质量的 Android 应用至关重要。在实际项目中,开发者应根据具体需求调整 ProGuard 配置,以确保代码的稳定性和可维护性。

    Java防编译技术---proguard混淆器

    在`proguard4.5.1.zip`压缩包中,`proguard使用指南.doc`文档会详细解释如何安装、配置和使用ProGuard。这个文档通常会包含实例教程,介绍如何设置基本的混淆规则,以及如何处理可能出现的问题,如依赖库的处理、...

    Eclipse+ProGuard配置

    通过结合使用 Eclipse 和 ProGuard,可以对 Java 应用程序进行混淆、压缩和优化,从而提高应用程序的安全性和运行效率。 配置 Eclipse 和 ProGuard 的步骤如下: 1. 首先,需要关闭或暂停杀毒软件,以免与 ...

    ProGuard4.8使用proguard来保护我们的代码

    使用ProGuard时,我们需要编写一个名为 `proguard.cfg` 或 `proguard-project.txt` 的配置文件,其中包含一系列的规则来指定哪些代码需要混淆、优化和压缩。配置文件中的常见选项包括: - `-keep`:保留指定的类或...

    proguard4.2

    ProGuard 使用随机的字母和数字来重命名类、方法和字段,使得破解者更难理解和重构代码。 - ProGuard 提供了多种混淆策略,如 `class`, `method`, `field`,可以根据需求选择合适的混淆级别。 2. **优化...

    proguard混淆工具

    - **命名规则**:ProGuard使用`-classobfuscationdictionary`和`-packageobfuscationdictionary`指定混淆名称的字典,确保混淆后的名称符合特定模式。 - **保留关键类和方法**:开发者可以通过`-keep`选项来指定需要...

    Proguard5.2.1 资源 使用教程

    **ProGuard5.2.1资源使用教程** 在Java开发中,为了保护代码不被轻易反编译和理解,开发者通常会使用代码混淆工具。ProGuard是一款强大的Java字节码混淆、优化、压缩和预检查工具,它能够帮助开发者将应用代码转化...

    proguard.zip

    ProGuard 使用了一套规则系统,允许开发者自定义混淆策略,以确保混淆过程不会破坏代码功能。 2. **优化**:ProGuard 不仅混淆代码,还会进行优化,删除未使用的类、字段和方法,以及优化剩下的代码,使其更紧凑,...

Global site tag (gtag.js) - Google Analytics