文章目录 一、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
以我们的常用开发工具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文件分割等。
介绍 之前介绍了如何使用命令行将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的包相同,从而可以引用包可见的类成员。
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官方文档
插件,使用的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是用的最广泛而且网上资料最多的。...2)到http://proguard.sourceforge.net/下载proguard,目前我下载并使用的是proguard5.1(注:本人下载频道也有proguard5.1)。...3)解压proguard5.1,执行 bin目录下的proguardgui.bat ? 然后会弹出如下图所示窗口 ?...11) 设置基本完成,关掉proguard窗口,找到刚刚保存的配置文件,开始手动修改部分配置。...点击第一个选项“Proguard”,再点击“Load configuration”,选择我们刚才保存的“1111111.pro”进行加载。 ?
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
关于AndroidStudio混淆打包 proguard-rules.pro 的配置 最近在搭建一个APP的时候,使用了混淆打包的方式,然后发现死活打包不上。...后来求爷爷告奶奶才搞正常了,这里记录一下,其实关键点就是在这个 proguard-rules.pro 文件里面 ,一下是我自己的配置,大家看着,就知道怎么配置了。...# Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags...specified # in D:\Android\sdk/tools/proguard/proguard-android.txt # You can edit the include path and...in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html
用到的工具: 混淆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
proguard-maven-plugin 代码混淆 官网地址 https://github.com/wvengen/proguard-maven-plugin https://wvengen.github.io.../proguard-maven-plugin/ 入门 以下是使用proguard-maven-plugin插件的一些示例配置和用法: 基本配置示例: ... com.github.wvengen proguard-maven-plugin...package proguard...小结 采用proguard-maven-plugin插件, 在单模块中此方案还算简单,但是现在项目一般都是多模块,一个模块依赖多个公共模块。
领取专属 10元无门槛券
手把手带您无忧上云