【版权声明:本文为博主原创文章,未经博主允许不得转载!】
ProGuard is a free Java class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or higher, or for Java Micro Edition.
ProGuard 是免费的java 类文件压缩、优化、混淆和预验证工具。它通过检测并移除不用的类、属性和方法来压缩类。它通过去除无用的指令优化java bytecode。它通过使用短的、无语义的名称对类、属性和方法的名称重命名而进行混淆。最后,它将使用java 6以上版本的或者J2ME的运行时环境对此压缩、优化、混淆后的代码进行预验证。
Some uses of ProGuard are:
- Creating more compact code, for smaller code archives, faster transfer across networks, faster loading, and smaller memory footprints.
- Making programs and libraries harder to reverse-engineer.
- Listing dead code, so it can be removed from the source code.
- Retargeting and preverifying existing class files for Java 6 or higher, to take full advantage of their faster class loading.
ProGuard被用于:
- 创建更为紧凑的代码,从而生成更小的打包文件、获得更快的网络传输,加载更为迅速,并占用更小的空间。
- 使得程序和类库难于反编译。
- 列出那些能被移出源代码的“死”代码。
- 针对java 6+以上运行时环境,重新设定和预验证现存的类文件,以利用新版本运行时环境的类快速加载技术。
ProGuard's main advantage compared to other Java obfuscators is probably its compact template-based configuration. A few intuitive command line options or a simple configuration file are usually sufficient. The user manual explains all available options and shows examples of this powerful configuration style.
ProGuard is fast. It only takes seconds to process programs and libraries of several megabytes. The results section presents actual figures for a number of applications.
ProGuard is a command-line tool with an optional graphical user interface. It also comes with plugins for Ant, for Gradle, and for the JME Wireless Toolkit.
ProGuard 和其它java混淆器相比的主要优点就是它紧凑的模版配置,通常使用几个直观的命令行options或者一个简单的配置文件就足够了。本手册解释所有可用的options,并对强大的配置方式进行示例。
ProGuard 速度很快。处理几M的程序和类库只需要几秒的时间。Results章节将会呈现许多程序的实际计算情况。
ProGuard 是一个带有可选GUI的命令行工具。同时它也带有能和ant、Gradle和JME Wireless Toolkit一起工作的插件。
ProGuard now has a sibling optimizer and obfuscator for Android: DexGuard. It focuses on code protection, with additional features like string encryption, class encryption, and dex splitting. It directly targets Dalvik bytecode and streamlines the Android build process.
ProGuard 针对Android平台有一个优化和混淆的同门兄弟:DexGuard。它主要关注在代码保护,添加了一些诸如字符串加密、类加密以及dex文件切割等特性。它主要针对的是Dalvik 平台的bytecode。同时流水线整个Android的build过程。
The following sections provide more detailed information:
- Main: this overview page.
- Results: some results obtained with ProGuard, including timings and memory usage.
- FAQ: answers to some Frequently Asked Questions.
- Manual: the complete ProGuard user manual, with examples and troubleshooting tips.
- Quality: a discussion of the (excellent) quality of ProGuard's code.
- Screenshots: some impressions of what ProGuard looks like.
- Testimonials: what users think of ProGuard.
- License: ProGuard is free, under a GPL license.
- Downloads: download the ProGuard package yourself.
- Feedback: tell me about your experiences, or learn from others on our forums.
- Acknowledgements: people who have been helpful.
- Alternatives: other Java obfuscators, optimizers, and shrinkers.
如下章节提供了更为详细的信息:
- Main:本章节,简单介绍。
- Results:使用ProGuard前后的结果对比,包括时耗和内存占用。
- FAQ:常见问题及解答。
- Manual:完整的ProGuard用户手册,包括示例和排错提示。
- Quality:关于ProGuard代码(杰出的)质量的讨论。
- Screenshots:ProGuard的初步印象。
- Testimonials:ProGuard的客户评价
- License:ProGuard使用GPL许可,免费使用。
- Downloads:如何下载ProGuard。
- Feedback:反馈您的经验以及从我们的论坛所学到的东西。
- Acknowledgements:致谢
- Alternatives:其它java混淆、优化和压缩工具介绍。
相关推荐
修改proguard-maven-plugin插件默认可以对proguard打包后的jar重新打包
`proguard-maven-plugin`是Maven社区提供的一个插件,它集成了ProGuard的功能,使得在Maven项目中使用ProGuard变得更加方便。 要使用`proguard-maven-plugin`,我们需要在项目的`pom.xml`文件中添加插件配置。以下...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 混淆文件里面添加 (自行选择) # 修改包名 -repackageclass "" # 忽略访问修饰符,配合上一句使用 -...
本资源"proguard-base-6.0.3 -_混淆as_"正是为这个目的而提供的,它是一个用于Android Studio (AS) 的混淆工具的jar包,版本号为6.0.3。这个包可以替换原有的6.0.3版本,以加强应用的安全性。 ProGuard是Android...
"proguard-elder-dictionary" 提供的是一份专门针对 ProGuard 的配置字典,这份字典可能包含了大量预定义的类、方法和字段别名,用于优化混淆过程。 在 Android 应用开发中,混淆是必要的安全措施之一。混淆会将源...
在`proguard-maven-plugin-master`这个压缩包中,包含了项目源码和相关资源,可供开发者深入研究和自定义插件的行为。开发工作通常在GitHub这样的版本控制系统上进行,方便社区贡献和维护。由于这个插件已经处于成熟...
点击下载按钮获取proguard-7.4.0.zip文件。确保你选择了适合你操作系统的版本。 解压文件: 下载完成后,使用解压软件将ZIP文件解压缩到你的项目目录。 构建和优化: 在构建你的应用程序之前,确保启用了ProGuard...
Android 2_3 代码混淆proguard技术介绍 - Zy的技术心
2. 配置ProGuard规则:创建一个名为`proguard-project.pro`的文件,用于定义混淆规则。例如,你可以指定哪些类和方法不应被混淆,哪些库需要保持可访问等。 3. 执行构建:运行`mvn package`命令,Maven会自动调用...
proguard-project.txt 解决Gson引入而混淆不能通讯问题
使用ProGuard 6.0.13时,开发者可以通过配置文件(proguard.cfg或proguard-rules.pro)定制混淆规则,例如保留特定的类、方法和注解,以确保关键代码不受混淆影响。 在实际项目中,为了充分利用ProGuard,开发者...
附件为修改过的proguard5.2.1版本Jar,修改内容为: proguard\src\proguard\classfile\ClassConstants.java 修改ATTR_StackMapTable的值,将原来的StackMapTable改为dummy.
springboot多maven工程结构:proguard-root 是顶级父工程,proguard-modu01、proguard-mudu02是两个业务模块,proguard-server是springboot启动服务类模块,对proguard-modu01、proguard-mudu02两个模块实现proguard...
proguard混淆jar包提示错误:Unknown verification type [*] in stack map frame 解决方案:找到proguard源码中proguard\src\proguard\classfile\ClassConstants.java类,然后修改ATTR_StackMapTable的值,将原来的...
该压缩包下有两个文件夹下分别是5.3.2和5.3.3经过处理的proguard.jar文件,详细请查看我的博客原文http://blog.csdn.net/a708959817/article/details/72874799
在使用ProGuard时,我们需要创建一个名为`proguard.cfg`或`proguard-project.txt`的配置文件,定义混淆规则、保留某些关键类或方法等。例如: ```properties -keep class com.example.** { *; } # 保留com.example...
在本压缩包文件"proguard-7.0.0.zip"中,包含了ProGuard的最新版本7.0.0,这个版本以其稳定性、可靠性和速度而著称,经过测试,它既没有病毒,也没有恶意软件,用户可以安心使用。 ProGuard的主要功能包括混淆、...
#android-proguard-configs ##Introduction android configs - proguard ##How To Use 克隆 repo,并将所有 proguard 配置文件复制到 /tools/proguard。 对于 App,建议使用 proguard-android-app-optimize.txt。 ...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } 混淆文件里面添加 (自行选择) # 修改包名 -repackageclass "" # 忽略访问修饰符,配合上一句使用 -...
使用ProGuard需要编写配置文件(proguard.cfg或proguard-rules.pro),在这个文件中,开发者可以指定需要保留的类、方法、注解,以及混淆规则等。配置文件的编写灵活性高,可以根据项目的复杂性进行定制。 5. **与...