文章目录 一、Proguard 简介 二、Proguard 相关网址 三、Proguard 混淆配置 一、Proguard 简介 ---- Android 开发中 Proguard 主要作用是对 Java...相关网址 ---- Proguard 官网 : https://www.guardsquare.com/en/products/proguard Proguard 官方指导手册 : https://www.guardsquare.com.../en/products/proguard/manual Proguard 用法 : https://www.guardsquare.com/en/products/proguard/manual/usage...Proguard 混淆相关文档 : https://www.guardsquare.com/en/products/proguard/manual/usage#keepoptions 三、Proguard...\intermediates\proguard-files\proguard-android-optimize.txt-3.6.1 生成混淆配置脚本 proguard-android-optimize.txt
ProGuard技术的功能概括为以下4项: 1.压缩(shrinks) :检查并移除代码中无用的类,字段,方法,属性。 2.优化(optimizes):对字节码进行优化,移除无用的指令。...详细介绍 (1) ProGuard 配置 -include{filename}:从给定的文件中读取配置参数。...预检测 -dontpreverify 执行ProGuard后会生成的文件: 1)dump.txt 描述apk文件里的所以类的内部结构 2)mapping.txt 列出了原始的和混淆后的类...目录下面 Proguard通配符 通配符 描述 匹配类中的所有字段 匹配类中所有的方法 匹配类中所有的构造函数 *...# 针对第三方jar包的解决方案 # 一般而言,这些SDK都是经过ProGuard混淆了的。 # 而我们所要做的,是避免这些SDK的类和方法在我们的App中被混淆。
ProGuard的输出文件及用处 混淆之后,会给我们输出一些文件,在gradle方式下是在/build/proguard/目录下,ant是在/bin/proguard目录,eclipse构建在/proguard...seeds.txt 列出了未被混淆的类和成员 usage.txt 列出了从apk中删除的代码 另外Proguard文件中包含retrace脚本,可以将一个被混淆过的堆栈跟踪信息还原成一个可读的信息,window...下时retrace.bat,linux和mac是retrace.sh,在/tools/proguard/文件夹下。
在压缩阶段,Proguard从这些入口点开始递归确定哪些类或类成员要被使用,其余的都会被丢弃。 在优化阶段,ProGuard进一步优化代码。...在混淆阶段,ProGuard会重新命名不属于入口点的类和类成员。在整个过程中,保持入口点确保它们仍然可以通过其原始名称访问。...检查 Proguard结果 为了避免引入 bug 我们有必要对 结果进行检查。...所以当处理使用处理过的库的应用程序时,混淆器可以再次检测到它(尽管ProGuard本身不需要这个)。 只有在混淆时才适用。...ProGuard支持可能由编译器设置的其他修饰符synthetic,bridge和varargs。
文章目录 一、Proguard 配置简介 二、Proguard 完整注释 一、Proguard 配置简介 ---- 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com.../en/products/proguard/manual/usage 1 ....完整注释 ---- # This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#...# Dex 自己会执行优化 , 不建议在 ProGuard 步骤中进行优化 ....# 如果想要启用优化 , 不能只在 ProGuard 项目配置中将优化标志设为 true ; # 相反还要在 build.gradle 中指向 "proguard-android-optimize.txt
混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程。...如果有Android SDK的同学可以在{ANDROID_SDK_ROOT}/tools/proguard/lib/目录下找到proguard.jar这个jar包。...我们也可以把proguard的参数写到一个配置文件中,比如说proguard.cfg。...那我们的命令可以这样写: java -jar proguard.jar @proguard.cfg 这个文件也就是我们在Android Studio中经常配置的混淆文件了。...它放在{android_sdk_home}/tools/proguard/proguard-android.txt文件中,其它的可以参考的例子在{android_sdk_home}/tools/proguard
本文将详细介绍如何使用ProGuard进行代码混淆,并探讨其工作原理和最佳实践。什么是ProGuard?ProGuard是一个免费的Java类文件压缩器、优化器、混淆器和预验证器。...ProGuard的工作原理ProGuard通过读取输入的jar文件或目录,分析类之间的依赖关系,然后根据配置文件中的规则执行压缩、优化和混淆操作。...编写ProGuard规则ProGuard规则文件通常命名为proguard-rules.pro,位于项目的app目录下。...下面是一个典型的 ProGuard 配置文件示例,以及如何在 Android 项目中启用和使用它。1. 启用 ProGuard首先,在 build.gradle 文件中启用 ProGuard。...ProGuard 配置文件ProGuard 的配置文件通常命名为 proguard-rules.pro,位于项目的 app 目录下。
ProGuard ProGuard只读取jars,wars,zips,ears等文件格式的文件。然后对它们进行shrinks,optimizes,obfuscates,preverifies。...因此,我们需要在ProGuard的配置文件中进行配置。而最简单的配置则是通过-keep选项。...使用(Usages) 如果想要执行ProGuard,只需: java -jar proguard.jar options ......你可以在ProGuard安装的lib目录下找到proguard的Jar包。或者,把bin目录包含到命令行脚本中去。...参考资料 Proguard官方文档
介绍 之前介绍了如何使用命令行将Jar包根据配置文件进行ProGuard,以及ProGuard的过程,会遇到的问题等。接下来会介绍常用的ProGuard如何配置参数。...java -jar proguard.jar @myconfig.pro Filter 每一个类、属性、方法都会有一个全名,例如java.lang.String。...默认ProGuard会读取public以及non-public的类。然而,non-public的类通常没有关联的。可以忽略他们,提升ProGuard速度,而且也不会影响output。...如果因为这个option无法找到那个class的话 ,ProGuard会打印出来Warning的。...默认的,ProGuard在解析classes会跳过这些类成员,因为程序通常不会引用它们。有些情况下,程序的包和Library的包相同,从而可以引用包可见的类成员。
以我们的常用开发工具andorid studio 为例,Android Studio自身集成Java语言的ProGuard作为压缩,优化,混淆和预校验,并配合Gradle工具进行构建,我们只需要在工程应用目录的...build.gradle文件中设置minifyEnabled为true,然后可以到proguard-rules.pro文件中加入我们的混淆规则即可。...大家看到了,有两个混淆文件,proguard-android.txt和proguard-rules.pro,proguard-rules.pro是我们需要自己编写的混淆文件,proguard-android.txt...这里说一下,你只要设置了minifyEnabled true开启混淆,其他的压缩,优化,预校验就默认开启了,那我们就可以开始proguard-rules.pro 文件的编写了,如图: ? ...除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用的。它包括资源混淆,字符串加密,类加密和dex文件分割等。
插件,使用的proguard-base版本是5.3.3 这里使用java8,因此libs那里照常配置rt.jar,jce.jar,如果是java9的话,则需要换成相应的模块。...另外指定proguard的阶段为package,springboot打包在repackage阶段 proguard.cfg 主要的重点在这个proguard.cfg配置 -target 1.8 ##指定...配置仅仅是根据自身工程的情况来量身定做的,不是通用的,具体的场景还需要根据具体情况对proguard参数进行调整。...doc ProGuard manual Tips for using ProGuard with Spring framework Spring bean自定义命名策略 Understanding Spring...@Autowired usage ProGuard 最全混淆规则说明
然而我们另辟蹊径,自研一套Inc-Proguard方案,解决了无法增量Proguard问题,实现将耗时降低到分钟级别。 问题出在哪?...Full Proguard 图3 Apply Mapping Proguard 图4 Proguard部分流程 具体原因主要有几点: Proguard过程深度复杂【图4】,每个阶段都存在一定的耗时...】; 代码膨胀; optimizationpasses次数; Proguard优化项选取; 考虑的优化方案: 一个最简单的优化方案就是通过减少Proguard Optimize 次数来改善耗时,但是会对...为什么要采用Proguard?...对于微信,我们仍然使用Proguard,主要原因如下: Proguard优化项跟R8相似,R8在这方面没有明显的优势; Build Time R8 不比 Proguard快多少,在图1基础上采用R8方案则会快
Pre Maven - 代码混淆proguard-maven-plugin vs 代码加密classfinal 概述 ProGuard是一个Java代码混淆工具,它可以让你的Java程序变得更小、更快,...所以ProGuard只是增加了反编译的难度,并不能完全防止代码被反编译。 总之,ProGuard是一个很好用的Java代码混淆工具,可以保护你的代码,让你的程序变小变快。...proguard-maven-plugin 代码混淆 官网地址 https://github.com/wvengen/proguard-maven-plugin https://wvengen.github.io.../proguard-maven-plugin/ 实战 proguard.cfg # 指定Java编译目标版本为1.8 -target 1.8 # Proguard配置项:指定不进行代码缩小优化 -dontshrink...可以尝试使用Proguard的-keep指令保留这些类。 反射相关错误:如果项目中使用了反射,确保在Proguard配置中保留相关类和方法。
最近公司有一个项目,是外包项目,由于对方也有技术人员,出于技术上的保密,需要对class文件进行二次处理,于是网上找了好久,只发现Proguard是用的最广泛而且网上资料最多的。...下面开始说详细的操作步奏: 1)将web项目的src目录的java文件打包,只需要选择java文件即可,其他配置文件什么的都不用选择,如图 2)到http://proguard.sourceforge.net.../下载proguard,目前我下载并使用的是proguard5.1(注:本人下载频道也有proguard5.1)。...3)解压proguard5.1,执行 bin目录下的proguardgui.bat 然后会弹出如下图所示窗口 4)点击左边“input/output”菜单,然后点击右边的“Add input”按钮,添加需要混淆的...点击第一个选项“Proguard”,再点击“Load configuration”,选择我们刚才保存的“1111111.pro”进行加载。
准备工作2.1 下载ProGuard首先,需要下载ProGuard。访问ProGuard的官方网站或GitHub页面,下载最新版本的ProGuard压缩包,并解压到一个合适的目录。...创建ProGuard配置文件ProGuard的配置文件通常命名为proguard.cfg,用于指定混淆规则。...配置 ProGuard创建一个 proguard.conf 文件,用于配置 ProGuard 的混淆规则。...配置 ProGuard创建 ProGuard 配置文件:在项目的根目录下创建一个名为 proguard.cfg 的文件。编辑 proguard.cfg 文件,配置 ProGuard 的参数。...执行 ProGuard运行 ProGuard:打开命令行终端,导航到 ProGuard 的 bin 目录。
xitu/gold-m… 译者:dieyidezui 校对者:corresponding 为什么使用 ProGuard ProGuard 是一个压缩、优化、混淆代码的工具。...如何使用 ProGuard?...’), ‘proguard-rules.pro’ } } ProGuard 自身的配置已经在另外一个单独的配置文件中完成了。...在 ProGuard 官网您可以找到一个 使用手册。 在您深入研究这些配置之前,最好先大概理解 ProGuard 是如何工作的和我们为什么要指定一些额外的选项。 ?...’ } 您写入在 consumer-proguard.txt 文件中的规则将会在应用构建时附加到应用主 ProGuard 配置并被使用。
文章目录 一、Proguard 混淆后的报错信息 二、Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com.../en/products/proguard/manual/usage 一、Proguard 混淆后的报错信息 ---- 前提 : proguard-rules.pro 混淆配置中配置保留行数 ; # 保留行数...(Handler.java:30) , 报错的是混淆后的信息 , 可读性很差 ; 二、Proguard 混淆映射文件 mapping.txt ---- 前提 : proguard-rules.pro 混淆配置中配置保留行数...; # 保留行数 -keepattributes SourceFile,LineNumberTable Proguard 混淆后 , 会提供一个 原始代码 与 混淆过的代码 的对应关系文件 mapping.txt
用到的工具: 混淆jar的工具:proguard5.1 下载地址:http://download.csdn.net/detail/lk7688535/9625472 反编译jar的工具:xjad2.2...操作的时候如果遇到警告说某个类中的方法找不到的话,只需要将这个包下的类在.pro文件里声明-dontwarn com.parse.** 具体参考: http://stackoverflow.com/questions/24765588/proguard-cannot-find-referenced-libraries
什么是ProGuard工具?...更多的理解,可以参考ProGuard工具的官方文档地址:http://developer.android.com/tools/help/proguard.html ProGuard工具的集成与使用环境...根据ProGuard的具体使用环境,我分在Eclipse工具和android源码两种编译环境浅谈ProGuard的使用方法。...ProGuard的混淆文件:proguard-project.txt和project.properties(在老版本的ADT中,只会生成一个叫proguard.cfg的文件)。...=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. target=android
[proguard] (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass) [proguard...[proguard] (http://proguard.sourceforge.net/manual/troubleshooting.html#unexpectedclass) [proguard...[proguard] If your code works fine without the missing classes, you can suppress [proguard]...[proguard] (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) [proguard...doc libraryjars Proguard injars and libraryjars ProGuard 6.0 beta2 - Unable to run Jar Note: duplicate